由于xen主机的IP不多,为了不浪费IP,虚拟一台测试机决定用NAT模式来共享网络。要求做到以下两点:
1.通过连接xen主机直接连接到测试机,这里需要到端口转发
2.测试机能通过xen主机上网,即能连接外网,这里就需要用NAT模式共享网络
首先,xen主机能正常连接外网,我的/etc/sysconfig/network-scripts/ifcfg-eth0 配置如下:
1 2 3 4 5 6 | DEVICE=eth0 BOOTPROTO=static IPADDR=外网IP NETMASK=255.255.255.0 ONBOOT=yes GATEWAY=网关 |
额外添加一个网卡设备,用来和测试机通信的。
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
1 2 3 4 5 6 | DEVICE='eth0:0' ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 USERCTL=no |
然后重启网卡,看看配置是否正常,看到eth0和eth0:0就是正常了
1 2 | servie network restart ifconfig |
开启路由转发
1 2 | sed -i "s|net.ipv4.ip_forward = 0|net.ipv4.ip_forward = 1|" /etc/sysctl.conf sysctl -p |
最后就是用iptables配置NAT了
1 2 3 4 5 6 7 8 9 10 11 12 13 | /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z /sbin/iptables -F -t nat /sbin/iptables -X -t nat /sbin/iptables -Z -t nat /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -t nat -P OUTPUT ACCEPT /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE |
添加端口转发,将连接xen主机22端口转发到测试机的22端口
1 | iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 192.168.1.100:22 |
保存iptables配置
1 | service iptables save |
测试机的IP设置为vi /etc/sysconfig/network-scripts/ifcfg-eth0
1 2 3 4 5 6 | DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 ONBOOT=yes GATEWAY=192.168.1.1(这个一定是xen主机的IP) |
这样就能正常连接测试机和上网了。
猫哥,你用的是哪个代码高亮插件~?
Crayon Syntax Highlighter