问题描述
对不起,我是iptables的菜鸟。
我有一个VPN应用程序,该应用程序绑定到本地端口1080,而连接到目标端口1194(openvpn)。该应用程序不支持特权端口绑定(需要root用户,我具有)。我希望该应用程序在本地端口25上绑定。我已经浏览了Google,答案似乎是iptables。我看过很多帖子,其中很多人都说SNAT目标是我应该使用的目标。
我尝试了以下代码:
iptables -I POSTROUTING -o wlan0 -t nat -p tcp --destination 195.123.216.159 -m tcp --dport 1194 -j SNAT --to-source 192.168.43.239:25
这些:
iptables -I FORWARD -p tcp -d 192.168.43.239 -m tcp --dport 25 -j ACCEPT
iptables -I FORWARD -p tcp -s 192.168.43.239 -m tcp --sport 25 -j ACCEPT
iptables -I OUTPUT -o wlan0 -p tcp -m tcp --sport 25 -j ACCEPT
iptables -I INPUT -i wlan0 -p tcp -m tcp --dport 25 -j ACCEPT
tcp 0 0 192.168.43.239:25 195.123.216.159:1194 ESTABLISHED
tcp 0 0 192.168.43.239:1080 195.123.216.159:5000 ESTABLISHED
是否可以使用iptables更改绑定端口?请帮助我理解网络的概念。
解决方法
事实证明 iptables 只是在正确地完成它的工作。翻译后的数据包最终不会被 netstat 跟踪。我迷路了,完全不明白 iptables 不会改变应用程序使用的 ip v6 流量。以及不需要的转发规则,因为链策略是接受数据包。