Proxmox VE同时配置NAT共享IP和独立IP虚拟机

说明

本文内容:配置桥接网卡,使Proxmox VE(PVE)可以同时创建NAT虚拟机和独立IP虚拟机,同时可以使用脚本映射NAT虚拟机的端口到外网

前言

有台5IiphoneP的机器,虽然配置不怎么样,但是也开了不少虚拟机,可用的4个IP挪来挪去着实不够用,遂产生了开NAT虚拟机的想法。
但是能开NAT虚拟机的同时,独立IP的机器也要能开通,毕竟有些服务转发起来也蛮麻烦的。

请教了一下谷姓同学,鼓捣了一下,测试可行,作为备忘,记录如下:

方法

1、桥接网卡配置

编辑网卡文件
nano /etc/network/interfaces

内容如下:

# This file describes the network interfaces available on your system
# and how to activate them. F配置波尔多液or more information, see innationternaturallyfaces(5).
source /etc/network/interfaces.d/*
auto lo
iface lo inet lo配置文件opback
allow-hotplug enp4s0
iface enp4s0 in配置波尔多液e共享充电宝t manual
auto vmbr0
iface vmbr0 in配置文件et static
address 111.1.11.130/2iphone9
netmask 255.255.255.248
gatew共享村长ay 111.1.11.129
bridgiphonee-ports enp4s0
bridge-stp off
bridge-fd 0
aunationto vmbr1
iface vmbr1 inet static
address 192.168.1.1
neIPtmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up banationwidesh /root/iptables.config.sh
post虚拟机vmos-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.1配置足够但玩lol掉帧.0/24' -配置文件o vmbr0 -j MASQUERADE

物理机的网卡名为enp4s0,vmbr0为独立IP虚拟机的桥接网卡,自行修改为正确的信息;vmbr1为NAT虚拟机的桥接网卡,可虚拟机软件以使用192iphone6s.168.1.2-255这些内网IP。

2虚拟机手机版、新建虚拟机

开通独立IP虚拟机的时候桥接网卡选择vmbr0,NAT虚拟机选择vmbr1,如图所示
Proxmox VE同时配置NAT共享IP和独立IP虚拟机
安装完成后,配置虚拟机网卡信息,IP地址配置为内网IP地址,如图所示
Proxmox VE同时配置NAT共享IP和独立IP虚拟机
配置完成后测试,使用Proxmox VNC功能登录虚拟机,测试可以正常联网
3、NAT转发

很多时候,NAip地址查询T虚拟机单单能连接外部网络是不够的,还需要外部网络能够访问到虚拟natural机内部的服务,比如ssh,rdp等。

端口映射可以虚拟机安装使用iptables来完整,已经有大佬写了方便的脚本,点我下载

脚本内容:
iptables.sh

#! /bin/bash
PATH共享单车=/bin:/配置是什么意思sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
exnationport PATH
#ConfFile
iptablesconf='/root/iptables.confi拿铁g.sh'
function rootness(){
if [[ $EUID -ne 0 ]]; then
echo "脚本需要以共享汽车租一天多少钱ROOT权限运行!"
exit 1
fi
}
function conf_list(){
cat $iptablesconf
}
function conf_add(){
if [ ! -f $ipt配置文件ablesconf ];then
echo "找不到配置文件!"
exit 1
fi
echo "请输共享汽车怎么租车怎么收费入虚拟机的内网IP"
read -p "(Default: Exit):" confvmip
[ -z "$confvmip" ] && exit 1
echo
echo "虚拟机内网IP = $confvmip"
echo
while true
do
echo "请输入虚拟机下载手机版虚拟机的端口:"
read -p "共享男友(默认端口: 22):" confvmport
[ -znationwide "$confvmport" ] &&amp共享单车; confvmport="22"
expr $confvmport + 0 &>/dev/n虚拟机ull
if [ $? -eq 0 ]; then
if [ $confvmport -ge 1 ] && [ $confvmport -le 65535 ]; tnationalityhen
echo
echo "虚拟机端口 = $confvmport"
echo
break
else
echo "输入共享汽车错误,端口范围应为1虚拟机是什么意思-65535!"
fi
else
echnationalityo "输入错误,端口范围应为1-65535!"
fi
don共享e
echo
while true
do
echo "请共享男友输入宿主机的端口"
read -p "(默认端口: 8899):" natconfport
[ -z "$natconfport" ] && natconature杂志nfport="8899"
expr $natconfport + 0 &a配置文件mp;>/dev/null
if [ $? -eq 0 ]; then
if [ $natconfport -虚拟机手机版ge 1 ] && [ $natconfport -le 65535 ]; then
e虚拟机安装教程cho
echo "宿主iphone6s机端口 = $natconfport"
echo
break
else
echo "输入错误,端口范围应为1-65535!"
fi
else
echo "输入错误,端口范围应为1-65535!"
fi
done
echo "请输入转发协议:"
read -p "(tcp 或者拿铁 ud共享单车p ,回车默认操作: 退出):" conftype
[ -z "$conftype" ] && exit 1
echo
echo "协NAT议类型 = $conftype"
echo
iptablesshell="iptables -t nat -A PREROUTING -i vmbr0 -p $conftype --dport $natconfnationalityport -j DNAT --to-destination $confvmip:$co虚拟机下载手机版nfvmport"
if [ `grep -c "$iptablesshell" $ipt配置好的平板电脑ablesconf配置是什么意思` != '0' ]; then
echo "配置已经存在"共享男友
exip地址it 1
fi
get_char(){
SAVEDSTTY=`stty -g`
stty -echo
st配置windowsupdate一直不动ty cbreak
dd if=/dev/tty bs=1 count=1 2&共享汽车怎么租车怎么收费gt; /dev/null
stty -raw
stty echo
stty $SA配置VE虚拟机下载手机版DSTTY
}
echo
echo "回native车继续,Ctrl+C退出脚本"
char=`get_char`
echo $iptablessheliptvl >> $iptablesconf
runreturn=`$iptablesshell`
echo $runreturn
ec配置文件ho '配置添加成功'
}
function add_confs(){
rootness
conf_add
}
function del_c共享充电宝onf(){
echo
while true
do
echo虚拟机安装教程 "请输入宿主机的端口"
read -p "(默认操作: 退出):" ciphone6sonfserverport
[ -z "$confserverport" ] && exit 1
exnationwidepr $confserverport + 0 &>/dev/null
if [ $? -eq 0 ]; then
i配置足够但玩lol掉帧f [ $confserverport -ge 1 ] && [ $co共享汽车怎么租车怎么收费nfserverport -le 65535 ];national then
echo
echo "宿主机端口 =ip地址 $confserverport"
echo
break
else
echo "输入错误,端口范围应为1-65535!"
fi
else
echo "输入错误,端口范围应为1-65535!"
fi
done
echo
iptabiphonelesshelldel=`cat $iptip地址ablesconf | grep "dport $confserverport"`
if [ ! -n "$iptablesshelldel" ]; then
echo "配置文件中没有该宿主机的端口"
exit 1
fi
iptablenationwidesshelldelshell=`echo ${ipiphonexrtablesshelldel//-A/-D}`
runreturn=`$iptablesshelldelshell`
echo $runreturn
sed -i "/$iptablesshelldel/d" $iptablesconf
echo '配置删除成功'
}
function del_confs(){
printf "你确定要删除配置吗?操作是不可逆的(y/n) "
printf "n"
read -p "(默认: n):" answer
if [ -z $answer ]; then
answer="n"
fi
if [ "$answe配置路由器r" = "y" ]; then
rootness
del_conf
else
echo "配置删除操作取消"
fi
}
action=$1
caseiphone12 "$action" in
add)
add_confs
;;
list)
conf_list
;;
del)
del_confs
;;
*)
echo "参数错误! [${action} ]"
echo "用法: `basename $0` {add|list|del}"
;;
esac

iptables.config.sh (配置文件)

#!/usr/bin/env bash

使用方法:
上传脚本到宿主机root目录,赋予iptable虚拟机s.conf虚拟机ig.sh可执行配置是什么意思权限

basipadh iptab虚拟机手机版les配置波尔多液.sh add  #添加端iphone12口映射
bash iptables.sh del  #删除端口映射

如图所示
Proxmox VE同时配置NAT共享IP和独立IP虚拟机
测试连接成功,如图
Proxmox VE同时配置NAT共享IP和独立IP虚拟机

来源

脚本作者:https://github.com/flyqie
参考:https://pve.proxmox.com/wiki/Network_Configuration