GFW

自动翻墙路由器制作 Part. 3

May 13, 2016
DIY, GFW, Router

前面两篇( Part.1 和 Part. 2)中,我们完成了路由器的刷机和基础设置。这一篇作为收尾,我们需要完成剩下的部分——脚本配置。 chnroutes 我们为了实现流量的自动分流,需要通过设置路由将访问国外的流量通过VPN,访问国内流量通过原有网关来实现。 虽然获取所有注册国家为中国的IP地址不难,但既然我们很幸运的已经有了现成脚本,也就不要再重复发明轮子了。chnroutes是一个非常不错的项目来导出所有的中国IP。 #!/bin/sh set -x export PATH="/bin:/sbin:/usr/sbin:/usr/bin" LOG='/tmp/autoddvpn.log' LOCK='/tmp/autoddvpn.lock' PID=$$ INFO="[INFO#${PID}]" DEBUG="[DEBUG#${PID}]" ERROR="[ERROR#${PID}]" echo "$INFO$(date "+%d/%b/%Y:%H:%M:%S")chnroutes.sh started" >> $LOG for i in 1 2 3 4 5 6 7 8 do if [ -f $LOCK ]; then echo "$INFO$(date "+%d/%b/%Y:%H:%M:%S")got $LOCK, sleep 15 secs. #$i/6" >> $LOG sleep 15 else break fi done OLDGW=$(nvram get wan_gateway) route del default gw $OLDGW sleep 1 route add default gw $OLDGW metric 100 sleep 1 route add -net 10. ...

自动翻墙路由器制作 Part. 2

May 12, 2016
DIY, GFW, Router

在 上一篇文章中,我们已经搞定了路由器刷机问题,这一次我们需要做的是进行路由器的基本配置。 基本配置 我们首先不考虑NAS BT下载设备的存在。我们无法正常访问国外的一些网站,除了链接被reset之外,还有一个原因是DNS污染。DNS污染让域名不能解析正确的IP地址,而是给出黑洞IP,让我们所有的链接都超时。不过也正式这样的黑洞IP,让我们在后面可以用来做健康检查。为了避免DNS污染,我们所有的DNS解析都要通过国外的DNS服务器进行解析。常用的有OpenDNS和Google DNS两个,用哪个没有本质区别,全看个人喜好。baidu差的原因,就是文章都是重复的。如果你搜索ddwrt翻墙的DNS设置,我相信你很难找到有实际参考价值的文章。DD-WRT内置了两种DHCP服务器,标准的uDHCPd和DNSMasq。由于我们需要使用DNSMasq来实现防DNS污染的功能,所以DNSMasq是必须打开的。设置如下:为了让AP下面所有的设备都能获得我们设置的外国DNS服务器,我们通常有两种方式进行设置。 DHCPd 默认情况下,DD-WRT会启用DNSMasq作为DHCP服务端,这就导致了在设置页Setup->Basic Setup->Network Setup->**Network Address Server Settings (DHCP)**部分的三条Static DNS设置后不起作用。 因为这里的选项是对应标准uDHCPd服务端的,就算设置了分配给DHCP客户端的DNS服务器地址还是路由器的内网IP,也就是还会默认以ISP提供的DNS解析服务器为准。这时就需要取消下面选项中的Use DNSMasq for DNS,让标准服务提供客户端DNS解析服务器地址。 虽然当然这样会消耗更多的内存,不过现在路由器性能强劲,这点消耗其实不算什么。 DNSMasq 上策就是到Services->Services->DNSMasq->Additional DNSMasq Options中填入如下内容:dhcp-option=6, 8.8.4.4, 8.8.8.8,这样应用设置并让客户端重新连接刷新DHCP信息后,就可以看到已经在使用指定的DNS解析服务器地址了。 打开JFFS2 我们已经完成了基本的设置,接下来需要做的就是开辟一个即使重启也能保存我们脚本的空间——JFFS2。在Administration->Management->JFFS2 Support中,选择Enable JFFS2 虽然启用了JFFS2,不过默认情况下可用空间是0,我们需要选择Enable Clean JFFS2,然后在页面的最下方选择Apply。如果没有问题,就能看到可用空间已经不为0 KB了。 PS: 实际数字可能和图上不同。PS 2: 每次Enable Clean JFFS2,然后Apply之后。Clean JFFS2都会自动变成Disable。PS 3: 有些型号的路由器需要无论怎么Clean JFFS2都是无法使用的。这时请Google。 SSH 虽然我们默认可以telnet上路由器来写脚本,但这远没有直接打开SSH服务用SFTP上传本地完成的脚本方便。虽然这不是必须配置的内容,但我还是强烈建议打开SSH。在Services->Services->Secure Shell中,打开SSHd。 这里最重要的就是SSHd必须打开,其他的可以按照自己的需要来设置。当然,有了SSH,下面的telnet就别忘记关闭了。在下一篇文章中,我们就要开始配置脚本让我们的流量能够自动根据我们访问的内容使用不同的网关。

