Proxmox 共享IP & NAT映射 给虚拟机使用

2016年8月11日星期四

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规则

2 条评论 :

  1. 不能上网

    回复删除
  2. 这个我好久没弄了。。。完全不知道怎么弄了。。。换一个方式吧

    回复删除