将指向端口 5000 的包重定向到另一个端口

将指向端口 5000 的包重定向到另一个端口

我尝试使用 eboard 连接到 FICS 服务器 (http://www.freechess.org),但由于端口 5000 被阻止(公司防火墙),因此失败。但是,我可以通过 telnet 端口 (23) 连接到服务器:

telnet freechess.org 23
(succeeds)
telnet freechess.org 5000 
(fails)

不幸的是,端口号是硬编码的(参见此处:http://ubuntuforums.org/archive/index.php/t-1613075.html)。我不想像该帖子的作者那样破解源代码。我可以使用 iptables 转发本地计算机上的端口吗?我尝试过:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5000 -j REDIRECT --to-port 23

sudo iptables -t nat -I OUTPUT --src 0/0 -p tcp --dport 5000 -j REDIRECT --to-ports 23

但这些没有用......

注意:

$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:5000 redir ports 23

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:5000 redir ports 23 

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

答案1

-j REDIRECT重定向到您自己的计算机。如果您想重定向到远程计算机上的其他端口,请使用-j DNAT --to-destination :23

相关内容