记录目前访问 Wikipedia 的配置

Wikipedia 和 Wikimedia 在 GFW 的审查方式是 DNS 污染叠加 SNI 阻断。因为维基百科编辑对于代理服务器默认是禁止的,这让直接访问变成了一个更强的需求。

(也有一种办法是找寻没有被封禁的 IP 地址,一般使用中国人/华人做的代理服务器总归能找到一些没有被纳入黑名单的 IP。)

首先要解决 DNS 污染的问题。

常用的办法是通过更改 hosts 文件去固定一些域名的 IP 解析。

那么,未被 SNI 阻断的域名和 IP 地址有哪些?

根据 Wikimedia 的这个页面和 Wikipedia 的这个页面,*wikipedia.org 域名都已经被 SNI 阻断。未被 SNI 阻断的域名有如下,

wikinews.org

wikisource.org

wikibooks.org

wiktionary.org

wikiquote.org

wikivoyage.org

wikiversity.org

wikimedia.org

wikidata.org

w.wiki

mediawiki.org

Wikimedia 纳入 DNS 解析的 IP 地址当中,**可用** 的有

208.80.153.224(美国卡罗尔顿)

185.15.59.224(荷兰阿姆斯特丹)

185.15.58.224(法国马赛)

这些 IP 地址已经 **被封锁**,

198.35.26.96(美国加州旧金山)

208.80.154.224(美国弗吉尼亚阿什本)

103.102.166.224(新加坡)

对于 maps.wikimedia.org 和 upload.wikimedia.org 这两个托管文件的域名,不可使用上述 IP 地址,仅支持 *.*.*.240 的 IP 地址。可用的包括,

208.80.154.240(美国弗吉尼亚阿什本)

208.80.153.240(美国卡罗尔顿)

185.15.59.240(荷兰阿姆斯特丹)

185.15.58.240(法国马赛)

实际上 Wikimedia 拥有的 IP 段包括更多未被官方用于解析的 IP,更换 IP 地址最后一个数可以找到更多。例如 198.35.26.97 对应的名称是 test-lb.ulsfo.wikimedia.org,但也可以用来解析 Wikimedia 的网页。(未证实,可能会有访问问题)

官方给出的 IP 查找方式是 nslookup 如下域名

text-lb.eqiad.wikimedia.org

text-lb.codfw.wikimedia.org

text-lb.ulsfo.wikimedia.org

text-lb.esams.wikimedia.org

text-lb.eqsin.wikimedia.org

text-lb.drmrs.wikimedia.org

对于 upload.wikimedia.org 这类托管文件的域名,对应的 IP 地址查找则是把 text-lb 替换成 upload-lb。

使用如上信息,再加上 Wikimedia 所有计划的域名,可以编写一份 hosts 文件。其中,upload.wikimedia.org 对应的 IP 必须以 240 结尾,而 wikidata.org 对应的 IP 则是用于解析 Wikimedia 页面的 IP 地址。可以任意替换成上述文章提及的可用 IP。

例如,

# Wikipedia Start208.80.153.224 www.wikipedia.org208.80.153.224 en.wikiepdia.org208.80.153.224 login.wikimedia.org208.80.153.224 wuu.wikipedia.org208.80.153.224 zh-yue.wikipedia.org208.80.153.224 zh.wikipedia.org208.80.153.224 zh.m.wikipedia.org208.80.153.224 ja.wikipedia.org208.80.153.224 ja.m.wikipedia.org208.80.153.224 ug.wikipedia.org208.80.153.224 ug.m.wikipedia.org208.80.153.240 upload.wikimedia.org# Wikipedia End

# Other Wikimedia Projects208.80.153.224 w.wiki208.80.153.224 zh.wikinews.org208.80.153.224 zh.wikisource.org208.80.153.224 zh.wikibooks.org208.80.153.224 zh.wiktionary.org208.80.153.224 zh.wikiquote.org208.80.153.224 zh.wikivoyage.org208.80.153.224 zh.wikiversity.org208.80.153.224 meta.wikimedia.org208.80.153.224 commons.wikimedia.org208.80.153.224 cxserver.wikimedia.org208.80.153.224 mediawiki.org208.80.153.224 www.mediawiki.org208.80.153.224 wikidata.org208.80.153.224 www.wikidata.org

移动版和多语言版本没有全部加入,可按需求添加。

此时未被 SNI 阻断的域名已经可以访问,也可以正常访问 Wikimedia 的这一指导文章:Help:如何访问维基媒体旗下项目

之后要解决 SNI 阻断的问题。

一般来说,在 DNS 解析正确的情况下,对于使用同一证书的域名,用户可以先访问一个未被 SNI 阻断的 A 域名,然后再访问被 SNI 阻断的 B 域名,因为缓存的缘故,用户将可以访问 B 域名。Wikimedia 的指引页面也给出了类似的办法,用的是访问未被 SNI 阻断的域名再跳转到 zh.wikipedia.org。

复制如下,点击任一数字都会做这一跳转。

1 2 3 4 5 6 7 8

实际中,这一方法可能不奏效。我们可以在本地使用 Domain Fronting 的方法去绕过封锁,原理是当你在访问被 SNI 阻断的域名(比如 zh.wikipedia.org)时,让 GFW 以为你访问的域名是未被 SNI 阻断的域名,比如 wikidata.org; meta.wikimedia.org, commons.wikimedia.org,或者上面 1- 8 数码对应的任一域名。

Method 1, 对于 Chromium 浏览器,可以更改其启动参数。把维基百科和维基媒体被 SNI 阻断的域名转向未被 SNI 阻断的域名。在“目标”(Destination) chrome.exe"之后加入如下内容,

--host-rules="MAP *.wikipedia.org wikidata.org, MAP commons.wikimedia.org wikidata.org"

需要注意,--host-rules 之前有一个空格。

这行命令的含义是,把 wikipedia.org 任何子域名的访问,都用 wikidata.org 这一域名的证书替代;以及访问 commons.wikimedia.org 时,也用 wikidata.org 这一域名的证书替代。

因此,也可以把 wikidata.org 替换成上面提到的任意一个未被 SNI 阻断的域名。比如,

--host-rules="MAP *.wikipedia.org meta.wikimedia.org, MAP commons.wikimedia.org meta.wikimedia.org"

Method 2, 对于 Firefox 浏览器,有人构建了一个可以用来访问 Wikipedia 的火狐浏览器。(需要事先配置好 hosts 文件。)下载地址是:https://files.catbox.moe/m1r574.zip

(但不知道什么原因,上面这个魔改我这里只能用来访问维基百科主站和中文维基百科,不能访问英文维基百科。)