我有一台服务器,可以从我的小型网络外部看到它,服务器有域名等。我还有一台本地机器,服务器可以看到它,但无法从外部访问它。
所以我希望能够连接到服务器上的端口,但却与本地机器对话。
我可以让到达服务器一个端口的流量中继到本地机器的另一个端口吗?
答案1
您可以简单地使用 openssh 来执行此操作: https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
要查找的命令是 -L 或 -R。
假设你想将服务器上的端口 4444 转发到本地计算机上的端口 5555。在服务器上使用
ssh -L 4444:local_machine_name:5555 user@local_machine_name
或者在本地机器上使用
ssh -R 4444:localhost:5555 user@server_machine_name
(在第一个例子中,您可以连接到任何其他机器,无需连接到 local_machine_name,您只需使用 localhost 连接到服务器本身)。
另一种更复杂的方法是使用服务器作为路由器。请参阅https://help.ubuntu.com/community/Router尤其是https://help.ubuntu.com/community/Router#Enable_IP_forwarding_and_Masquerading。这是大多数小型电缆或 DSL 家用路由器的功能。
答案2
这可以通过使用 iptables 来实现。这里有一个不错的指南linuxhomenetworking.com有关 iptables 的更多信息,请访问Ubuntu 维基。请注意,iptables 还有一个名为的 GUI 界面纵火者。