首先配置NAT环境:

A机:桥接网卡,作为外网。IP:172.17.252.227

B机:作为NAT转换机,两个网卡都有。IP:172.17.123.224 192.168.199.138

   开启转发功能:

   echo 1 > /proc/sys/net/ipv4/ip_forward

     或者vim /etc/sysctl.conf

             net.ipv4.ip_forward=1

         sysctl -p

C机:仅主机网卡,作为内网。IP:192.168.199.142

   添加路由记录route add default gw 192.168.199.138


实现SNAT:

在NAT转换机上:

iptables -t nat -A POSTROUTING -s 192.168.199.0/24 -j SNAT --to-source 172.17.123.224   转换源地址

效果:实现内网可以访问外网,外网不可以访问内网

C机:

19d8f5d26b7e7788ab6f099fc00f4cb9.jpg

A机:

f61a43ea1f3b329503cd29810c9ddd24.jpg 


实现DNAT:

在NAT转换机上:

iptables -t nat -I PREROUTING 1 -d 172.17.123.224 -j DNAT --to-destination 192.168.199.142   转换目标地址

效果:实现外网访问内网

A机:

8050dfcefe1c112ad2680c8073a73feb.jpg 

 

实现REDIRECT转发:通过改变目标IP和端口,将接受的包转发至不同端口

本例实现目标地址是本机192.168.199.143端口是80的包转发到本机8080端口:

准备工作:修改192.168.199.143主机的httpd服务的监听端口为8080

 vim /etc/httpd/conf/httpd.conf

     Listen 8080

 systemctl restart httpd  

防火墙策略:

iptables -t nat -A PREROUTING -d 192.168.199.143 -p tcp --dport 80 -j REDIRECT --to-ports 8080

效果:访问网页的时候不需要加上8080端口也可以访问,因为会把80转换为8080

512b26c48460b53caea18da8daee1642.jpg 


在centos7上还可以用firewalld实现:

firewall-cmd --add-masquerade   启用伪装

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.199.143

也可以实现转发到远程主机,只需要更改为远程主机ip即可

j_0080.gif