V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hzqim
V2EX  ›  问与答

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

  •  
  •   hzqim · 2014-12-12 19:09:32 +08:00 · 3612 次点击
    这是一个创建于 3627 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用家里的 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 来转换?

    谢谢指点!
    第 1 条附言  ·  2014-12-12 22:00:34 +08:00
    VPS 修改 sshd_config,添加 GatewayPorts yes 并重启,重新连接 VPS 反向链接就可以监听 0.0.0.0 了,浏览器终于可以直接访问了。
    2 条回复    2014-12-12 21:59:54 +08:00
    vibbow
        1
    vibbow  
       2014-12-12 21:51:51 +08:00   ❤️ 1
    监听 127.0.0.1 的意思就是只能在本地访问

    Nginx再反代一次的话,Nginx本身监听的应该是0.0.0.0,所以所有IP都可以访问到Nginx。
    Nginx和你端口转发服务本身也在一个服务器上,所以127.0.0.1能访问到转发的端口。
    hzqim
        2
    hzqim  
    OP
       2014-12-12 21:59:54 +08:00   ❤️ 1
    @vibbow 谢谢,你的说法是正确的。
    在 VPS 修改 sshd_config,添加 GatewayPorts yes 并重启,重新连接 VPS 反向链接就可以监听 0.0.0.0 了,浏览器终于可以直接访问了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.