我遇到过一些反向端口隧道服务,例如http://progrium.com/localtunnel。我知道他们允许我轻松设置反向 SSH 端口隧道,这让我可以在线显示我的本地 Web 服务器(例如,我在端口 3000 上本地运行 Rails 应用程序,并使用 localtunnel 的服务,我可以通过 URL 在线与某人共享它像 xhd3s.localtunnel.com。)
不过,我对它的工作原理有点困惑。设置远程隧道时,您必须指定要接管的远程端口,这意味着远程服务器上的每个端口一个隧道。但是,使用这些端口隧道服务,每个人都指定相同的远程端口。唯一的区别是标记化的子域。
他们如何获取标记化的子域并将其转换为使用相同端口的唯一隧道?我怀疑有一些网络服务器魔法在起作用,但我不太确定这将如何工作。
编辑:
换句话说,我希望能够从两台不同的计算机发出这些命令:
# first computer
ssh -R 9000:localhost:3000 jim@xcvs.myserver.com
# second computer
ssh -R 9000:localhost:3000 john@csde.myserver.com
我应该在 myserver.com 上做什么以允许这两个反向端口隧道在端口 9000 上运行?