Linux 常用工具iptables扩展之地址转换

前言

相应的技术原理请参考: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非常熟练。

Linux 常用工具iptables扩展之地址转换

上一篇:macOS修改Docker容器的端口映射配置


下一篇:Linux--查看文件