我想将来自我的机器端口的传出包重定向12345
到另一个进程进行修改(netsed
),然后将其发送到目标。
我可以使用 删除传出的包iptables -A OUTPUT -p tcp --dport 12345 -j DROP
。因此,不再通过 发送包12345
。
为了将它们重定向到 netsed,我似乎需要使用 NAT 表和 DNAT:
iptables -t nat -A OUTPUT -p tcp --dport 12345 -j DNAT --to-destination 127.0.0.1:$netsed_port
这是正确的方法吗?
因为它不起作用:它不会阻止传出的包到达其原始的远程目标。它应该这样做,对吧?将它们重定向到死胡同不应该等于丢弃它们吗?此外,我没有在 netsed 的端口上收到任何包。
/使用 REDIRECT 也无济于事:iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT --to-port $netsed_port
答案1
需要定义 iptables 规则前第一个包由端口上的相应进程发送12345
。这解决了我的问题。
我也尝试禁用防火墙ufw disable
。不确定这会对 iptables 产生什么影响。
重定向和 dnat 实际上在这里同样有效