工具解析nat表snat操作

NAT表SNAT操作
[root@localhost ~]#iptables -t nat -A POSTROUTING -s 172.16.213.230/32 -j SNAT –to-source 223.221.189.166

这条命令是:让内网一台机器伪装成公网IP出去上网


一、一句话解释

iptables -t nat -A POSTROUTING -s 172.16.213.230/32 -j SNAT --to-source 223.221.189.166

意思:
源IP为 172.16.213.230 的包,在发出前把源IP改成 223.221.189.166,然后发出去。


二、拆解成人话

参数含义白话版
-t nat操作NAT表专门改地址的表
-A POSTROUTING追加到POSTROUTING链包要出门前动手脚
-s 172.16.213.230/32源IP是这个只针对这台内网机器
-j SNAT做源地址转换改源头IP
–to-source 223.221.189.166改成这个IP伪装成这个公网IP出门

三、实战场景

场景1:内网服务器要上网,但只有一个公网IP

内网服务器 A: 172.16.213.230
公网IP: 223.221.189.166(绑定在防火墙外网口)

172.16.213.230 → 访问百度
路由器执行这条SNAT:
包出去时源IP 172.16.213.230 → 换成 223.221.189.166

百度看到:223.221.189.166 来访问我
百度回包:发给 223.221.189.166
路由器收到,自动还原 → 转给 172.16.213.230

✅ 内网机器上网成功!

场景2:指定某台机器走特定公网IP(多线策略)

电信线: 223.221.189.166
联通线: 218.22.15.8

iptables -t nat -A POSTROUTING -s 172.16.213.230 -j SNAT --to-source 223.221.189.166
iptables -t nat -A POSTROUTING -s 172.16.213.231 -j SNAT --to-source 218.22.15.8

四、SNAT vs MASQUERADE

对比项SNATMASQUERADE
写法--to-source 1.2.3.4-j MASQUERADE
公网IP固定IP动态IP(PPPoE)
性能高(直接改)稍低(每次查IP)
场景机房固定IP拨号宽带、云主机

你的这条用SNAT → 公网IP是固定的


五、常见变种

1. 让整个内网上网

iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 223.221.189.166

2. 动态公网IP用MASQUERADE

iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j MASQUERADE

3. 多个公网IP负载均衡

iptables -t nat -A POSTROUTING -s 172.16.213.230 -j SNAT --to-source 223.221.189.166-223.221.189.170

六、查看与验证

# 1. 查看SNAT规则
iptables -t nat -L POSTROUTING -n -v

# 2. 查看连接跟踪(看有没有转成功)
conntrack -L | grep 172.16.213.230

# 3. 测试上网
curl --interface eth0 ifconfig.me  # 看到的应该是223.221.189.166

七、一句话总结

SNAT = 内网机器借公网IP出门,回来时自动还原
你这句是:只让 172.16.213.230 借 223.221.189.166 上网,其他机器不管

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注