Iptables

iptables 埠轉發 - 獲取源 ip 和埠

  • September 17, 2017

我有一個帶 LEDE 的路由器。在那裡,我在 NAT 環境中設置了預設埠轉發。當目的端收到請求時,Source IP 被改寫為Router 的IP,Source-Port 被改寫為Router 的一個隨機埠。保留源IP和埠會很棒。遺憾的是,當我必須使用 NAT 時,這似乎是不可能的。

現在,我根據路由器上打開的偽裝埠尋找一種方法來獲取原始源 IP 和埠。這在理論上必須是可能的,因為它是回寫在應答包中的資訊。有命令如何查找嗎?還是我必須重寫 iptables?我尋找這樣的東西:

$ iptables -t nat --lookup-masquerading-table --masqueraded-port 98765
Original Source-IP:      192.0.2.146
Original Source-Port:    7890
Original Dest-IP:        198.51.100.123
Original Dest-Port:      1234

Masqueraded Source-IP:   10.0.0.1
Masqueraded Source-Port: 98765
Masqueraded Dest-IP:     10.0.0.2
Masqueraded Dest-Port:   1234

提前致謝!

/proc/net/ip_conntrack可以在或中看到偽裝的 NAT 條目/proc/net/nf_conntrack。該文件對 IPTables 跟踪的每個連接都有一行。每行顯示特定連接的傳入和傳出數據包的地址/埠資訊。

如果傳入 IP 地址與傳出 IP 地址不同,則它是一個 NAT 連接,可以從中解析出您需要的資訊。

還有一個工具netstat-nat,它處理上述過程並簡單地顯示通過設備的 NAT 連接。還可以通過命令行選項進一步過濾連接。

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