iptables 端口转发-获取源 IP 和端口

iptables 端口转发-获取源 IP 和端口

我有一个带 LEDE 的路由器。在那里,我在 NAT 环境中设置了默认的端口转发。当目的地收到请求时,源 IP 已被重写为路由器的 IP,源端口已被重写为路由器的随机端口。保留源 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

提前致谢!

答案1

/proc/net/ip_conntrack您可以在或中看到伪装 NAT 条目/proc/net/nf_conntrack。该文件为 IPTables 跟踪的每个连接都占一行。每行显示特定连接的传入和传出数据包的地址/端口信息。

如果传入 IP 地址与传出 IP 地址不同,则它是 NAT 连接,可以从中解析所需的信息。

还有工具netstat-nat,它可以处理上述过程并简单显示通过设备的 NAT 连接。还可以通过命令行选项进一步过滤连接。

相关内容