SSH转发端口到本地主机名

时间:2016-11-01 08:59:40

标签: nginx ssh proxy vagrant portforwarding

我有下一个设置:

  • 本地主机 - 我的工作PC
  • Project VM - 包含项目文件的Vagrant框,在我的工作PC上运行
  • 远程主机 - 远程PC,我需要从中访问Project VM上的主机

项目VM设置(本地主机上的/ etc / hosts):

192.168.100.102 host1.vm.private
192.168.100.102 sub1.host1.vm.private
192.168.100.102 sub2.host1.vm.private

“host1”子域由应用程序路由器解析并由nginx提供服务(在Project VM上配置为“host1.vm.private”):

server {
    listen 80;
    server_name ~^(.+\.)?host1\.vm\.private$;
    ...
}

我需要从远程主机访问“sub(1 | 2 | N).host1.vm.private”。如何做到这一点?

1 个答案:

答案 0 :(得分:1)

所以,我找到了解决方案:Trouble SSH Tunneling to remote server

主要问题是发送了无效的HTTP标头,nginx无法解析虚拟主机。

  1. 本地 PC ssh -R 8888:192.168.100.102:80 <remote_pc_credentionals>上运行。或者,运行&#34;反转&#34;远程PC上带有ssh -L标志的命令。

  2. 添加&#34; sub1.host1.vm.private&#34;到远程 PC上的/etc/hosts127.0.0.1 sub1.host1.vm.private

    1. 发送&#34;主持人&#34;每个请求的标头:curl -H "Host: sub1.host1.vm.private" "http://localhost:8888/some/path"