• Linux
  • 免翻墙上2047:phantomsocks 实测 + thphd 修改增强版

转自 https://2047.name/t/16729

老帖参考:

https://2047.name/t/12699

https://2047.name/t/16727


phantomsocks 原版 编译 + 测试

测试环境:上海电信(感谢某不愿透露姓名的网友)

Windows 10 ×64

  1. https://github.com/Macronut/TCPioneer/releases/tag/v0.5.6,下载 tcpioneer.zip,里面有WinDivert dll和sys文件。也可以直接去WinDivert官方下载

  2. https://golang.org/dl/,下载 https://golang.org/dl/go1.17.3.windows-amd64.msi 并安装

  3. 打开cmd(管理员权限)

git clone https://github.com/Macronut/phantomsocks
cd phantomsocks
set https_proxy=http://你的翻墙代理
set GOOS=windows
set GOARCH=amd64
go build -tags windivert -v

(将WinDivert dll和sys放到当前目录)
phantomsocks.exe -socks 0.0.0.0:2047 -log 3

然后浏览器socks5代理指向本机2047端口,即可直连中文维基(默认conf文件里有维基百科的域名和IP),且不会被SNI RST.

phantomsocks 工作原理

HTTPS握手时会发送明文SNI,如2047.name或者zh.wikipedia.org,GFW看到之后就会发送RST包阻断连接

phantomsocks在windows上利用windivert修改TCP包(在其他OS上用其他方式),修改后的TCP包不合常理,会使GFW状态机紊乱,导致GFW无法正常进行SNI检测,从而也就不会发出RST包阻断连接

phantomsocks作者提供了一个default.conf,允许用户指定每个域名的:

  • IP地址,类似hosts文件(对于google等大范围IP封锁的服务,用户需要手动指定可用的IP地址,而不能依赖DNS服务器返回的结果)
  • TCP包修改及发送策略(不同网站由于采用的服务器技术不同,对各种修改后的TCP包的适应性也不同)
  • 解析(若未提供IP地址)时使用的DNS服务器

thphd修改增强版

https://github.com/thphd/phantomsocks

经过试用,我们发现原版phantomsocks最大的一个问题是,用户必须手动把需要解析的域名添加到default.conf中,不添加就不能正常解析,工作量很大。

为此我略微修改了phantomsocks,现在对于配置文件中不存在的域名,也会通过cloudflare dns解析,不需要再手动添加到配置文件中。详情见代码及default.conf.

  • google/youtube 是大范围IP封锁,所以仍然要手动添加未被封锁的IP到配置文件中,才能直连访问。
  • 所有挂在Cloudflare等CDN上的域名(例如2047.name和pincong.org),都是SNI封锁(因为封CF的IP代价太大),因此在DNS正常工作的情况下,无须更多设置便可直连访问。

为方便各位测试,提供一个预编译版本,内附配置文件和WinDivert驱动,解压即可使用。https://github.com/thphd/phantomsocks/releases/tag/initial

(管理员权限CMD)phantomsocks.exe -socks 0.0.0.0:2047 -log 3

浏览器代理指向本机2047端口,即可正常访问:

    感谢,又知道了一个值得转一转的网站了

    第一次听说这个网站,好像里都是喜欢键政的人,感觉和品葱差不多

    thphd 这个非常棒,大家赶紧动起来。免费翻墙姿势又多了一个。

    太深奥了,看不懂怎么使用

    下载 @thphd 那个编译好的压缩包。然后新建 start.bat 文件,内容如下:
    phantomsocks.exe -socks 0.0.0.0:2047 -log 3

    然后点击 start.bat 运行就ok了。浏览器端口改成 Socks5 127.0.0.1:2047 就可以了。

    刚测试了下,这玩意对无二论坛倒是有效果,2047反而无效,😓

      七舅姥爷

      实测是有效果的,2047的IP是用 cloudflare dns (tls://1.0.0.1:853)解析出来的。

      如果您链接1.0.0.1不畅,请在配置文件中手动添加2047的IP:

      2047.name=104.21.83.17

        能连youtube,可是看不了视频