EA6500刷DD-WRT
2015-05-08起因是想用小米盒子看YouTube,结果虽然小米盒子装好了Shadowsocks,但是无法启动。索性直接从路由着手,终于要给我的Cisco EA6500 刷刷系统了。
主要的3种固件:OPEN-WRT, DD-WRT, tomato。OPEN-WRT用的最多,小米路由也是基于这个系统,网上的帖子也最多,不过可惜不支持我的路由。我只能刷DD-WRT。
主要参考这两篇文章:
http://www.right.com.cn/forum/thread-158405-1-1.html
EA6500的DD_WRT下载地址:http://www.dd-wrt.com/site/support/other-downloads
刷成功的步骤:刷 1.1.28.144856版本的原厂固件,然后再这个版本上刷dd-wrt-23838-ea6500.trx这个版本的DD-WRT,然后再刷想要的版本。
打开192.168.1.1,设置用户名密码,因为ssh的用户名是root,所以建议这里也用root
管理页面切换为中文
服务页开启SSHD
管理页开启JFFS2
然后安装Shadowsocks。路由中安装的Shadowsocks版本叫Shadowsocks-libev。Shadowsocks-libev在编译时有很多选项,你还需要明白你的路由器构架。明白了这些参数才能找到适合你的版本。我的路由器CPU是BCM4706,属于MIPS构架。PolarSSL版,体积小,支持加密方式少,OpenSSL版,体积大,支持加密方式多。C依赖库注意: 文件名不带uclibc的都是glibc,DD-WRT/OPEN-WRT一般都是uclibc的。所以我需要的就是OpenSSL、uclibc、MIPS的版本。
Shadowsocks-libev的下载地址为:http://www.right.com.cn/forum/thread-138582-1-1.html http://dl.lazyzhu.com/file/Toolchain/ss-libev/
ssh登录到路由中,把Shadowsocks-libev的4个文件放到/jffs/shadowsocks/下面
在这个目录下创建一个shadowsocks.json文件,一个ss-redir.json文件
shadowsocks.json文件中加入下面的内容
{ "server":"1.1.1.1", #你shadowsocks的IP地址 "server_port":1212, #你shadowsocks的端口 "local_port":1235, #本地端口(不知道的不用更改了) "password":"shadowsocks", #你shadowsocks的密码 "timeout":60, "method":"aes-256-cfb" #你shadowsocks加密方法 }
ss-redir.json内容类似,只不过端口不一样(比如1236)
运行:/jffs/shadowsocks/ss-local -c /jffs/shadowsocks/shadowsocks.json,然后用浏览器设置代理,试验能不能用,如果可以用,说明Shadowsocks-libev可以工作
下面就是设置透明代理,让连上路由的设备都不需要设置代理
在路由的管理页面开启DNSMasq,并且设置下面的内容:
server=/.google.com/208.67.220.220#443 server=/.google.com.hk/208.67.220.220#443 server=/.gstatic.com/208.67.220.220#443 server=/.ggpht.com/208.67.220.220#443 server=/.googleusercontent.com/208.67.220.220#443 server=/.appspot.com/208.67.220.220#443 server=/.googlecode.com/208.67.220.220#443 server=/.googleapis.com/208.67.220.220#443 server=/.gmail.com/208.67.220.220#443 server=/.google-analytics.com/208.67.220.220#443 server=/.youtube.com/208.67.220.220#443 server=/.googlevideo.com/208.67.220.220#443 server=/.youtube-nocookie.com/208.67.220.220#443 server=/.ytimg.com/208.67.220.220#443 server=/.blogspot.com/208.67.220.220#443 server=/.blogger.com/208.67.220.220#443 server=/.facebook.com/208.67.220.220#443 server=/.thefacebook.com/208.67.220.220#443 server=/.facebook.net/208.67.220.220#443 server=/.fbcdn.net/208.67.220.220#443 server=/.akamaihd.net/208.67.220.220#443 server=/.twitter.com/208.67.220.220#443 server=/.t.co/208.67.220.220#443 server=/.bitly.com/208.67.220.220#443 server=/.twimg.com/208.67.220.220#443 server=/.tinypic.com/208.67.220.220#443 server=/.yfrog.com/208.67.220.220#443 server=/.whatismyip.com/208.67.220.220#443
208.67.220.220#443是OpenDNS和端口
在设置,基本设置,网络地址服务器设置 (DHCP),把为DHCP使用DNSMasq,为DNS使用DNSMasq,以DHCP为准 三个勾都勾上
在管理,命令,指令中输入
/jffs/shadowsocks/ss-redir -c /jffs/shadowsocks/ss-redir.json -f /var/run/ss-redir.pid
按下面的保存为启动指令
在管理,命令,指令中输入
#!/bin/sh #create a new chain named SHADOWSOCKS iptables -t nat -N SHADOWSOCKS # Ignore your shadowsocks server's addresses # It's very IMPORTANT, just be careful. iptables -t nat -A SHADOWSOCKS -d 106.185.28.239 -j RETURN # Ignore LANs IP address iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN # Ignore Asia IP address # Anything else should be redirected to shadowsocks's local port iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 1236 # Apply the rules iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS
按下面的保存为防火墙指令
保存、重启路由,就好了
ss-local命令是启动代理,ss-redir命令是启动代理供iptables转发使用
上面的防火墙指令意思是:除了Shadowsocks服务器地址和本地地址之外,其他所有的地址都走代理。本来别人的例子里面还忽略了亚洲的IP,但是我使用时发现有些网站有问题,于是索性所有的网站都走代理了。还好我的代理很快,基本没什么问题。你也可以看看更多人的例子。