使用nginx和ssh tunneling实现通过公网ip访问本地计算机
假设本地计算机上,已开发的应用可通过http://localhost:19080来访问
在有公网ip的服务器上添加下列配置后部署nginx(监听19001端口,收到请求后发送到19000端口)
server {
listen 19001;
location / {
proxy_pass http://localhost:19000;
}
}
在本地计算机上设置SSH tunneling
与远程服务器的19000端口建立连接,本地在19080端口响应
ssh -f -N -T -R 19000:localhost:19080 -p '22' 'username@remote'
# 直连不行的话(thanks to GFW),可设置代理
ssh -f -N -T -R 19000:localhost:19080 -p '22' 'username@remote' -o "ProxyCommand=nc -X connect -x PROXYHOST:PROXYPORT %h %p"
配置完成后即可访问
http://远程服务器ip:19001/
reference
Updated: 2023-05-20 18:15
Created: 2023-04-25 20:00