创建NAT网桥

brctl addbr natbr0

配置网桥

cat natbr0: flags=4163 mtu 1500

inet 10.111.111.1 netmask 255.255.255.0 broadcast 10.111.111.255 inet6 fe80::1c5a:eff:fe8c:a9ca prefixlen 64 scopeid 0x20 ether 这:里:显示:的:是:MAC地址 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14 bytes 900 (900.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

开启包转发功能

sysctl net.ipv4.ip_forward

如果已经启动则显示

net.ipv4.ip_forward = 1

如果没有启动则显示

net.ipv4.ip_forward = 0

CentOS7 开启方式

echo “net.ipv4.ip_forward = 1” >> /usr/lib/sysctl.d/50-default.conf sysctl -p

CentOS6 开启方式

echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf sysctl -p

开启NAT转发, 以便虚拟机能访问公网

iptables -t nat -A POSTROUTING -s ‘10.111.111.0/24’ -o 拥有公网IP的网卡 -j MASQUERADE

永久保存

service iptables save

CentOS 7 需要安装iptables-serivces才能执行该命令

yum -y install iptables-serivces

修改SolusVM 节点网桥

请登陆SolusVM后, 修改该节点设置 其中 [KVM Bridge] 须修改为 [natbr0] , 否则虚拟机则无法上网和进行端口转发

OVZ NAT的设置

除以上操作外,还需如下操作。

修改宿主机 /etc/modprobe.d/openvz.conf 的文件内容

~原文件内容 options nf_conntrack ip_conntrack_disable_ve0=1

~修改后的内容 (将1改为0) options nf_conntrack ip_conntrack_disable_ve0=0

修改完成后请重启宿主机 , 如执行 iptables -t nat -L 不出现 can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?) 说明开启成功

定时刷新端口

crontab -e

添加

*/5 * * * * sudo php -q /root/nat/client.php */5 * * * * sudo php -q /root/natdomain/client.php

这个是5分钟执行一次。