Linux
保留傳出數據包的源埠
我有 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>]