4.
@笨蛋海绵,晕死你还是迷糊状态。
你要的效果是类似CDN
要用nginx实现需要设置配置域名steamcommunity.com
设置反向代理
本地设置和你的host一样
健健康康
6.
@笨蛋海绵,你的反代把https转换成了http,所以就算你加了hosts,也只能通过 http://steamcommunity.com 访问,不能通过 https://steamcommunity.com 访问。你可以给nginx开https,但https需要证书,你肯定得不到steam的证书,所以反代访问时肯定会遇到证书错误。使用nginx无法避免这种证书错误,而且你还需要自己找个假证书,配置起来也不方便。
如果不想遇到证书错误,还要配置方便(不需要自己生成证书),可以使用sniproxy。
搜“sniproxy 反代 https”可以找到很多教程。
8.
@老虎会游泳,sniproxy启动成功了,443和80端口也在用了,可是我添加hosts访问,依然不行,这是什么原因?
9.
@笨蛋海绵,你在/etc/sniproxy.conf里面添加网站了吗?没添加不能用。
你可以用 telnet ip 443 来测试(windows自己安装一下telnet),如果不通,说明443端口被防火墙拦截。某些防火墙位于云服务器提供商的控制面板,比如阿里云安全组。
10.
@老虎会游泳,
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 '^]'.
这个
11.
@笨蛋海绵,很有问题啊,你只监听了本地,不能被远程使用(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
,具体命令取决于你是怎么安装的。
12.
@老虎会游泳,127.0.0.1和0.0.0.0都试过了,我添加hosts后,依然无法访问,包括只写端口号,也是不行
13.
@笨蛋海绵,你是不是把hosts文件放在了VPS上?应该放在你电脑上。不能修改VPS的hosts。
14.
@老虎会游泳,hosts修改电脑的,另外我ping了下google的ip是我vps上的ip了
15.
@笨蛋海绵,我测试了一下,你运行sniproxy的服务器本身就不能访问steamcommunity.com。我试了www.google.com,也不能访问。但是github.com就可以。
你自己试试在VPS上curl -v https://steamcommunity.com
会不会出结果。
16.
@老虎会游泳,试了下google和steamcommunity,都是有内容输出,看内容貌似是源代码
17.
@笨蛋海绵,我又用海外服务器测试了一下,发现可以通过104.250.52.203访问steamcommunity.com了。
这样事实已经很清楚了,中国网络防火墙已经支持按 TLS SNI 中的域名过滤,只要访问的域名是steamcommunity.com,并且服务器在国外,无论IP地址是什么都无法连接。
也就是说,已经可以完全放弃反向代理方案了,除非反向代理的时候更换域名。