自动翻墙路由器制作 Part. 1

May 11, 2016
DIY, GFW, Router

原因 互联网技术与英语在网络上被称为现时了解世界的两大必要手段,这其中的互联网技术也就是翻墙。虽然翻墙的技术已经非常的多,而且也非常成熟,但是基本都是对应了单机如何配置。现今在家里只有一台设备需要上网的情况已经几乎不存在了,所以一台能够自由访问网络的翻墙路由器才是最需要。 前些时候的autodvpn是一个不错的方案,但是碍于更新问题,有很多地方没有说清楚。如果自己制作翻墙路由器,在没有技术背景的前提下,往往是很难解决的。 这篇教程希望通过一个最简单的方式告诉大家,如何从购买路由器开始,做一款能够自动翻墙的路由器。 设备选择 硬件比较 要自己的路由器能够自动的完成这一系列的动作,自己能够在家里轻松享受互联网,是需要一定的基本条件的——路由器支持高级的配置。支持高级配置无非即是脚本,或者一些其他非web方式的配置方式。满足这样条件的路由器通常有这样几种方案: ddwrt。通过将普通的家用路由器刷上ddwrt来实现ssh登录路由器的配置方式。这样的成本相对比较低。说相对是因为现在一些家用路由器已经比较昂贵,买下来实际可能不便宜。 Cisco ASA5505。是的,你没有看过,这也是一个备选方案。当然我不会让你去和Cisco的代理商去购买一台新的设备再加上天价的License,我说的就是 TB上的二手货们。别看这些二手货成色不怎么样,本身定位于商用(虽然是低端)让他各方面的器件都有很不错的生命周期。只要买到的设备没有故障,可以使用很长的时间。而且ASA本身配置很简单,硬件到手之后很快就能完成所有的工作。不过,5505自身不带wifi,所以你可能自己要准备一个接在后面的家用路由器来做wifi接入。 如果你家有不用的老主机,可以用VSR这样的东西来实现。如果你看得懂我在说什么,你也应该知道怎么配置来实现自己的想法。 这次我用最常见的ddwrt来写这篇教程,需要ASA和VSR的同学,你们多半自己能搞定,不要找我。 硬件购买 要使用ddwrt,最好的方式就是在 官网上查看什么样的设备是支持的。技术上选择的标准当然是性能越强越好,毕竟ddwrt扩展了应用性,也相应增加了对设备硬件的压力。选择好了就用自己最喜欢的方式买到手就行,如果不出意外,TB依然是最省力的方式。 后面按照Linksys E4200为例来讲解。这个设备很漂亮,而且非常稳定。除了贵之外没有缺点……=_= 刷机 拿到了设备第一件事就是按照官方教程刷机。为什么我要强调官方两个字,就是因为总有人喜欢baidu一些乱七八糟的文章——不知道是哪一年或者拼凑的哪里的文章,搞得最后一堆麻烦。 如果你顺利完成刷机,我们就准备进入配置阶段了。