史上最通俗易懂的 OpenWrt 翻墙路由器解释
什么是域名和 IP 地址
每个网站都可以有两个唯一标识:域名和 IP 地址。域名相当于人的名字,IP 地址相当于该人使用的电话号码。(不同之处:域名是唯一的,人的名字会有重名)
网站为什么要有两个标识?域名是为了方便人类记忆的,比如 YouTube.com ,而电脑处理却喜欢处理数字,纯数字格式的 IP 地址就是为了让电脑查找计算方便些。
通过域名查询 IP 的那些事情
我们在浏览器地址栏里输入 www.youtube.com 并回车,到底会发生哪些不可思议的事情呢:
- 浏览器问就近的某台电脑(叫域名服务器):Hi, youtube.com 的 IP 地址是什么?
- 域名服务器:不就是 74.125.239.98
- 浏览器:谢谢。我就到你给我的地址去找内容了
还有种情况,浏览器第一次问的域名服务器不知道某域名的 IP 地址:
- 浏览器问就近的域名服务器:Hi, youtube.com 的 IP 地址是什么?
- 域名服务器:这个我不知道哇,我帮你问问我的上线
- 上线服务器:我也不知道哇,我也只好问我的上线,等等,别挂掉
- 某域名服务器:这么简单还来问我,不就是 74.125.239.98
- 浏览器:谢谢。我就到你给我的地址 74.125.239.98 去找内容
白脸很忙,不看 YouTube(看不懂?)
在中国,YouTube 为什么被封?YouTube 有几千万,上亿个视频,如果某几个视频让某些人看了不爽,就来个宁可错杀百万,不可放过一个,把整个 YouTube 给封了,全国人民都无法正常访问 YouTube 了。
这个时候,又发生了哪些不可告人的事情呢?
- 浏览器问就近的域名服务器:喂, youtube.com 的 IP 地址是什么?
- 中国的某域名服务器:这我知道,44.44.44.44,(心里嘀咕,我给你的是太平洋海底的地址,你能找到内容才怪呢,白脸(领导)很忙,天朝很好,访问这种破网站干啥,满屏洋文,我怎么看得懂,哼)
- 浏览器:谢谢。我这就去找主人需要的内容。。。找了好久,还是什么也没找到,我的命怎么这么苦。。。
阳光底下,每时每刻每秒,这样龌龊的事情在发生千次,万次,亿次...
白脸不知道 TCP?
人民要学习新知识,不能容忍这样的事情,于是想到了一些办法, 国内的域名服务器要说谎,那我直接就问国外的服务器比如 google 的 8.8.8.8 或 8.8.4.4,人家才不会这么卑鄙无耻下流无底线。直接问 google 的域名服务器的办法存活了一段时间,后来白脸(领导不晒太阳的)又知道了,又不高兴了,于是 google 的域名服务器 IP 地址也被封了。
网民的力量是无穷的,有人又发现了,查询域名 IP 地址的方式有 udp 和 tcp 两种,领导暂时只知道 udp,我用 tcp 的方式去问国外域名服务器,就可以得到网站域名对应的真实 IP 了。
写这篇文章的时候,tcp 的方式依然有效。但我怀疑,白难迟早又会不高兴。8.8.8.8 或 8.8.4.4 树大招风,而且白脸最容易记住的就是 8 和 4 这两个数字,白脸要发,白脸怕死。所以,我们索性不用 8 和 4 了,我们用加密的方式(shadowsockss ss-tunnel) 向自己的服务器查询,领导这下该满意了吧!
太阳要升起,网民要雄起
但是,还有问题没有解决:
网站有两种,国内的和国外的。如果不分国内国外全部都到国外去查询域名的 IP,访问国内的网站就会变慢。虽然有心逃离,还是无法割断哪。
有几种解决方案:
- 建国外重要网站名单,简称外单(黑名单,gfwlist),外单上的域名都到国外去查询 IP,其他就在国内查询。
如果 IP 地址在外单上,就加密访问,领导不知道我访问了这个地址,这样领导的心情可能会好些。
- 同样是建立外单。不同的是,我不想花费精力去区分某个 IP 是不是在外单上,IP 地址可能经常在变,这样做不怕累吗。我的办法是,不是中国的 IP,全部加密访问。
- 每个人的用途不同,谁有本事建立通用的外单?
即使有人建立了包含很多域名的外单,网站内容往往是互相引用的,某外单上网站引用了不在外单上的被封网站,导致打网站贼慢,这个该怎么办?难道要手动查看网页源代码,一个个地搜索查找,逐个测试?
最简单有交的方法,是给国内重要网站建立名单,简称内单。内单上的网站都在国内 dns,其他网站全部到国外 dns。访问非中国的 IP 都流量加密。
我曾经用过第一种方案,试图用网友整理的外单(ChinaDNS),但是,在实际使用过程中,经常需要临时增加外单域名并重启路由器,有时一天要重复好多次,不胜其烦。
第三种方案,就是本教程使用的方案,是目前来说比较好的方案。
OpenWrt 翻墙路由器内部发生的故事(千万别告诉白脸):
- 浏览器:喂,谁知道 YouTube.com 的 IP,主人要用
- 路由器:稍等,我查下主人设置的内单,稍等。。。不在内单,我通过秘密通道查
- 浏览器:喂,告诉我 baidu.com 的 IP
- 路由器:哇,内单,马上就给你
- 浏览器:请给我 IP 地址 60.188.5.6 的内容
- 路由器:等下,立即就好。。。中国 IP,该那就那去取内容。不是中国 IP,借道主人的秘密通道去取内容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论