前置条件
端口转发基本上需要 ip_forward ,所以我们提前打开即可
转发配置
场景1
本机其他网口的ip端口流量转发到本机127.0.0.1的端口
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.eth0.route_localnet=1" >> /etc/sysctl.conf
iptables -t nat -A PREROUTING -s x.x.x.x/32 -p tcp --dport 1234 -j DNAT --to-destination 127.0.0.1
场景2
把本机的ip端口流量转发到远程机器的ip端口上
# 本机ip端口: 172.22.5.10:8080 远程ip端口: 172.22.5.12:9000
# 流量到达本机ip后转发到目的
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 172.22.5.12:9000
# 允许此流量通过 - 流量还需要返回
iptables -A FORWARD -p tcp -d 172.22.5.12 --dport 9000 -j ACCEPT
场景3
源地址转换1
# --to-source 选项通常不需要指定端口。该选项主要用于更改数据包的源 IP 地址,端口号通常不会在这个阶段进行更改
iptables -t nat -A POSTROUTING -p tcp -d 172.22.5.12 --dport 9000 -j SNAT --to-source 172.22.5.10
源地址转换2
# 更推荐这种,因为只需要写目的地址,不必关心源地址了
iptables -t nat -A POSTROUTING -p tcp -d 172.22.5.12 --dport 9000 -j MASQUERADE
评论