前言
相应的技术原理请参考:https://www.cnblogs.com/guge-94/p/12680568.html
操作步骤
以下操作都是在网关上面操作
开启转发系统转发功能
sed -i ‘$a net.ipv4.ip_forward = 1‘ /etc/sysctl.conf syscty -p modprobe iptable_nat # 最好是手动加载一下iptables的nat模块
设置SNAT
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o ens33 -j MASQUERADE # 或者用下面这条命令 iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -j SNAT --to-source 192.168.10.122 # POSTROUTING:路由转发前,即未入站时的检查规则链 # -s:指定要做SNAT的源地址段,相当于路由器的LAN口网段 # -o:指定你要用来做转发的地址,相当于路由器的WAN口,只不过这里用网卡代替 # MASQUERADE:适用于外网ip地址非固定的情况 # --to-source:适用于外网IP地址固定的情况,这里的IP都指的类似路由器的WAN口
设置DNAT
iptables -t nat -A PREROUTING -i ens33 -p tcp -d 192.168.10.122 --dport 8080 -j DNAT --to-destination 192.168.20.15:80 # -i:想一大堆,你理解路由器的WAN口就好,意思就是你要映射到哪个网卡上 # -d:WAN口的具体地址 # --dport:映射后WAN口对应的访问端口 # --to-destination:你实际的服务器的主机地址,如果默认这里我可以不写":80",但是为了以后做端口映射时着想,还是加上吧;如果你的实际端口跟映射后的端口是不一样的,可以这么做
PS:在做iptables规则时,一定记得关闭selinux,除非你对selinux非常熟练。