Linux内核的路由器系统
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。常见的基于Linux内核的路由器系统有:DD-WRT,Tomato,OpenWrt…还有其他的就不再一一介绍了…
选用Linux内核路由器系统来作为平台
在这我也不去生搬硬套那些生硬的WIKI条目..只是用小白能够理解的语言来叙述….Linux内核的路由器可扩展性很强,如果各位小盆友对Linux有所了解,就应该知道它对于网络方面的可操作性上多么的强大。。。Linux的路由器可以安装各种软件,基本上桌面级Linux能够安装的软件,作为嵌入式方案的Linux内核路由器系统也能安装,比如“AMP”(Apache,Mysql,Php)。作为Linux,它也能安装gcc,用于自己编译软件使用。
如何得到Linux内核的路由器系统?
这种问题不是这次讨论的重点,至于”哪些路由器能用Linux系统,怎么安装?“这种问题,小白请到“恩山论坛”去了解。
我们需要Linux路由器的什么基本功能?
iptables 嗯~ o( ̄▽ ̄)o,就是它用于对各种数据包进行转发和调整。
libev libev作为libevent的替代品是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。
dnsmasq 这个东西嘛,如果用过Linux路由器的孩纸应该不会陌生,DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。用到的功能一般是它的去广告功能吧。哈哈。
兲朝上网方式存在的问题和解决
当前的上网方式有哪几点不科学?
这个问题在我之前文章里面应该说得很详细了,这次我就简单的说几点:
1 DNS污染。
GFW(这个词还有不懂的么?)会污染兲朝网络的DNS解析服务,当解析请求发送过程中,GFW会抢先返回一个错误的IP地址…巴拉巴拉的,之前我的文章要好好的去看,知道了没。
2 定向的IP地址屏蔽措施。
这个可能在前面的文章没好好说明,但是应该都知道一点才是。实在不懂的,我就解释两句:GFW会根据小盆友们请求的IP地址是否在某些列表中来进行定向屏蔽。也就是访问这些IP的链接会断掉。导致无法访问。(貌似说了3句)
3 ISP的劫持。
这个我的确在之前的文章没说。简单说就是比如你用”电不信”的网络,然后访问一个不存在的域名的时候,会跳转到一个乱七八糟的广告网页。类似的有什么114导航?我没说错吧?
如何解决上面说到的问题?
1 解决DNS污染:
a,用加密方式解析,例如”Dnscrypt”,这个是opendns的,优点在于现在有些ddwrt或者tomato版本已经集成了这个功能,缺点也是明显的,对于国内的一些cdn加速的解析不是很好,而且DNS解析更新慢一些
b,非标准端口的DNS解析服务器。优点就是不需要软件辅助只需要设置到DNS服务器的相应端口就行,缺点嘛,就是没多少DNS服务器开放了非标准端口的解析服务。
c,用TCP方式进行DNS解析。根据经验判断和后期实验总结,GFW对不是UDP方式的DNS请求暂时还是不进行污染的,后期是否还能这样就不清楚了。这个方案的优点就在于,基本上所有的DNS服务器都支持TCP解析,至于不足,就是需要额外的软件来进行。这也是我这次推荐的方案。
d,利用iptables命令丢弃GFW返回的伪DNS包,这个我在这里就介绍两条。并且问题多多,需要u32支持
iptables -I INPUT -p udp -m udp -sport 53 -m u32 –u32 “0&0x0F000000=0×05000000 && 22&0xFFFF@16=0x5d2e0859,0xcb620741,0x0807c62d,0x4e10310f,0x2e52ae44,0xf3b9bb27,0xf3b9bb1e,0x9f6a794b,0x253d369e,0x9f1803ad” -j DROP iptables -I INPUT -p udp -m udp -sport 53 -m u32 –u32 “0&0x0F000000=0×05000000 && 22&0xFFFF@16=0x3b1803ad” -j DROP
2 解决IP屏蔽。
这个东西,太多了,只要是提到科学上网方案的软件都行。但是我们这次是用Linux内核的路由器系统,所以得是Linux能运行的才可以。比如goagent,西厢计划,wallproxy等http代理,也可以用sshtunnel等转化的socks5代理。部署方式我就不详细说了,自行谷歌一下吧。
3 解决ISP劫持。
这个在这里不做讨论,一般网上有很多现成的教程里。