如何将流量从公开可用的服务器转发到非公开可用的计算机?

Mac*_*cha 5 ssh ssh-tunneling port-forwarding

我的家用计算机位于 ISP 级别的 NAT 之后,因此我无法托管游戏服务器。

我有一个用作网络服务器的 VPS。我想托管一个Minecraft的游戏服务器,但是VPS不够强大。

我的电脑和 VPS 都在运行 Linux。我的电脑可以连接到我的服务器,但是服务器无法打开到我家电脑的连接。

我想实现的是:

  • 一些用户连接到我服务器上的端口 27015。
  • 然后,服务器将所有流量从服务器上的端口 27015 转发到我家用计算机上的端口 27015,通过我在家用计算机上打开的某个连接。

ssh 可以吗?我知道它可以反过来。如果没有,是否还有其他程序可以执行此操作?

Zay*_*all 5

简短回答:是的,ssh可以做到这一点。答案就在您的问题中:“反向”隧道。查看ssh客户端的-R选项:

-R [bind_address:]port:host:hostport
指定将远程(服务器)主机上的给定端口转发到本地端的给定主机和端口。这是通过分配一个套接字来侦听远程端的端口来实现的,每当与该端口建立连接时,该连接就会通过安全通道转发,并从本地计算机建立到主机端口hostport的连接。

更多阅读有用的How To Forge反向 SSH 隧道),但基本原则是你从你的私人主机ssh到你的公共主机,指定要映射回来的端口。记得在命令中设置你的绑定地址,否则默认只会绑定到本地循环。