SSH 转发端口到本地主机名
SSH forward port to local host name
我有下一个设置:
- 本地主机 - 我的工作电脑
- Project VM - 带有项目文件的 Vagrant box,在我的工作 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 提供服务的子域(项目 VM 上 "host1.vm.private" 的配置):
server {
listen 80;
server_name ~^(.+\.)?host1\.vm\.private$;
...
}
我需要使 "sub(1|2|N).host1.vm.private" 可以从远程主机访问。如何做到这一点?
所以,我找到了解决方案:Trouble SSH Tunneling to remote server
主要问题是发送了无效的 HTTP header 并且 nginx 无法解析虚拟主机。
运行 本地 PC ssh -R 8888:192.168.100.102:80 <remote_pc_credentionals>
。或者,运行 "inversed" 命令在远程 PC 上带有 ssh -L
标志。
在 远程 PC 上将 "sub1.host1.vm.private" 添加到 /etc/hosts
:127.0.0.1 sub1.host1.vm.private
或
- 随每个请求发送 "Host" header:
curl -H "Host: sub1.host1.vm.private" "http://localhost:8888/some/path"
我有下一个设置:
- 本地主机 - 我的工作电脑
- Project VM - 带有项目文件的 Vagrant box,在我的工作 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 提供服务的子域(项目 VM 上 "host1.vm.private" 的配置):
server {
listen 80;
server_name ~^(.+\.)?host1\.vm\.private$;
...
}
我需要使 "sub(1|2|N).host1.vm.private" 可以从远程主机访问。如何做到这一点?
所以,我找到了解决方案:Trouble SSH Tunneling to remote server
主要问题是发送了无效的 HTTP header 并且 nginx 无法解析虚拟主机。
运行 本地 PC
ssh -R 8888:192.168.100.102:80 <remote_pc_credentionals>
。或者,运行 "inversed" 命令在远程 PC 上带有 ssh-L
标志。在 远程 PC 上将 "sub1.host1.vm.private" 添加到
/etc/hosts
:127.0.0.1 sub1.host1.vm.private
或
- 随每个请求发送 "Host" header:
curl -H "Host: sub1.host1.vm.private" "http://localhost:8888/some/path"