关于nginx反向代理

成功反代了steam社区,但是只能访问服务器ip才能打开

如何实现能直接打开https://steamcommunity.com

反代测试地址http://104.250.52.203

试了加hosts也不行

hosts内容填104.250.52.203 steamcommunity.com
回复列表(17|隐藏机器人聊天)
  • @Ta / 2020-04-05 / /
    @胡椒舰长,但是访问ip就都能打开
  • @Ta / 2020-04-05 / /
    我在想是不是要开ssl才能用hosts?
  • @Ta / 2020-04-05 / /

    @笨蛋海绵,晕死你还是迷糊状态。
    你要的效果是类似CDN
    要用nginx实现需要设置配置域名steamcommunity.com
    设置反向代理
    本地设置和你的host一样
    健健康康

  • @Ta / 2020-04-05 / /
    @罐子,更加迷糊了,意思只需要绑定域名就可以了吗?
  • @Ta / 2020-04-05 / /

    @笨蛋海绵,你的反代把https转换成了http,所以就算你加了hosts,也只能通过 http://steamcommunity.com 访问,不能通过 https://steamcommunity.com 访问。你可以给nginx开https,但https需要证书,你肯定得不到steam的证书,所以反代访问时肯定会遇到证书错误。使用nginx无法避免这种证书错误,而且你还需要自己找个假证书,配置起来也不方便。

    如果不想遇到证书错误,还要配置方便(不需要自己生成证书),可以使用sniproxy。

    搜“sniproxy 反代 https”可以找到很多教程。

  • @Ta / 2020-04-06 / /
    @老虎会游泳,好,我试试
  • @Ta / 2020-04-06 / /
    @老虎会游泳,sniproxy启动成功了,443和80端口也在用了,可是我添加hosts访问,依然不行,这是什么原因?
  • @Ta / 2020-04-06 / /

    @笨蛋海绵,你在/etc/sniproxy.conf里面添加网站了吗?没添加不能用。
    你可以用 telnet ip 443 来测试(windows自己安装一下telnet),如果不通,说明443端口被防火墙拦截。某些防火墙位于云服务器提供商的控制面板,比如阿里云安全组。

  • @Ta / 2020-04-06 / /

    @老虎会游泳
    conf这个内容应该没问题的

    user nobody
    
    pidfile /tmp/sniproxy.pid
    
    listener 127.0.0.1:443 {
        protocol tls
        table TableTls
    }
    
    listener 127.0.01:80 {
        protocol http
        table TableHttp
    }
    
    table TableTls {
        .* *:443
    }
    
    table TableHttp {
        .* *:80
    }
    

    telnet后,只输出Escape character is '^]'.这个

  • @Ta / 2020-04-06 / /

    @笨蛋海绵,很有问题啊,你只监听了本地,不能被远程使用(127.0.0.1是本地主机IPv4地址,只能被VPS自己连接)。而且你还把第二个127.0.0.1打错了。
    监听部分应该改成这样:

    listener 0.0.0.0:443 {
        protocol tls
        table TableTls
    }
    
    listener 0.0.0.0:80 {
        protocol http
        table TableHttp
    }
    

    还有,telnet测试应该在你的电脑上进行,不要在远程服务器上进行,那样没有意义。远程服务器肯定可以自己连接自己啊。

    修改配置文件后需要重启sniproxy,命令可能是service sniproxy restart,具体命令取决于你是怎么安装的。

  • @Ta / 2020-04-06 / /
    @老虎会游泳,127.0.0.1和0.0.0.0都试过了,我添加hosts后,依然无法访问,包括只写端口号,也是不行
  • @Ta / 2020-04-06 / /

    @笨蛋海绵,你是不是把hosts文件放在了VPS上?应该放在你电脑上。不能修改VPS的hosts。

  • @Ta / 2020-04-06 / /
    @老虎会游泳,hosts修改电脑的,另外我ping了下google的ip是我vps上的ip了
  • @Ta / 2020-04-06 / /

    @笨蛋海绵,我测试了一下,你运行sniproxy的服务器本身就不能访问steamcommunity.com。我试了www.google.com,也不能访问。但是github.com就可以。

    你自己试试在VPS上curl -v https://steamcommunity.com会不会出结果。

  • @Ta / 2020-04-06 / /
    @老虎会游泳,试了下google和steamcommunity,都是有内容输出,看内容貌似是源代码
  • @Ta / 2020-04-06 / /

    @笨蛋海绵,我又用海外服务器测试了一下,发现可以通过104.250.52.203访问steamcommunity.com了。

    这样事实已经很清楚了,中国网络防火墙已经支持按 TLS SNI 中的域名过滤,只要访问的域名是steamcommunity.com,并且服务器在国外,无论IP地址是什么都无法连接。

    也就是说,已经可以完全放弃反向代理方案了,除非反向代理的时候更换域名。

  • @Ta / 2020-04-06 / /
    @老虎会游泳,还真的是,我挂梯后也能访问了,难搞,都没接触过
添加新回复
回复需要登录