Iptables
iptables 埠轉發 - 獲取源 ip 和埠
我有一個帶 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 連接。還可以通過命令行選項進一步過濾連接。