一周前,我参考网络教程搭建了Shadowsocks隧道。@天空Blond 在评论区推荐我配置V2锐+WS+TSL,当时我简单看了一些相关文档,但因为过年抽不出太多时间的缘故(也可能是拖延症),一直没有付诸实践。
恰逢有学弟在申请海外交流项目时,因为网络不给力而无法提交资料,于是我就把自己的工具借给了他,遂成。没想到后续又有几个学弟学妹闻讯来找我帮忙,我又不擅长拒绝别人,只好一一帮他们解决问题。一来二去,我的SS隧道就被功夫网橄榄了...(个人博客还可以正常访问,应该只是那个端口被封了)
这让我进一步认识到了SS的不稳定性,搭建V2锐隧道的动力也逐渐高涨起来。

总之,看了一些资料后,我当前粗浅的认知是:SS主要是加密流量,功夫网无从得知里面的内容;V2锐+WS+TSL的配置,则是把流量伪装成指向解析到VPS服务器的网站(比如这个博客),从而避免被橄榄?具体的底层实现细节仍然不甚清楚,暂且当做一个黑箱来看待吧。

这里有一篇比较详细的配置指南,讲解得很细致,留着以后慢慢看。
在更加具体的操作上,有前辈@233boy 给出了一键脚本以及相应的图文教程

bash <(curl -s -L https://git.io/v2ray.sh)

文章写得非常详细,但我还是踩到了几处小坑,在此记录一下。

1.不自动配置TLS

此时我已经完成了个人博客的https升级,所以无需脚本帮我自动配置。

2.网站伪装与路径分流(这里Typecho有一处大坑!

由于我自行配置了tls,所以无法使用脚本自动配置网站伪装与路径分流。正在研究如何处理。
修改配置文件并不算难。
但是,按照官方推荐文档配置了路径分流后,再去访问分流路径时,仍然不显示Bad Request,出现的是typecho的404页面。
起初,我以为是修改config文件时出了问题。可是来来回回检查了几遍,并没有发现差错。

折腾了两个小时,终于想到是由于我之前开启了网站伪静态(好笨...),导致网址被重写(即,“域名/伪装路径”被重写为“域名/index.php/伪装路径”,所以v2锐无法识别,浏览器也不会显示bad request)...
于是只好围绕伪静态规则做一些手脚。
宝塔提供的Typecho伪静态规则如下

if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}

查阅后发现,-e filename表示如果filename存在,则为真!则是取反,不难理解。
那么,如果想要让我的伪装路径被伪静态规则豁免的话,只需要让-e filename的返回值为True不就可以了?
于是,我在网站根目录下创建了一个目录,名称与伪装路径相同。
清除缓存,再次访问“域名/伪装路径”时,终于出现了期待已久的bad request,心中的激动难以言表。

3.网速慢

用SS“裸奔”的时候,在油管上看个720p视频也还流畅,上了V2锐+WS+TSL的配置后,连看360p都颇吃力。在网上查阅一番,发现bbr加速内核还有魔改版之类的操作。后来找到了@千影 前辈提供的一键配置脚本,自己简单测试了一下,确实有所改善。

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
chmod +x tcp.sh
./tcp.sh

4.油管一节一节加载视频

这算是问题3的延续。细心观察可以发现,油管的加载总是一节一节的,播放到一段的末尾,才匆匆开始后面视频的加载。查阅后发现,这是dash播放机制在作祟。
本来可以细水长流地加载视频,但油管非要让我们的网络在短短的时间内做急冲刺(dash)。如果我们的VPS不甚稳定或起步速度慢,就会导致在dash时播放卡顿。
其实这样做的初心也蛮好理解,无非是节约流量罢了。优酷,bilibili等站点也采用了这一方案。这篇文章说得很详细。
那么既然在dash机制下,观看视频的大多数时间内,我们的网络是处在闲置状态,那么禁用掉dash,让服务器一口气加载完视频不就好了?
据说第三方插件YouTubeCenter可以实现这个功能,不过好像开启之后就只能看360p和720p的视频了。还没具体尝试过。
(ps:考虑到dash机制下卡顿主要是由于我的vps不稳定/易丢包,也许换成锐速内核,通过暴力多倍发包的手段可以解决这个问题?)
(ps2:使用锐速内核后,问题完美解决,加载视频飞快,。虽然流量跑得快点儿,但是完全在接受范围内!)

虽然我对李子柒及其运作团队没什么好感,甚至有些反感,不过伊的视频确实很适合测试网络质量。

5.时常断流

经常断流。重连后立刻恢复正常,百思不得其解ing。
github上也有人反映了类似的问题。
摆弄了一整天也没搞懂。
尝试过延长nginx的超时时间和减小alterID的值,都不奏效。
看github上,有人分析说是运行商搞鬼...
不管了,我一不玩游戏,二不在线看电影,断个流而已,忍了!
20200212:断流问题莫名其妙地消失了...

标签: 学习笔记

已有 4 条评论

  1. 我这边没有断流的问题,而且youtube看4k都没有问题。我觉得这个东西变数很大,我就开了BBR,其他的就是CentOS7默认设置。用Nginx做反代,如果Nginx没有报错基本上就不用调,我认为瓶颈还是在于网络。比如你的宽带运营商,我的是中国联通,200MB光纤,这种运营商就比较靠谱。但是对于教育网来说我的配置就很慢,而且运营商很可能有QoS之类的。另外也跟服务器有关,我的服务器是搬瓦工CN2线路,速度还行,但是同样的新加坡和日本就不太行,尤其是到了晚上,日本线路必炸。

    1. 我租了vultr的新加坡服务器,家里网络是中国移动的100M宽带,白天看4K还勉勉强强,晚上只能1080p。断流的话应该是运营商导致的。
      至于学校网络的话,本来想着提前回学校测试一番,但是因为新型肺炎导致我有校不能回T T。

      1. 巧了,我也有个Vultr的新加坡服务器,那个断流啊,真是苦不堪言。我现在的主力是CN2.新加坡这个算备用。还有一个Oracle白嫖来的,那么网速巨慢

  2. 不过实测Trojan比V2ray+WS+TSL更快。另外测速我喜欢去youtube搜索「4k test」比较舒服。

添加新评论