iptables POSTROUTING
我使用以下命令将 Linux 服务器配置为具有辅助 IP 地址并用于执行源网络地址转换 (SNAT)。
ip addr add 10.11.198.99/25 dev eno3
iptables -t nat -A POSTROUTING -p udp -o eno3 -s 10.11.198.45 -d 239.169.45.122 -j SNAT --to 10.11.198.99:60003
这一切都非常有效,tcpdump 显示源 IP 地址10.11.198.45
已替换为10.11.198.99
.
然后,我刷新 iptables NAT 表以删除iptables POSTROUTING
链规则,删除辅助 IP 地址,并conntrack -D --src-nat
使用以下命令删除流条目
iptables -t nat -F
ip addr del 10.11.198.99/25 dev eno3
conntrack -D --src-nat
之后,我添加了新的辅助IP地址并添加了新的iptables POSTROUTING
链规则
ip addr add 10.11.198.79/25 dev eno3
iptables -t nat -A POSTROUTING -p udp -o eno3 -s 10.11.198.45 -d 239.169.45.122 -j SNAT --to 10.11.198.79:60003
此时,我无法看到源网络地址转换生效,显示tcpdump
源 IP 地址10.11.198.45
未替换为10.11.198.79
。看来该conntrack -D --src-nat
命令会导致后续iptables SNAT POSTROUTING
添加的链规则不起作用。
如何使源网络地址转换再次工作?