项目十九--便携式科学上网路由器/儿童净网器

来自Microduino Wikipedia
跳转至: 导航搜索

本教程主要介绍如何在microWRT上搭建一个科学上网路由器。在China的极客,都不避免的会用到科学上网。如果不考虑安全,目前常用的几种方式如下:

  • 各种翻墙软件:这种方式的特点是门槛比较低,易使用,但是维护起来比较费事,有时需要多台设备频繁的维护升级。
  • VPN:这种方式的门槛也比较低,但是会影响国内访问的速度,在某些极端情况下甚至会引起中国服务的报警和拒绝。
  • PAC:这种方式也是门槛比较低,它是由云端统一分发,需要维护黑名单。并且不支持HTTP之外的协议。应用范围比较小。
  • 翻墙路由器:技术实现难度比较大,需要特殊的硬件投入。但是它的优点是,一旦设置后可自动运行,任何内网也能透明使用。非常适合家庭和中小企业使用,支持说有TCP协议。

因此,在追求上网品质的家庭或者企业,翻墙路由器是最佳选择。市面是也可以买到翻墙路由器,但大多价格比较高,并且服务没有保障,一旦因某种 原因被查封,你的路由器就只能当板砖来用了。所以对于极客来讲,如果能用基于openwrt路由器搭建一款自己的翻墙路由器,那真是不二选择。下面我们 就介绍如何利用shadowsocks 和chinadns搭建一个科学路由器,并实现自动分流方案。

MicroWRT系统搭建

在这个方案中,我们在openwrt系统的基础上安装shadowsocks和chinadns两款开源软件,这chiandns不是openwrt标准库里支持的,所以要另外安装。

1. 烧写正常工作的microWRT固件 编译个可以正常上网的microWRT固件,然后将他烧写到板子上,设置microWRT能能够通过家里的路由器直接访问外网。并且能够通过网页访问microWRT。

2. 安装shadowsocks shadowsocks是一款由@clowwindy开发的先进的,无状态的TCP代理工具。在通常情况下,shadowsocks具备无状态、无特征的特性,可有效对抗深度包检测。 此外,可自定义多个安全方式,并适用于全平台,包括路由器软件。在本教程中,shadowsocks负责将流量转发到代理服务器实现翻墙。

shadowsock对应有三个软件,一个是客户端,一个是服务器端,另外一个是Luci控制端。在microWRT上只需要安装客户端和Luci控制端。 客户端的安装有两种方式,一直openwrt里已经支持了shadowsocks客户端,玩家可以通过如下配置,使固件包含shadowsocks。配置如下:

文件:Science router.png
openwrt configuration

另外一种方式下载编译好的客户端进行安装。可以从如下网址进行下载。我们microWRT使用的CPU型号是ramips 的MT7620A。 http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/ 将下载好的ipk安装包通过winscp 复制到板子上的/tmp 目录下。然后通过putty登陆到板子上,安装ipk包。

 opkg install shadowssocks-libev-spec_2.4.0-1_ramips_24kec.ipk

安装完成后,会自动设置为开机启动,如果没有,可以手动添加。

对于Luci控制端,可以从下面的连接中找到,下载后按照上面同样的方法进行安装。注意要先安装客户端,在安装控制台。 http://sourceforge.net/projects/openwrt-dist/files/luci-app/shadowsocks-spec/

对于shadowsocks服务端,是安装在自由世界里的,他主要负责代理来自中的访问。玩家可以自己架设一天自己的shadowsocks服务器,但是需要一定的 技术门槛。当然很多玩家都是自己购买商业服务,价格也不是很贵。购买服务器后,服务商会提供一组参数作为登陆凭证,如下:

 Your Server IP:123.123.123.123  服务器地址
 Your Server Port:8964          服务器端口
 Your Password: password        登陆密码
 Your Local IP:127.0.0.1        本地IP
 Your Local Port: 1080          本地端口
 Your Encryption Method: aes-256-cfg 安全方法

这组参数,在下面配置的时候需要用到。 注意如果服务商给你的是一个网址,比如abc.proxy.com之类的,你需要自己将它转换成ip。转换方法是进入http://ip138.com/,查询这个网址 对应的IP地址,你将会得到一个ip地址,比如123.123.123.123。

