LXC 和 iptables - 如何将源 IP 地址从主 IP 更改为不同的 IP 地址

LXC 和 iptables - 如何将源 IP 地址从主 IP 更改为不同的 IP 地址

我有带有邮件服务器和“专用” 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
  • 接口必须指定eth0eth0: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

并且,当您重新启动服务器时,您始终可以准备好所做的更改。

相关内容