Proxmox 共享IP & NAT映射 给虚拟机使用
最近发现了一神器 Proxmox , 一款免费且开源的一个虚拟化平台,允许Kvm&OpenVZ架构的VPS在同一宿主机运行,允许搭建集群并移动某节点的虚拟机到其他节点,其他优点不在多说
先来说说问题,某天我好奇使用了这个平台,开了好几个OpenVZ的虚拟机,但是只能使用noVNC来操作,实在不方便,于是搜到了(http://servernetworktech.com/201 ... -a-virtual-machine/)这篇文章,
先来了解一下架构
内网网卡:vmbr1 (这里是我使用的,默认安装已经占用了vmbr0)
内网网段:10.110.0.1/24
公网IP:8.8.8.8(仅为示范)
VM ———————– 宿主机 ——————— 公网
10.110.0.1:22 10.110.0.1:22 NAT到 8.8.8.8:10100 8.8.8.8:10100
这里是我的解决思路
先创建一个虚拟网卡,由于Proxmox基于Debian,度娘之知道网卡配置文件在/etc/network/interfaces,编辑这个文件,并在尾部追加
auto vmbr1
iface vmbr1 inet static
address 10.110.0.254
netmask 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 iptables -t nat -A POSTROUTING -s '10.110.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.110.0.0/24' -o vmbr0 -j MASQUERADE
追加完上面的东西之后呢,运行如下命令重启网络服务
service networking restart
这样一个虚拟网卡和10.110.0.1~10.110.0.253的地址就创建好了
现在就来解决一下NAT,其方法非常简单,仅需输入如下命令即可实现
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 要在公网的能访问的端口 -j DNAT --to 虚拟机的IP(10.110.0.1~10.110.0.253):虚拟机的端口
例如把虚拟机10.110.0.1上的22端口NAT到宿主机的10100端口,仅需如下命令可实现
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 10100 -j DNAT --to 10.110.0.1:22
记得使用iptables-save命令以便下次重启宿主机或iptables时能保存NAT规则
不能上网
回复删除这个我好久没弄了。。。完全不知道怎么弄了。。。换一个方式吧
回复删除