mindpin / tech-exp

3 stars 0 forks source link

经验分享:应对国内互联网dns污染以及部分网络服务ip封锁的实验 #25

Open kaid opened 10 years ago

kaid commented 10 years ago

最近试着在本地架设dns recursor服务器,发现强制dns查询走tcp请求的话,可以获得干净的dns记录(可不穿墙直接访问youtube),并把获得的dns记录缓存在本地recursor服务器,这样解决了dns污染的问题,极大增快github、stackoverflow访问速度(我使用的是unbound服务器,配置文件, 注意修改第210行的用户名为自己当前用户名)。

但是google相关ip(除大陆分流节点ip)的直接访问都受到严重干扰,通过以上方法仍不能直接解决google访问受阻的问题。周五门旭告诉我可以通过修改/etc/hosts文件让google的主要服务域名都指向大陆分流节点,来改善google系列服务的访问状况,经实验访问速度确实有所改善(相关资料)。

unbound windows安装: http://elvisw.com/2012/02/windows-config-unbound-server/

pimgeek commented 10 years ago

听起来很有趣, 我现在就试试看.

pimgeek commented 10 years ago

刚刚在 Debian 7 下测试的结果:

系统环境

pimgeek@localhost:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.5 (wheezy)
Release:    7.5
Codename:   wheezy

安装 unbound 的方法

sudo apt-get install unbound

配置 unbound 的方法:

sudo vim /etc/unbound/unbound.conf
# 特别需要说明的是, 有一处需要修改为 username: "pimgeek" 也就是我自己的 linux 用户名
# 这样才能通过 unbound-checkconf
sudo unbound-checkconf
sudo /etc/init.d/unbound restart

这样做完之后是不是就等于设置生效了? 我感觉访问 stackoverflow.com 的确很快, 而且不会出现 css 等 static files 丢失的问题. 我还想试试 khanacademy.org 等经常容易丢失 static files 的网站, 你的配置是否主要针对 github 和 stackoverflow?

另一方面, 我试图使用以下配置文件修改 /etc/hosts

北京服务器:https://raw.github.com/smarthosts/SmartHosts/master/trunk/hosts

但实际启用之后, 发现访问 http://appengine.google.com 时出现异常, 出现机器人破碎的图片, 并且在浏览器标题栏显示 Forbidden 字样.

kaid commented 10 years ago

@pimgeek 这个对访问google帮助不大,因为如上文所说,google系列服务受到的是包含对Ip请求的干扰。

pimgeek commented 10 years ago

如果暂且不考虑这个问题, 单问你如何不重启 linux 系统也能让 hosts 生效, 你有什么建议? 我试图使用 sudo /etc/init.d/networking restart 命令, 但运行过程中提示我此命令已经 deprecated, 部分服务将不能正常 restart.

kaid commented 10 years ago

@pimgeek 非常抱歉点错了,删掉了你之前的一个评论....我也发现有这个问题,groups也403,应该是大陆节点上没有做这两个服务的分流,去掉相关记录应该就可以了。linux下因为系统守护京城管理机制的不同,我也不知道具体的重启网络方法,据说systemd要在8.0之前转换到新的systemd上面去。

pimgeek commented 10 years ago

不要紧了, 反正你的回答已经跟我要问的 appengine.google.com 访问异常的问题对上号了. 另一方面, 我使用 sudo /etc/init.d/networking restart 貌似 能让 hosts 修改立刻生效(但这仅仅是使用感受, 没有经过 ping 测试), 而且仍然能够通过浏览器打开网页, 暂时就这样做没问题.

kaid commented 10 years ago

这样就好

Kaid Wong

On Sunday, June 1, 2014 at 1:52 AM, pimgeek wrote:

不要紧了, 反正你的回答已经跟我要问的 appengine.google.com (http://appengine.google.com) 访问异常的问题对上号了.
另一方面, 我使用 sudo /etc/init.d/networking restart 的确能让 hosts 修改立刻生效, 而且仍然能够通过浏览器打开网页, 暂时就这样做没问题.

— Reply to this email directly or view it on GitHub (https://github.com/mindpin/tech-exp/issues/25#issuecomment-44754873).

pimgeek commented 10 years ago

今天早上又做了比较严格的 ping 测试, 以 developers.google.com 为例.

1 首先, 在不修改 hosts 的情况下, 进行 ping 测试, 并用 lynx 文本浏览器访问 https://developers.google.com, 测试结果为:

a) ping ip 为 74.125.235.206 b) lynx 浏览器访问载入速度非常慢

2 其次, 修改 hosts 增加 203.208.46.200 developers.google.com 的情况下, 进行 ping 测试, 并用 lynx 浏览器访问 https://developers.google.com, 测试结果为:

a) ping ip 为 203.208.46.200 b) lynx 浏览器很快有响应, 显示 HTTP/1.0 403 Forbidden.

kaid commented 10 years ago

@pimgeek 看来google访问问题仍然没有很好的解决方案。我在未修改hosts情况下,用curl -v请求google.com,发现一直在try不同的ip,大部分无法连上。可以直接ping通,但是http请求受阻。

Kaid Wong

On Sunday, June 1, 2014 at 11:14 AM, pimgeek wrote:

今天早上又做了比较严格的 ping 测试, 以 developers.google.com (http://developers.google.com) 为例. 1 首先, 在不修改 hosts 的情况下, 进行 ping 测试, 并用 lynx 文本浏览器访问 https://developers.google.com, 测试结果为: a) ping ip 为 74.125.235.206 b) lynx 浏览器访问载入速度非常慢
2 其次, 修改 hosts 增加 203.208.46.200 developers.google.com (http://developers.google.com) 的情况下, 进行 ping 测试, 并用 lynx 浏览器访问 https://developers.google.com, 测试结果为: a) ping ip 为 203.208.46.200 b) lynx 浏览器很快有响应, 显示 HTTP/1.0 403 Forbidden.

— Reply to this email directly or view it on GitHub (https://github.com/mindpin/tech-exp/issues/25#issuecomment-44766481).

pimgeek commented 10 years ago

@kaid 经过几天的使用, 我感觉 google.hk 的访问效果已经很好了, 因为我目前使用 developers.google.com , groups.google.com 等网站相对不太频繁, 所以这个方法虽然有很大缺点,但对我日常的 google 搜索而言已有不少改善.

kaid commented 10 years ago

另外我发现在goagent的proxy.iniiplist栏添加如下配置,也能达到不错的访问效果。

[iplist]
google_cn = 121.78.74.99|60.199.175.82|60.199.175.83|60.199.175.84|60.199.175.123
google_hk = 121.78.74.99|210.61.221.187
pimgeek commented 10 years ago

遵照以下 unbound for windows 安装说明, 在 Windows 7 下亲测通过, 遇到的教训是, named.cache一定要复制并粘贴到纯文本文件中单独保存. 不可以在浏览器中直接保存为文件. 不然会无法正常重启 unbound 服务. http://elvisw.com/2012/02/windows-config-unbound-server/