资讯中心

XEN SERVER有一个公网IP, 让虚拟机上网和对外提供服务

  

可能是版本不一样,命令与原文有点不一样,

     一个是-nat这里,我这里的命令实际测试过,都没有小横杠,

     再一个iptables的保存了,我这里用了service ipstable save,

     所以重新整理了一下,但没有图。

 

以下操作1,2在xen center上,3,4步可以putty, 也可以用xen center里的console


1. xen server上新建网络:  选"外部网络", 选有连接网线的网卡,一般是nic 0
   vlan是数字,从1开始,随便填个数,比如1, 2, 3, 。。。
   
   可以添加多个“外部网络”,这样每个外部网络的VLAN要不一样,网段也要不一样 ( 这个是个人以为的,不一定对,不过有重复的话,会弹窗提示的)。

2. 配置:添加IP地址, 比如: 192.168.5.1, 255.255.255.0, 不用填网关。
   这个就相当于虚拟机的网关,虚拟机的网关要设置成这个地址

3. 配置xen server NAT,让192.168.5.0网段能上网。

   echo "1" > /proc/sys/net/ipv4/ip_forward  or  /etc/sysctl.conf  => net.ipv4.ip_forward=1
   
   // 让192.168.10.0网段的虚拟机可以上网,xenbr0是共享上网网口名称(用ifconfig查看)。
   # iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o xenbr0 -j MASQUERADE
   
   // 保存,生效
   # service iptables save
     
   
   或 # iptables -t nat -A POSTROUTING -o xenbr0 -j SNAT --to-source 公网IP, 这条未试,不道效果
   
4. 外网连接内网(端口转发)

   // 将192.168.5.5:22 映射到公网IP的60022, putty通过公网IP:60022可以连接到虚拟机192.168.5.5:22上
   # iptables -t nat -A PREROUTING -p tcp --dport 60022 -j DNAT --to-destination 192.168.5.5:22
      
      
5. 关于iptables的操作
   // 清除默认策略, 不能乱用,如果配置过iptables, 就不能再用了。
   # iptables -F
   
   // 查看NAT设置情况
   # iptables -t nat -L
   
   // 保存
   # service iptables save
   
   // 重启
   # service iptables restart

//////另外代码演示:sysctl net.ipv4.ip_forward=1 #开启转发

[root@xenserver-cukxsegi ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf #让重启不失效