【问题标题】:Is there a way to change local port bound using iptables?有没有办法使用 iptables 更改本地端口绑定?
【发布时间】:2021-08-01 06:02:08
【问题描述】:

对不起,我是 iptables 的菜鸟。

我有一个绑定到本地端口 1080 的 VPN 应用程序,同时它转到目标端口 1194 (openvpn)。该应用程序不支持特权端口绑定(需要root,我有)。我希望应用程序绑定到本地端口 25。我浏览了谷歌,答案似乎是 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

当我运行 netstat 命令时,我想要的输出是这样的:

tcp 0 0 192.168.43.239:25 195.123.216.159:1194 已建立

但是,运行所有代码后,netstat 的输出变为:

tcp 0 0 192.168.43.239:1080 195.123.216.159:5000 已建立

使用 iptables 改变绑定端口是不可能的吗?请帮助我理解网络的概念。

【问题讨论】:

    标签: sockets tcp iptables python-iptables


    【解决方案1】:

    原来 iptables 只是正确地完成了它的工作。翻译后的数据包最终不会被 netstat 跟踪。我迷路了,完全不明白 iptables 不会改变应用程序正在使用的 ip v6 流量。由于链策略是接受数据包,因此不需要转发规则。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 2021-11-05
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2016-03-25
      • 2020-06-17
      相关资源
      最近更新 更多