Phantomsocks/修改方式
修改方式
编辑修改方式是填在 config.json
的 interface
下的 hint
部分,部分可填入的修改方式有:
ipv6
: 只使用 ipv6 连接ipv4
: 只使用 ipv4 连接https
: 强制使用 HTTPS 连接h3
: HTTPS记录中添加h3并允许使用HTTP/3s-seg
: TCP连接的首包小于8字节w-md5
: 发出的TCP包带有错误的md5值w-ack
: 发出的TCP包带有错误的确认码w-csum
: 发出的TCP包带有错误的校验和w-time
: 发出的TCP包带有错误的时间戳w-seq
: 发出的TCP包带有错误的序号tfo
: 建立连接时使用TFO(TCP Fast Open)发送首包数据(仅windivert和pcap可用)mode2
: 以另一种顺序注入TCP包df
: 发出的TCP包不会分段。(Don’t Fragment)sat
: 持续注入TCP包直到TLS握手完成ttl
: 发出的TCP包将使用下一段ttl中注明的TTL(Time To Live)tls-frag
: 使TLS Record所在的TCP包分段[1]
更多的修改方式请查询源码中pcap.go、raw.go或windivert.go文件。
关于修改方式的评论
编辑在过去很长一段时间里(2019-2022),防火长城都未能彻底封锁某种修改方式,但在最近(2022年11月)笔者观察到s-seg、w-md5、w-ack、w-time方法修改TCP包容易被重置,具体表现为打开某网页时出现“连接被重置”错误,刷新几次可能会遇到1-3次重置,之后一切正常,可以连接。而ttl方式看起来是最稳定的,笔者使用此方式没有遇到重置。
参考来源
编辑- ↑ Niere, Niklas(2023年).Circumventing the GFW with TLS Record Fragmentation.