用了昨天一晚上加上今天一个白天把我的v2ray服务器配置成可用mKCP协议的了。我为提升了好几倍的网速激动了好久。
然而……
我切到Windows,打开了v2ray的Windows版本,却发现除了Google其他倒闭网站真的是倒闭了,一直卡在“正在与XXX进行TLS握手”!!!怎么回事,之前在Fedora上不是挺好的吗?就因为我把kcp的配置放到了配置文件的全局配置部分,而不是网上大多数人那样放到分连接配置中去?
……然而改到分连接配置中还是不行啊!(而且改配置文件最头疼了,一不小心就多了/少了一个逗号或多了/少了一个花括号)
好吧,进入排错模式。手动rotate服务器上的日志,重现(reproduce)故障现场。然而看了半天连接日志似乎没有哪里不对啊?
正当我复制日志准备提出issue的时候突然想起一个细节:远程服务器的DNS解析。
我的Fedora上的Firefox使用的是老版本的FoxyProxy插件,而我的Windows Firefox使用的却是新版的FoxyProxy。我注意到新版FoxyProxy貌似没有提到DNS的事情。
而Firefox原生网络代理设置中,却是可以要求代理服务器(准确地说是socks 5代理)解析DNS的。看图:" loading="lazy" src="/wp-content/uploads/2017/10/%E8%AE%BF%E9%97%AE%E5%9B%BD%E9%99%85%E4%BA%92%E8%81%94%E7%BD%91%E6%97%B6%E8%AE%B0%E5%BE%97%E8%AE%A9%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A7%A3%E6%9E%90DNS.jpg">
我试着关掉了FoxyProxy,用ipconfig /flushdns清理了DNS缓存,然后重启Firefox用其原生网络代理设置配置代理。当然,勾上了“使用 Socks V5代理DNS”。
……
Success!
为了验证是不是远程DNS解析没到位的锅,我决定再次清除DNS缓存,然后故意不勾选“使用 Socks V5代理DNS”。果然,这次又卡“正在与XXX进行TLS握手”了!
为了进一步确认问题,我重启到了Fedora,找到了老版FoxyProxy的选项页面——里面默认勾选了让代理服务器解析DNS!
……
还有个问题没解决呢,为什么Google可以在DNS被污染的情况下仍然能用梯子访问?哪位读者明白的话,敬请在下面评论吧!