记录目前访问 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 Start
208.80.153.224 www.wikipedia.org
208.80.153.224 en.wikiepdia.org
208.80.153.224 login.wikimedia.org
208.80.153.224 wuu.wikipedia.org
208.80.153.224 zh-yue.wikipedia.org
208.80.153.224 zh.wikipedia.org
208.80.153.224 zh.m.wikipedia.org
208.80.153.224 ja.wikipedia.org
208.80.153.224 ja.m.wikipedia.org
208.80.153.224 ug.wikipedia.org
208.80.153.224 ug.m.wikipedia.org
208.80.153.240 upload.wikimedia.org
# Wikipedia End
# Other Wikimedia Projects
208.80.153.224 w.wiki
208.80.153.224 zh.wikinews.org
208.80.153.224 zh.wikisource.org
208.80.153.224 zh.wikibooks.org
208.80.153.224 zh.wiktionary.org
208.80.153.224 zh.wikiquote.org
208.80.153.224 zh.wikivoyage.org
208.80.153.224 zh.wikiversity.org
208.80.153.224 meta.wikimedia.org
208.80.153.224 commons.wikimedia.org
208.80.153.224 cxserver.wikimedia.org
208.80.153.224 mediawiki.org
208.80.153.224 www.mediawiki.org
208.80.153.224 wikidata.org
208.80.153.224 www.wikidata.org
移动版和多语言版本没有全部加入,可按需求添加。
此时未被 SNI 阻断的域名已经可以访问,也可以正常访问 Wikimedia 的这一指导文章:Help:如何访问维基媒体旗下项目
之后要解决 SNI 阻断的问题。
一般来说,在 DNS 解析正确的情况下,对于使用同一证书的域名,用户可以先访问一个未被 SNI 阻断的 A 域名,然后再访问被 SNI 阻断的 B 域名,因为缓存的缘故,用户将可以访问 B 域名。Wikimedia 的指引页面也给出了类似的办法,用的是访问未被 SNI 阻断的域名再跳转到 zh.wikipedia.org。
复制如下,点击任一数字都会做这一跳转。
实际中,这一方法可能不奏效。我们可以在本地使用 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
(但不知道什么原因,上面这个魔改我这里只能用来访问维基百科主站和中文维基百科,不能访问英文维基百科。)