最近 XTLS 项目如火如荼,翻墙界还能这么热闹也很令人欣慰。
但是这个项目的方向其实有很大问题——重复发明加密协议。
基本上是走了一遍 Shadowsocks 当年的老路。
Shadowsocks 协议几经发展,历经诸多波折,最终定稿为 AEAD,然而 AEAD 其实就是 TLS 的算法。
XTLS 也走上了类似的方向,不过看起来更加直接。与其模仿 TLS,不如“优化”TLS:
把用不到的算法、格式、逻辑精简掉,XTLS 便这样实现了。
最近 XTLS 项目如火如荼,翻墙界还能这么热闹也很令人欣慰。
但是这个项目的方向其实有很大问题——重复发明加密协议。
基本上是走了一遍 Shadowsocks 当年的老路。
Shadowsocks 协议几经发展,历经诸多波折,最终定稿为 AEAD,然而 AEAD 其实就是 TLS 的算法。
XTLS 也走上了类似的方向,不过看起来更加直接。与其模仿 TLS,不如“优化”TLS:
把用不到的算法、格式、逻辑精简掉,XTLS 便这样实现了。
Trojan-GFW 其实是基于 HTTPS(基于 SSL 的 HTTP 协议)正向代理实现的,修改了握手的特征,加入了随机数据量混淆。
而 CDN 是反向代理,不能正确处理 HTTP 代理请求头(主要是不支持 HTTP Connect)。
原因就是这么简单。
为了穿过反向代理,就需要在 HTTP 协议的基础上创建一个新的协议。
与其重复发明轮子,不如使用现成的 WebSocket 协议,快捷高效。
Trojan-Go 就是这么做的。
@Echo Off | |
@Rem Batch file launcher with pause at exit | |
SetLocal EnableDelayedExpansion | |
Title %~n0 | |
CD /D "%~dp0" | |
If /I "%1"=="Minimized" ( | |
Start /Min Cmd /C "%~dpnx0 PauseErrorOnly" | |
Exit | |
) |
@Echo Off | |
Rem PS1 script launcher | |
Rem PS1 file can not exec directly so need launcher | |
Rem Use parameter Minimized to start in minimized window mode | |
Rem Use parameter Hidden to start in hidden window mode | |
Rem The other parameters will be passed to the PS1 script | |
SetLocal EnableDelayedExpansion | |
Title %~n0 | |
CD /D "%~dp0" | |
Set Path=!Path!;!SystemRoot!\System32\WindowsPowerShell\v1.0\ |
网上有很多文章说 Tor 配置文件 torrc
里的 MaxCircuitDirtiness
参数是更换 IP 的间隔。这是不对的。
https://2019.www.torproject.org/docs/tor-manual.html 写得很清楚,是链路是否重用的间隔。它们不一样。
在使用 Tor 时,Tor 会建立有入口节点有中间节点有出口节点的链路。而在已经建立链路的情况下,客户端新发起的请求会重用这个链路。
MaxCircuitDirtiness
参数的作用是设置链路在多久后不再受理新的请求。但请注意,如果这个链路上旧的请求尚未结束,例如长轮询、WebSocket,那么过期后它也不会断开,只是不再被新的请求使用。因此,会发生一直不更换链路的情况。
更换 IP,也就是更换出口节点。限制它的频率参数是 TrackHostExits
和 TrackHostExitsExpire
。
其中前者设置哪些域名、IP 需要控制节点时限。