主题:【原创】it科普二 蛋疼向研究之GFW -- 浩瀚星辰
GFW是什么大家都知道了,我们今天的目标就是来研究下GFW是怎么工作的。
在国内的朋友可以拿起火狐访问一下 www.youtube.com你会看到
连接被重置
载入页面时到服务器的连接被重置。
* 此站点暂时不可用或者太忙。请稍后重试。
* 如果您无法载入任何页面,请检查您计算机的网络连接。
* 如果您的计算机受到防火墙或代理服务器的保护,请确认 Firefox
被授权访问网页。
到这里很多人就关掉了,大部分人没兴趣去研究究竟发生了什么,他们只是觉得这个网址被被tg封锁了。也因为这几年长春真人实在是太活跃,也许昨天还上去的一个网站今天再去打开就会无法访问,所以经常就会有人一看到某个网站上不去了就会高呼网站被墙了,例如今天的imdb。我个人认为imdb是否被墙了还值得商榷,因为他和其他被墙网站表现形式不太一样。
连接超时
位于 www.imdb.com 的服务器响应时间过长。
* 此站点暂时不可用或者太忙。请稍后重试。
* 如果您无法载入任何页面,请检查您计算机的网络连接。
* 如果您的计算机受到防火墙或代理服务器的保护,请确认 Firefox
被授权访问网页。
看到不太一样的地方了吗?
载入页面时到服务器的连接被重置。
连接超时
位于 www.imdb.com 的服务器响应时间过长。
症状我们已经发现,问题是这个症状下面隐含了什么。
house:foreman,do a MRI!(不明白这句的请无视)
Tracing route to us.dd.imdb.com [207.171.166.140]
over a maximum of 30 hops:
1 2 ms 1 ms 1 ms localhost [192.168.1.1]
2 11 ms 7 ms 34 ms 222.129.184.1
3 7 ms 15 ms 5 ms 125.35.75.13
4 10 ms 8 ms 9 ms 61.148.157.121
5 4 ms 10 ms 10 ms bt-229-253.bta.net.cn [202.106.229.253]
6 14 ms 10 ms 9 ms 123.126.0.29
7 48 ms 49 ms 38 ms 219.158.8.214
8 219.158.11.154 reports: Destination host unreachable.
当然这并不是说没有被墙,而是和正规被墙的情况不太一样,也是为了引出本文的真正主角
tracert www.youtube.com
Tracing route to youtube-ui.l.google.com [74.125.153.100]
over a maximum of 30 hops:
1 2 ms 1 ms 1 ms localhost [192.168.1.1]
2 16 ms 23 ms 15 ms 222.129.184.1
3 10 ms 12 ms 5 ms 61.148.14.81
4 19 ms 11 ms 11 ms 61.148.157.9
5 4 ms 11 ms 8 ms 61.148.157.65
6 5 ms 8 ms 11 ms 123.126.0.5
7 40 ms 41 ms 42 ms 219.158.4.102
8 77 ms 83 ms 72 ms 219.158.3.222
9 * * * Request timed out.
10 124 ms 112 ms 123 ms 209.85.249.192
11 113 ms 109 ms 306 ms 209.85.250.86
12 218 ms 126 ms 112 ms 209.85.250.103
13 134 ms 113 ms 120 ms 72.14.233.130
14 119 ms 116 ms 111 ms ty-in-f100.1e100.net [74.125.153.100]
Trace complete.
问题在于去往youtube的数据包居然畅通无阻,但是我们什么也看不到。
之后大家可以联想下在google 搜f l g的效果,往往是一开始能看到些东西,之后就没有返回数据,你要看的东西被动态的墙了。
现在我们就来解密下gfw的工作原理吧,实际上火狐已经告诉大家是怎么回事了你的链接被重置了,但问题是重置是怎么回事恐怕一般人不知道.
我们先看看tcp的包结构
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
其中我们本次的主角就是
Control Bits: 6 bits (from left to right):
URG: Urgent Pointer field significant
ACK: Acknowledgment field significant
PSH: Push Function
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender
这个RST就是让大家看不到想看东西的元凶。
接下来我们就可以分析一下这个东西是怎么工作的,他蹲在主要出口路由上,只要敏感字符到达一个限制就马上向你机器推送一个伪装成你目标主机含有rst被置1的数据包,接下来你的计算机告诉你,载入页面时到服务器的连接被重置,于是你就看不到下面的东西了。
tcp数据包结构看不清的可以去看
http://www.faqs.org/rfcs/rfc793.html
rfc 793
这个命令似乎在正常情况下用的不多,是否可以忽略?
据说也有强人干了(似乎是inter的工程师),但是接着就因为连续观看受限制网站被请去喝茶了。
还好并没有为难这位仁兄,对于这位仁兄的能力来说,没收啥的根本没用,警告一番之后就放回家了。
听说的,一时还真想不起哪些不可以访问了,似乎是某些ZF机构的网站
你不是发了RST命令吗?你怎么证明我看到了?哈哈~~
通过那个装在出口的东西知道你的ip地址,之后找上门去查你的电脑,一看缓存和历史记录就全有了。(除非你事先清掉,不过也难保不被恢复)
不过光看这些东西并不违法,也不能把这位强人怎么着。
容易引起版权问题的网站,一般会限制国外ip访问。
不过好像也不是所有国家都看不到。
当然这个和大墙不是一回事。
日本的就不能看土豆网的东西,还有中国网上的柯南的在线视频也看不了
改个驱动程序让大家装上不就得了,还用得着这么麻烦的穿墙方式吗
就不能听歌了。。。
一种网卡就需要一个驱动,市面多少网卡就要多少驱动
不响应rst,改协议栈就行,只是不知道这样改之后有没有效果。
告诉我这事的是我的老师,他当时说的就是网卡驱动。
当然也有可能都可以,毕竟那位仁兄是搞硬件的可能对驱动更熟悉。
在协议栈中不响应,或者也许是在驱动中过滤虚假数据包。