Linux

保留傳出數據包的源埠

  • October 13, 2014

我有 2 個介面 eth0(192.168.0.1) 和 eth1(10.1.1.15)。我以這種方式對所有數據包進行 nat 處理。

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

現在我想為 natted 數據包保留源埠,如下所示:

192.168.0.1:8080 -> nat -> 10.1.1.15:8080

可以用 iptables 做到這一點嗎?

預設情況下,MASQUERADE(如 SNAT)嘗試保留建立連接的機器的原始埠。但是當然,如果兩台主機使用同一個主機,那麼它必須為第二台主機選擇另一台主機。

您還可以使用以下命令明確設置每個協議的埠範圍:

/sbin/iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports <i>[-<n>]

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