2. 安装chinadns 由于DNS污染,光有shadowsocks不能正确完成所有的动作。chinadns采用双DNS解析匹配技术,过滤污染DNS结果,并负责区分中国和国际流量, 将国际流量转交给shadowsocks代理,其余流量从系统默认网关发出。 使用chinadns可以抗dns污染并实现流量的分流。

chinadns的安装和shadowssocks类似,只是在openwrt没有这个软件,需要完全的手动安装。通过下面的链接分别下载软件和luci客户端。 下载完成后用同样的方法进行安装。

chinadns-openwrt: http://sourceforge.net/projects/openwrt-dist/files/chinadns/

luci-app-chinadns: http://sourceforge.net/projects/openwrt-dist/files/luci-app/chinadns/

系统设置

通过上面的步骤,我们已经在microWRT上安装了所需的软件,然后通过网页登录到microWRT上,当看到控制台中出现shadowsocks和chinadns的设置 页面是,安装就成功了,下面就可以进行系统配置了。

1. Chinadns 配置 china负责过滤污染结果,并负责分发中国和国际的流量。打开chinadns的配置页面如下:

文件:Science router1.png
chinadns configuration
  • 默认为未启用,选择启用。
  • 本地端口:本地端口是路由器系统获取DNS的端口。(没启用的话,路由器将使用默认的DNS)不能和其他程序冲突,可以任意设置,设置后请牢记。
  • 国内路由表表明了中国的地址范围。这个可能会有变化,后续需要一定程度的维护,这个通常不需要动。
  • 上游服务器:
  理解chinadns就要充分理解上游服务器的概念。chinadns采用两组dns服务器,第一个是中国,第二个是国际。每次查询时同时查询。
  当所得结果为中国地址时,丢弃来自于国际服务器的答案,以便充分利用中国的CDN系统。当查询结果为国际地址时,丢弃中国服务器的答案,
  以便排除来自于中国的干扰。这里建议使用阿里DNS 223.5.5.5 或223.6.6.6 作为中国DNS服务器,理由是防止淘宝CDN错把你当作国际友人,结果被扔到全球站去。
  国际DNS的情况就比较复杂了,要防污染,又要速度快,有多种不同的方案。通常代理DNS需要更进一步的设置,或者需要shadowsocks具备UDP转发的功能。
  如果没有能力用pdnsd或者udp转发,也可以使用延迟时间,延迟0.3秒过滤污染包。这里采用了非标准端口的方式,将国际DNS的端口号改为非53端口。
  于是设置就是 223.5.5.5,国际DNS地址:5353
  • 双向过滤启用
  • 延迟时间设置为 0

设置完毕后保存并应用,看到chinadns的状态为启动后OK。

2. Shadowsocks 配置

打开shadowsocks的管理页面,勾选启用。 SS-LOCAL 不用打开 其他项目按照上面的参数依次填写。注意服务器地址最好写IP地址,而不是网址。 每一项目都必须和你服务商提供给你的一一对应。 超时时间可以设置为10秒。 最后不要启用UDP转发,设置完毕后保存和应用,看到shadowsocks状态为启用后OK。

3. 路由DNS设置

此时,路由器上的两个软件均已工作,但还不能科学上网。打开路由器的DNS设置,如下图。选择DNS为本地地址#CHINADNS端口。即127.0.0.1#XXXX,注意这里要用#,而不是冒号。

文件:Science router2.png
shadowsocks configuration

接下来选择”HOSTS和解析文件“, 选择忽略解析文件,忽略HOSTS文件。

保存并应用。

测试

以上配置完成后,路由器已经具有翻墙能力。下面进行测试:

1,关闭电脑上所有翻墙软件,将电脑的IP地址\DNS地址均设置为自动,连入openwrt路由器的网络。

2,访问www.whatismyip.com 确定是外国地址

3,访问www.ip138.com 确定是中国地址

4,访问其他被封网站,确定可以打开

以上条件均满足时,路由器设置成功。此时,所有中国之外的网站将全部通过代理。 接下来可以关闭电源,重启动后测试,看能否自动重启两个服务。


当然配置一个科学上网路由器还有其他方法和软件。本教程只是抛砖引玉,希望玩家在microWRT上开发出其他应用。