Phantomsocks/修改方式
外观
修改方式
[编辑]修改方式是填在config.json
的interface
下的hint
部分,phantom.go中将其分为3类:DNS、FAKE和MODIFY。
DNS
[编辑]此类hint主要影响Phantomocks的DNS服务器。
https
:有为发往80端口的HTTP请求回复302重定向到HTTPS的功能。分到DNS里可能是因为其还有启用HTTPS记录的作用。h2
:在回复的HTTPS记录中加入h2的ALPN,指示应用程序使用HTTP/2。h3
:在回复的HTTPS记录中加入h3以及多个之前的草案的ALPN,指示应用程序使用HTTP/3。ipv4
: 只查询A记录,并且只使用IPv4连接ipv6
: 只查询AAAA记录,并且只使用IPv6连接
Fake
[编辑]ttl
: 发出的TCP包将使用下一段ttl中注明的TTL(Time To Live)w-md5
: 发出的TCP包带有错误的md5值n-ack
: 未知w-ack
: 发出的TCP包带有错误的确认码w-csum
: 发出的TCP包带有错误的校验和w-seq
: 发出的TCP包带有错误的序号w-time
: 发出的TCP包带有错误的时间戳
Modify
[编辑]s-seg
: TCP连接的首包小于8字节1-seg
:tls-frag
: 使TLS Record所在的TCP包分段[1]tfo
: 建立连接时使用TFO(TCP Fast Open)发送首包数据(仅windivert和pcap可用)half-tfo
:mode2
: 以另一种顺序注入TCP包move
:strip
: 对客户端浏览器实现SSL Strip。客户端访问HTTP的80端口时,phantomsocks访问HTTPS服务并忽略证书错误。fronting
: 未完成的域前置方法,和strip
同时使用。访问HTTPS服务时操作tls.Config的ServerName并忽略证书错误。目前无法指定ServerName值。
未分类
[编辑]df
: 发出的TCP包不会分段。(Don’t Fragment)sat
: 持续注入TCP包直到TLS握手完成
更多的修改方式请查询源码中pcap.go、raw.go或windivert.go文件。
参考来源
[编辑]- ↑ Niere, Niklas(2023年).Circumventing the GFW with TLS Record Fragmentation.