端口转发

Linux上

在Linux上我们可以很方便地实现端口转发,比如通过SSH-Tunnel,使用

1
ssh -CfNg -L 监听IP:监听端口:目标IP:目标端口 localhost

甚至可以通过目标局域网暴露出来的一个ssh端口转发到另一个局域网的内部的服务器上,更详细的参考另一篇之前写的文章ssh-tunnel

通过ssh开启的端口转发在系统重启后需要重新建立,而且如果需要建立很多端口转发这样不方便管理,这时候我们可以使用rinetd工具

apt install rinetd会以服务的形式安装rinetd

service rinetd status可以查看运行状态

配置文件在/etc/rinetd.conf

修改配置后可以通过service rinetd reload重新加载配置而不必重启服务

日志文件在/var/log/rinetd.log

Windows上

在Windows上其实也有个内置的工具可以完成端口转发,而且也很方便

开启端口转发

1
netsh interface portproxy add v4tov4 listenaddress=监听IP listenport=监听端口 connectaddress=目标IP connectport=目标端口

其中监听IP可以填0.0.0.0表示接收来着任意网卡接口的数据。

查看端口转发

1
netsh interface portproxy show v4tov4

重启后也会保留设置,除非主动关闭

关闭端口转发

1
netsh interface portproxy delete v4tov4 listenaddress=本地IP listenport=本地端口