这是我的情况:
- 我在学校网络上有一台计算机 (Mac),我想将 TCP 5222 端口转发到 ejabberd,但我当然不能。
- 我家里有一台服务器(带有 FreeBSD VM 的 Mac),我可以将其端口转发到。
有没有一种简单的方法可以设置我的家庭服务器,以通过端口 5222 中继传入和传出学校计算机的 TCP 流量?我知道可以让我在学校的计算机连接到家里的计算机并通过它发送/接收所有内容,并且我可以编写一个程序来执行此操作,但我想知道是否有更简单的方法。似乎已经有一个 Unix 实用程序可以做到这一点。
答案1
我的家庭服务器已经sshd
运行。我按照德罗伯特的建议阅读了有关ssh
隧道的内容,并在进一步的谷歌搜索的帮助下找到了答案:
- 在家里的服务器上对TCP 5222设置必要的端口转发、防火墙透传等。
- 启用网关端口:
/private/etc/sshd_config
在 Mac(或/etc/ssh/sshd_config
Linux)上进行编辑,使其GatewayPorts yes
仅具有一次线路并且没有矛盾的GatewayPorts no
线路。 sshd
在服务器上重新启动(launchctl stop com.openssh.sshd
然后launchctl start com.openssh.sshd
在 Mac 上)- 我在学校的电脑上,
ssh -R 5222:localhost:5222 user@home_ip_address
现在,home_ip_address
端口 5222 的连接已通过隧道连接到我在学校的计算机。耶!