海神


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

http://hong.im/2014/03/16/configure-an-openwrt-based-router-to-use-shadowsocks-and-redirect-foreign-traffic/

  1. EA6500的DD_WRT下载地址:http://www.dd-wrt.com/site/support/other-downloads

  2. 刷成功的步骤:刷 1.1.28.144856版本的原厂固件,然后再这个版本上刷dd-wrt-23838-ea6500.trx这个版本的DD-WRT,然后再刷想要的版本。

  3. 打开192.168.1.1,设置用户名密码,因为ssh的用户名是root,所以建议这里也用root

  4. 管理页面切换为中文

  5. 服务页开启SSHD

  6. 管理页开启JFFS2

  7. 然后安装Shadowsocks。路由中安装的Shadowsocks版本叫Shadowsocks-libev。Shadowsocks-libev在编译时有很多选项,你还需要明白你的路由器构架。明白了这些参数才能找到适合你的版本。我的路由器CPU是BCM4706,属于MIPS构架。PolarSSL版,体积小,支持加密方式少,OpenSSL版,体积大,支持加密方式多。C依赖库注意: 文件名不带uclibc的都是glibc,DD-WRT/OPEN-WRT一般都是uclibc的。所以我需要的就是OpenSSL、uclibc、MIPS的版本。

  8. Shadowsocks-libev的下载地址为:http://www.right.com.cn/forum/thread-138582-1-1.html http://dl.lazyzhu.com/file/Toolchain/ss-libev/

  9. ssh登录到路由中,把Shadowsocks-libev的4个文件放到/jffs/shadowsocks/下面

  10. 在这个目录下创建一个shadowsocks.json文件,一个ss-redir.json文件

  11. 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)

  12. 运行:/jffs/shadowsocks/ss-local -c /jffs/shadowsocks/shadowsocks.json,然后用浏览器设置代理,试验能不能用,如果可以用,说明Shadowsocks-libev可以工作

  13. 下面就是设置透明代理,让连上路由的设备都不需要设置代理

  14. 在路由的管理页面开启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和端口

  15. 在设置,基本设置,网络地址服务器设置 (DHCP),把为DHCP使用DNSMasq,为DNS使用DNSMasq,以DHCP为准 三个勾都勾上

  16. 在管理,命令,指令中输入

     /jffs/shadowsocks/ss-redir -c /jffs/shadowsocks/ss-redir.json -f /var/run/ss-redir.pid
    

    按下面的保存为启动指令

  17. 在管理,命令,指令中输入

     #!/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
    

    按下面的保存为防火墙指令

  18. 保存、重启路由,就好了

  19. ss-local命令是启动代理,ss-redir命令是启动代理供iptables转发使用

  20. 上面的防火墙指令意思是:除了Shadowsocks服务器地址和本地地址之外,其他所有的地址都走代理。本来别人的例子里面还忽略了亚洲的IP,但是我使用时发现有些网站有问题,于是索性所有的网站都走代理了。还好我的代理很快,基本没什么问题。你也可以看看更多人的例子。


blog comments powered by Disqus