v2ex 访问问题尝试记录
由于 job-opportunity-reminder 项目,发现 Github Action
定时执行的方式不能保证按时可靠的执行(官方限制了高峰时段的执行),所以就想在本地运行的方式,但是 v2ex
的网络问题比较头疼,要么使用代理-这个已实现,但是要是没有代理能不能直接访问呢?
- 第一次尝试: 直接解析
v2ex
的ip
(国内的墙会导致访问国内dns
的到错误的ip
需要通过别的方式获取),通过ip
直接访问,结果访问被cloudfare
拦截:
- 第二次尝试:还以为是浏览器输入
ip
访问导致的,就尝试修改本地hosts
文件,然后用代码请求,结果本地无法与目标ip
建立链接,被重置了,感觉到奇怪,这时候本地没有开代理然后通过谷歌浏览器
输入域名访问,发现对于v2ex
的网站是可以加载访问的!问题在哪? - 第三次尝试:换浏览器访问域名,分别使用
safari
与火狐
结果报错无法访问,似乎是安全证书的问题。
这时候的情况就是 谷歌浏览器
可以访问, safari
与 火狐
无法访问,而且无法访问的原因是安全证书,想到之前开启代理服务器时都是通过 谷歌浏览器
访问的, 谷歌浏览器
应该有 v2ex
的安全证书信息,所以关闭代理通过 hosts
指定域名解析后是可以访问的。但是对于其他之前未访问过 v2ex
的浏览器需要获取安全证书时失败了,这点也可以从第二次尝试通过代码访问失败的错误验证。尤其目标 ip
也是可以 ping
通的情况。
结论就是:获取 v2ex
安全证书的环节被墙破坏了,理论上提前先获取安全证书,然后通过代码实现:想办法跳过获取安全证书这一环节,是可以用代码访问 v2ex
的,但是这个获取安全证书的环节的是 https
协议的一个步骤。所以性价比不高,所以就不再继续尝试。
还是使用代理方式吧。(不过要是走流量的代理,可以考虑先开代理访问一次后,再修改 hosts
指定 v2ex
的 id
-是实际id,能 ping
通。这样再关闭代理也可以访问了,可以节省流量。)