Networking

在本地將流量從 DMZ 伺服器路由到防火牆的公共 IP 地址

  • June 1, 2017

我有一個位於 DMZ 中的 Ubuntu 伺服器。伺服器有一個私有 IP 地址 (10.xxx),防火牆有一個公共 IP 地址。從網際網路到公共 IP 的所有網路流量都從防火牆轉發到 DMZ 伺服器。這工作正常。

我的問題是從 DMZ 內的伺服器到公共 IP 地址的流量沒有被防火牆路由回。防火牆不在我的控制範圍內,因此我想將伺服器配置為從不首先將傳出流量路由到網關,而是在本地處理它。

我一直在玩 iptables DNAT 和 MASQUERADE,但到目前為止沒有任何運氣。我必須添加哪些規則才能完成此操作?

對於使用橋接網路的伺服器上的 docker 容器的正常傳出流量和傳出流量,我都有同樣的問題。

我最終自己找到了答案:

iptables -t nat -A PREROUTING -d X.X.X.X -j DNAT --to-destination Y.Y.Y.Y
iptables -t nat -A OUTPUT -d X.X.X.X -j DNAT --to-destination Y.Y.Y.Y

其中 XXXX 是 FW 的公網 IP 地址,YYYY 是伺服器的 IP 地址。

引用自:https://serverfault.com/questions/853221