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.