如何将公共端口连接到不同的内部端口?

如何将公共端口连接到不同的内部端口?

我正在设置第二个 Plex 服务器,并且我决定使用端口32401而不是端口,32400因为我已经有一个 Plex 服务器在该端口上运行。

我的问题是 Plex 想要[publicip]:32401指向,[localip]:32400但是我的路由器只能将公共端口指向相同的本地端口(所以不行[publicip]:32401 -> [localip]:32400)。

Linux 是否有办法监听端口32401并在内部将其“重新路由”到端口 32400?我见过类似的 iptables 命令,但没有一个适合我的确切用例。

答案1

你可以使用这个 iptables 规则

iptables -t nat -A OUTPUT -d LOCAL_IP -p tcp --dport 32401 -j DNAT --to-destination LOCAL_IP:32400

以及此内核配置

sysctl -w net.ipv4.conf.all.route_localnet=1

所有到 LOCAL_IP:32401 的流量都将被转发到 LOCAL_IP:32400

答案2

我决定阅读手册,并在 Arch Wiki 的 Plex 页面上找到了解决方案。通过执行此命令,我能够将端口重新路由3240132400

iptables -t nat -A PREROUTING -p tcp --dport 32401 -j REDIRECT --to-port 32400

相关内容