是否可以使用远程主机上不存在的子域设置ssh反向隧道?

时间:2014-01-23 16:34:16

标签: linux apache testing ssh

我希望能够在localhost上进行测试,但我正在使用需要公共主机的API进行集成。在某些情况下,API不喜欢端口。通过示例可能更容易解释。

我现在在做什么:

  

ssh -nN -f -R myexternaldomain.com:49086:localhost:86 myid@mydomain.com

但是当我告诉他们ping https://myexternaldomain.com:49086

时,API不喜欢它

我想做什么的想法:

  

ssh -nN -f -R subdomain.myexternaldomain.com:localhost:86 myid@mydomain.com

目标是当有人点击https://subdomain.myexternaldomain.com时,它会将流量转发到笔记本电脑上的端口86。如果子域名尚未存在且myexternaldomain.com上没有配置,是否有任何方法可以实现此目的?

1 个答案:

答案 0 :(得分:1)

ssh -nN -f -R subdomain.myexternaldomain.com:localhost:86 myid@mydomain.com

在这个例子中,我猜你的确是这个意思,因为你必须为隧道的远端指定一个端口号:

ssh -nN -f -R subdomain.myexternaldomain.com:49086:localhost:86 myid@mydomain.com
                                             ^^^^^

在此示例中,mydomain.com上的ssh服务器将侦听subdomain.myexternaldomain.com端口49086上的连接,并将这些连接隧道传输到本地主机上的localhost端口86。能够使用“subdomain.myexternaldomain.com”之类的名称只是一种便利;服务器必须将其转换为IP地址才能使用它。

所以不,它不能是一个完全虚构的名字。远程服务器必须能够将该名称解析为IP地址。如果您不想将名称添加到DNS,可以将其添加到服务器上的/etc/hosts文件中。