我想要做的是,对于接口 ppp0 上所有目标端口为 53 的 UDP 连接,将目标端口更改为 1053。
我正在尝试更改通过 Ubuntu 上的 PPTP 连接的 VPN 客户端的 UDP 数据包的目标端口。
这个问题:https://stackoverflow.com/questions/242772/using-iptables-to-change-a-destination-port 建议可以使用 NAT 的 --to-destination 选项来完成此操作,例如:
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination x.x.x.x:1053
这确实有效,但它会更改通过端口 53 发出的所有数据包的端口,但我只想更改通过接口 ppp0-255 和 IP 范围 192.168.0.10-255 连接的部分 VPN 客户端的端口。
我尝试将来源添加到声明中,例如:
iptables -t nat -A OUTPUT -s 192.168.0.10 -p udp --dport 53 -j DNAT --to-destination x.x.x.x:1053
但这似乎不起作用,VPN 连接仍然通过端口 53。
有任何想法吗?
答案1
尝试以下规则:
iptables -t nat -A PREROUTING -i ppp+ -p udp --dport 53 -j REDIRECT --to-port 1053
我还没有尝试过但它应该可行。
祝你好运!