WP 禁止 Google 和 GitHub 连接

GithubTutorial_part2

今年五月底以来,对 Google 服务的彻底封杀,
不但让骆驼的日常生活受到严重困扰,同时也影响到了工作层面。
大量的资料查询需要翻墙,同时各种服务也无法正常使用。
就连 也受到牵连,因为在最近版本中,
开始默认使用托管于 Google Fonts 上的 Open Sans 字体。
前后台都会因此变得缓慢,相关的博文很多,也就不再赘述。
最简单的解决方法就是安装并启用,
Suifengtec 开发的 Remove Open Sans font Link from WP core

但这仅能对 后台起效,针对不同的主题和插件,
还需要在源代码中搜索“fonts.googleapis.com”。
它们多半在 CSS 等样式文件中出现,直接删除并不会影响到使用,
本来而言 Google Fonts 目前对于中文网页而言意义微乎其微。
除去 Google Fonts,其它 Google 托管的文件也应转为本地或者国内 CDN 地址。
扩大搜索范围到“googleapis.com”可能会找到类似以下的地址:

<script src=http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

不考虑版本差异的话,可以考虑改用百度开放云提供的 CDN 公共库:

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

另外,查询“cdn”或者常见库名(如“jquery”)有时也能找到挂在国外 CDN 的文件链接,
这就需要自己翻墙下载回来扔上服务器再改链接。比如下面这条:

<script src="'+_dlp+'//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.0.6/jquery.mousewheel.min.js"></script>

除了 Google 这个冤大头,GitHub 也是 插件外链的重灾区。
在最近接触的一个 WordPress 案例中,启用某主题并进行了基础优化(去 Google)流程后,
前台访问速度正常,而管理后台依然非常缓慢。
症状为点击链接后,数秒服务器才有反应,之后加载速度并不缓慢。
推测服务器后台在加载页面之前,还对外网进行了访问,
而该网址难以到达(被墙),因此需要数秒判断。

尝试中断互联网,仅保留局域网。再次访问后台,
所有页面打开都在一秒左右,非常流畅,证明此前的推测是正确的。
恢复互联网连接,打开服务器上的实时连接监控(360流量防火墙),
点击后台页面,同时观察 httpd.exe 的连接情况。
发现会用 443 端口去连接 103.245.222.133,数秒后该连接中断。

forbid-github-httpd

反查该IP位于美国西海岸,直接打开则显示为 相关页面。
结合近年 反复被墙的消息,基本锁定了目标。
在主题源文件中查找“.com”发现数个相关内容,
并且也是通过 https 访问,符合此前观察的 443 端口连接的情况。
将结果加入服务器的 hosts(c:\windows\system32\drivers\etc)

127.0.0.1		github.com
127.0.0.1		api.github.com
127.0.0.1		modernizr.github.com
127.0.0.1		raw.github.com
127.0.0.1		ivaynberg.github.com
127.0.0.1		github.map.fastly.net

其中 modernizr.github.com 和 ivaynberg.github.com,
域名看上去应该是开发者的主页(GitHub Pages),而非 GitHub 自身的子域名,
同时 ping 值返回都是 103.245.222.133,也可以看到其真实域名应该是
github.map.fastly.net(Fastly为GitHub提供CDN服务),一并加入屏蔽列表。

forbid-github-ping

【相关资料】
1、kioko – Create A Repository◃tk
2、suifengtec – a WordPress plugin:Remove Open Sans font Link from WP core◃suoling.net
3、孟胜彬 – 为GitHub Pages自定义域名◃shengbin.me

无觅相关文章插件,快速提升流量

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.