diff --git a/_posts/2022-01-16-wssocks.md b/_posts/2022-01-16-wssocks.md index f531486..df4b200 100644 --- a/_posts/2022-01-16-wssocks.md +++ b/_posts/2022-01-16-wssocks.md @@ -9,7 +9,8 @@ tags: [wssocks, 代理, 评测] # 起因 最近我手头能用的梯子真的是越来越少了,除了防火墙越来越高的原因之外,也可能和大家对专业机场的信任导致免费的梯子越来越少了 ~~(毕竟我在网络上只用免费的东西lol)~~ 。所以我想着应该用手头的资源赶紧整点梯子用,不然以后可能就真连不上国际互联网了。 对于怎么搭梯子,我以前也有很多经验,像我之前也发过[网络任意互联指南](/2021/05/07/ssh.html)以及[不依赖代理连被Ban网站的方法](/2019/04/27/antiban.html)之类的文章,不过在我实际运用的时候还是会发现有些问题,比如之前我用SSH隧道,确实很好用,手机上也能找到可以连接的软件,要说问题确实也没啥问题,只是感觉速度不太行?其实我个人觉得SSH隧道挺好用的,不过我目前手头没有合适的直连的主机,所以不太方便用。 - 其实我也是想多做一些测试,想多试试看怎么样可以避免被防火墙检测,另外就是我一般都是做IP已经被Ban的假设(主要是不太希望IP暴露,可以参考[这篇](/2021/04/18/hide.html)文章),所以会想着用比如说Cloudflare的办法。所以会考虑这个代理软件应该支持TLS+Websocket。目前我看比较主流支持这个方案的基本上就是[v2ray](https://github.com/v2fly/v2ray-core)或者是[Trojan-Go](https://github.com/p4gefau1t/trojan-go)之类的……不过我想如果说我直接用TLS+Websocket+socks5那不是啥问题都解决了嘛,毕竟目前来说无论啥隧道,都不如TLS稳当。一开始我想着是自己用Python写一个,不过考虑到还是别重复造轮子了就上网搜了一下,结果还真有人写了一个,就是今天要讲的[wssocks](https://github.com/genshen/wssocks)。 + 其实我也是想多做一些测试,想多试试看怎么样可以避免被防火墙检测,另外就是我一般都是做IP已经被Ban的假设(主要是不太希望IP暴露,可以参考[这篇](/2021/04/18/hide.html)文章),所以会想着用比如说Cloudflare的办法。所以会考虑这个代理软件应该支持TLS+Websocket。目前我看比较主流支持这个方案的基本上就是[v2ray](https://github.com/v2fly/v2ray-core)或者是[Trojan-Go](https://github.com/p4gefau1t/trojan-go)之类的……不过我想如果说我直接用TLS+Websocket+socks5那不是啥问题都解决了嘛,毕竟目前来说无论啥隧道,都不如TLS稳当。一开始我想着是自己用Python写一个(其实Python也有人写,我后来搜了一下有个叫[websocks](https://github.com/abersheeran/websocks)的项目和我的想法有点像),不过考虑到还是别重复造轮子了就上网搜了一下,结果还真有人用Go写了一个,就是今天要讲的[wssocks](https://github.com/genshen/wssocks)。 + 其实相似的项目好像还挺多,后来我又搜了搜,还有比如[wstunnel](https://github.com/erebe/wstunnel)(这个看起来用的是啥Haskell语言,我都没听说过)和[wsSocks](https://github.com/Mikubill/wsSocks)也都是类似的项目,看来大家的想法都差不多,另外wssocks貌似还不是专门穿透防火长城用的,看介绍好像是他用来穿透他们学校USTB的防火墙用的。 # 使用评测 ## 配置 @@ -45,6 +46,8 @@ wssocks-windows-amd64.exe client --addr :10808 --remote wss://proxy.example.com/ 然后就可以用Socks5客户端连接代理并上网了,配置真的是很简单,也不用那些不太靠谱的一键脚本。另外它也支持HTTP代理,这样就算没有Socks5客户端也可以用系统代理,倒是挺方便的。不过我因为用的Proxifier所以不用HTTP代理,另外我也非常不推荐大家用系统代理,因为有的时候有些网站会利用WebRTC协议绕过系统代理,获得用户的真实IP,当然如果说用梯子单纯只是想上个外网那当我没说,毕竟那种人就是直接开着PAC,就没打算隐藏自己的IP。 ## 效果 我设置了Cloudflare解析之后试着连接了一下,连确实能连上,网页也勉强能打得开,但就是速度极其的慢,可能还不到1Mbps的样子,而且时不时会丢包。我寻思这个方案按理来说应该是不可能被检测啊,难不成Cloudflare一检测到长连接就会被干吗?我实在是搞不清,另外我也试了试不通过Cloudflare,直接走公网IP的效果,这个倒是还行,和v2ray的速度差不多,看来还是线路的问题。 + 不过我后来又换了一些网络,以及在不同时间又测试了一下,其实可能只是某些运营商针对Cloudflare,我换了网络之后速度还不错,另外也可以试试[CloudflareSpeedTest](https://github.com/XIU2/CloudflareSpeedTest)选择更快的节点。 + 另外其实v2ray可能也有一些优势,我后来在同一台服务器上测了v2ray tcp vmess的效果和wssocks比较,v2ray速度好像更快些。 # 感想 我用wssocks其实也只是想验证我的一些想法,像HTTPS和SSH都是非常常见的协议,防火长城不可能在包着一层加密的情况下猜里面走的到底是不是正常的流量,我觉得这种事情不难想象吧,但是目前用来反检测的代理软件我也不知道他们想干嘛,就喜欢整一堆原创协议,不知道是想证明什么,而且配置也很复杂,一堆乱七八糟的配置一般人能用到哪些?所以我才怀疑会不会是有人刻意通过设计这堆莫名其妙的东西提高制作代理的成本,而且偷偷整点特征就是为了多Ban一些IP?这个我是真的不太能理解……