使用 iptables 更改 VPN 客户端的 UDP 端口

使用 iptables 更改 VPN 客户端的 UDP 端口

我想要做的是,对于接口 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

我还没有尝试过但它应该可行。

祝你好运!

相关内容