我希望能够在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上没有配置,是否有任何方法可以实现此目的?
答案 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
文件中。