我有带有邮件服务器和“专用” IP 地址的 LXC 容器。
“专用”是指 IP 地址的 25 和 110 端口转发到容器的 25 和 110 端口。这是通过 iptables 完成的。
假设容器的内部地址是 192.168.0.5,公共地址是 30.30.30.30。
假设服务器有一个 LAN 适配器“eth0”,其中一个主 IP(30.30.30.1)和几个附加 IP“eth0:0”是 30.30.30.30
当邮件服务器发送邮件时,邮件是从服务器的主IP发送的。
我怎样才能改变这种行为并使所有传出的流量都通过“30.30.30.30”
答案1
我找到了一种方法来做到这一点。
规则如下:
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30
重点如下:
- 规则需要在顶部注入(插入),
-I
而不是使用-A
- 接口必须指定
eth0
为eth0:0
答案2
记住重要的事情,如果您希望每次重新启动服务器时都获得所有更改,则需要在 /etc/network/interfaces 和 eth0 部分完成此规则:
post-up iptables -t nat -I POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30
post-down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.0.5 -j SNAT --to-source 30.30.30.30
并且,当您重新启动服务器时,您始终可以准备好所做的更改。