Skip to main content

🌏一个解决SNI RST导致维基百科、Pixiv等站点无法访问的工具 | A tool for solving SNI RST

Project description

Accesser

English version

一个解决SNI RST导致维基百科、Pixiv等站点无法访问的工具
支持的站点

使用

如果不知道什么是Python

这里下载Windows一键程序,运行既可(建议关闭其他代理软件),首次使用会要求安装证书,选是即可。

如果已经安装了Python 3.10*或更高版本

pip3 install -U "accesser[doh,doq]"

如果你不需要 DNS-over-HTTPS 和 DNS-over-QUIC,则可以不用带[doh,doq]

然后通过如下命令启动:

accesser

对于Windows系统,默认情况下(没有指定--notsetproxy)会设置PAC代理为http://localhost:7654/pac/?t=<随机数>,如果没有可以手动设置。

此外,对于Windows系统,默认情况下(没有指定--notimportca)会自动导入证书至系统,如果没有可以手动导入,请看这里

*可以使用例如pyenv来安装所需的Python版本(推荐Python 3.11+)。

设置

启动一次Accesser后,会在 工作目录 下生成config.tomlrules.toml,具体含义见其中注释,保存后重新打开程序。

进阶1: 与v2ray等其他代理软件一起使用

Accesser是一个本地HTTP代理,默认代理地址为http://localhost:7654,只要网络流量能从其他代理软件以HTTP代理导出就能联合使用。

v2ray为例,可以添加一个HTTP的outbound指向http://localhost:7654,并设置相应的路由规则,将维基百科、Pixiv等站点的流量送到这个outbound。 并在启动 Accesser 时带上 --notsetproxy 参数以避免 Accesser 设置系统代理。

此外,你还可以设置一个DNS outbound,然后编辑config.toml让Accesser使用这一DNS。

进阶2: 增加支持的网站

编辑工作目录下的pac文件(如果是一键程序,可以从GitHub下载这一文件到工作目录),使要支持的网站从代理过。

然而,并不是所有站点都可以直接工作,可能需要一些调节,见如何适配站点


时间线与后记

18年夏,通过修改 hosts 以连接被 GFW 屏蔽的维基百科、pixiv 等网站的方法突然失效。很快人们就反应过来问题的所在:SNI RST。 在这之前,修改 hosts 是一个几近于零成本的翻墙方法。突然的变化意味着翻墙成本的急剧上升。

为了重置平衡,同时抱着对更早时期红杏计划的敬佩,我翻阅了关于 TLS 的 RFC 文档,并注意到其中关于 SNI RST 涉及的 server_name 并非 "must",而是可选扩展。 经过简单测试,确认这一思路确实可行。 秉着重置平衡的想法,我制作了 Accesser,并配备了 web UI (现已移除),目的就是让一般人访问维基百科、pixiv 等网站的难度降低到 hosts 时代的水平。 尽管我仅在一个极小众论坛(现已关闭)上自荐过,一段时间后,Accesser 甚至成了中文维基社群推荐的方法。

在这之后,利用相同思路的翻墙软件/方法如春笋般涌现。不过稍微遗憾的是,他们中的许多没有做和远程服务器之间的证书校验,使得用户暴露在可能的危险中。 再往后,一些更加投机取巧,利用非标准协议的方法也有出现。

19年后,因日渐繁忙,加之坚信这一如此简单的思路很快就会失效,故停更。

22年末,契机是 Python 的协程接口日渐稳定,并出现需要的功能,我将 Accesser 的核心重写并在各位贡献者的协助下陆续更新。

Accesser 的大版本号是留予新的技术,然而出乎我的预料,现有的域前置技术在六年后仍未失效。 而另一方面,看起来天朝人民有足够的能力以维持平衡,因此 1.x 可能永远不会到来。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

accesser-0.10.0.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

accesser-0.10.0-py3-none-any.whl (32.7 kB view details)

Uploaded Python 3

File details

Details for the file accesser-0.10.0.tar.gz.

File metadata

  • Download URL: accesser-0.10.0.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for accesser-0.10.0.tar.gz
Algorithm Hash digest
SHA256 b11965b1a52adf1fc55e313f08d6a38f224c21a4597833a04c3fe1f784cd4691
MD5 07891c46f7e3b5d1f71f6efba8e0a597
BLAKE2b-256 651ba3e02d426271691e4cbe175e58534df1545f32e1b9e7a05cf77b5c85b5fb

See more details on using hashes here.

File details

Details for the file accesser-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: accesser-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 32.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for accesser-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec3367239ec67be6f6618aa179af8774ed6e89e9b7de98dbcb102e02f403e846
MD5 15842791323e10dbe343302a8be08943
BLAKE2b-256 7b871ff1b427a59797b5b929f04f2771bd203cce4c43073acfcb2187f80ad91a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page