为什么 Nginx 能反代的 IP:端口,浏览器却打不开?

2014-12-12 19:09:32 +08:00
 hzqim
用家里的 Debian 7 通过 SSH 反向链接远程 VPS, 建立隧道;
按照网友的说法,把本地的端口映射到了 VPS 的端口上:

ssh -NfR 服务器端口:192.168.1.2:本地端口 root@服务器IP
ssh -NfR 服务器IP:服务器端口:192.168.1.2:本地端口 root@服务器IP
ssh -NfR 服务器域名:服务器端口:192.168.1.2:本地端口 root@服务器IP
ssh -NfR 0.0.0.0:服务器端口:192.168.1.2:本地端口 root@服务器IP

无论是上面的那个命令,在 VPS 上的 SSH 都是监听为:

127.0.0.1:服务器端口

在浏览器上访问 VPS IP 地址/域名:端口,都没法访问!



在 VPS 上用 Nginx 反代 127.0.0.1:服务器端口,再用 浏览器访问就可以打开!!!

疑问:为什么浏览器不能打开?是因为只监听 127.0.0.1 的原因吗?还是 127.0.0.1:服务器端口不是标准 WEB 协议,需用 Nginx 来转换?

谢谢指点!
3560 次点击
所在节点    问与答
2 条回复
vibbow
2014-12-12 21:51:51 +08:00
监听 127.0.0.1 的意思就是只能在本地访问

Nginx再反代一次的话,Nginx本身监听的应该是0.0.0.0,所以所有IP都可以访问到Nginx。
Nginx和你端口转发服务本身也在一个服务器上,所以127.0.0.1能访问到转发的端口。
hzqim
2014-12-12 21:59:54 +08:00
@vibbow 谢谢,你的说法是正确的。
在 VPS 修改 sshd_config,添加 GatewayPorts yes 并重启,重新连接 VPS 反向链接就可以监听 0.0.0.0 了,浏览器终于可以直接访问了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/153500

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX