相较于Escape项目,revolter-firefox项目的作者采取了直接魔改Firefox68的策略来实现域前置——修改Firefox(依赖库 nss)的源代码,使其在发送Client Hello时可以不发送或自定义SNI信息。

SNI阻断通常伴随着DNS污染。因此,在试图解决SNI阻断之前,应首先确保正确的域名解析
幸运的是,Firefox68已经支持DoH功能,因此可以较为简便地解决DNS污染问题。
当然,直接修改Hosts文件也不失为一种行之有效的经典策略。

一. revolter-firefox的安装

1.安装Firefox68

此项目的官方说明文档写得很详细。

首先,在Mozilla的文档库中下载Firefox68的安装包。32位系统请选择win32。
ff1.png
ff2.png

下载安装包后,双击运行。
如果电脑上已安装其它版本的Firefox,可以选择“自定义安装”,指定一个新的路径,避免冲突。
ff3.png

需要注意的是,从这里开始,务必断开网络连接,否则程序将自动更新,导致工具无法使用!(此项目仅支持Firefox68)
ff4.png

断网后,启动Firefox68,打开选项,禁用自动更新。按下图设置完成后即可重新联网。
ff5.png
ff6.png

2.覆盖安装动态链接库

下载 nss3.dll文件(Windows)或libssl3.so文件(Linux),覆盖到Firefox的安装目录中。
ff7.png

至此,已经完成revolter-firefox的安装。

二. 关于配置文件

此工具的默认规则为不发送任何网站的SNI信息
对于E-Hentai和Pixiv这两个站点,此规则都是完全可行的。
将上述网站的IP信息写入Hosts文件(详见上一节 Escape的使用示例),以解决DNS污染。(亦可参考官方说明文档,配置DoH)

然后尝试访问这两个网站,可以看到,都能够顺利直连。
ff9.png
ff8.png

但对于Syosetu站点,由于static.syosetu.com不支持域前置,会导致页面样式无法加载的情况。
ff10.png

此时需要根据官方说明文档自行创建并修改配置文件,以实现对SNI信息的自定义修改
经笔者测试,添加如图两行规则即可确保对Syosetu网站的页面样式的正常加载。
20210129补充:*.github.io疑似正在被运营商审查,此处填写的SNI信息可更换为h.guthib.io
ff11.png
ff12.png

对于其它网站的SNI阻断的具体解决方案,留作读者自行探索。

三. 小结

本节内容与上一小节(Escape的使用示例)互为补充印证,阅读时遇到疑难可以尝试对照浏览以加强理解。
从这两节也可以略略感受到,Firefox是一款可拓展性极强的浏览器,也许这正是其具有旺盛生命力的原因之一。

评论已关闭