Coder Social home page Coder Social logo

blog's Introduction

打造一台翻墙路由器

凡是连上wifi的手机电脑,所有终端无需任何设置,都能自动翻墙。

路由器配置方案:ShadowSocks-libev + ChinaDNS

首先路由器型号需要在openwrt列表中:http://wiki.openwrt.org/toh/start/ (可以ctrl+F搜索匹配型号),并记录所用路由器cpu的型号。

一.下载路由器CPU型号对应的的固件:https://downloads.openwrt.org/

二.刷机,以下以D-link dir-505为例,其他型号路由类似

  • 访问路由器上传固件,等待一会儿,勿断电。
  • 好了之后打开wifi开关,连上openwrt(有的固件默认不没有开启WI-FI需要用网线连接),访问192.168.1.1
  • 设置路由密码,选中Allow remote hosts to connect to local SSH forwarded ports
  • 设置Country Code为CN-China,设置Transmit Power为20dBm(100mW)
  • 设置下wifi密码(WI-FI没有启动先启动)。
  • 修改LAN口,勾掉Bridge interfaces选项,更改网关为192.168.5.1,添加WAN口选择DHCP client选项(如果需要拨号选择PPPoE),勾上Adapter “eth1”。

注意: 为了和主路由不冲突最好将网关改为其他,比如192.168.5.1 刷机成功。

三.下载安装包并安装到路由器

  • 下载安装包

    注意: 一定要下载路由器cpu型号对应的文件!dir-505选择ar71xx

  • 安装到路由器

    • 保证路由器可以上外网
    • 用ssh工具上传shadowsocks-libev-spec、ChinaDNS、及2个luci文件 4个ipk包到路由器/tmp目录
    opkg update
    
  • 安装shadowsocks相关包及语言包(网页界面系统设置中切换中文)

    opkg install luci-i18n-chinese
    
    cd /tmp
    
    opkg install shadowsocks-libev-spec-polarssl_2.2.2-1_ar71xx.ipk
    
    opkg install ChinaDNS_1.3.1-1_ar71xx.ipk
    
    opkg install luci-app-shadowsocks-spec_1.3.2-1_all.ipk
    
    opkg install luci-app-chinadns_1.3.1-1_all.ipk
    

    注意: 期间可能会遇到错误提示,没关系,这时因为安装ipset包后需要重启。

  • 编辑配置文件,输入shadowsocks服务器信息

    vi /etc/shadowsocks/config.json
    
    {
        "server":"你的服务器Ip",
        "server_port":端口,
        "local_port":1080,
        "password":"密码",
        "timeout":300,
        "method":"aes-256-cfb"
    }
    
  • 更改配置,进入路由器管理界面(http://192.168.5.1)

    • 网络-> DHCP/DNS,基本设置里将本地服务器更改为:127.0.0.1#5353,HOSTS和解析文件里勾选“忽略解析文件”和“忽略HOSTS文件”
    • 服务-> ChinaDNS里ChinaDNS上游服务器更改为:114.114.114.114,127.0.0.1:5300 (适合服务器支持UDP转发,较新版本Shadowsocks均支持)
  • 重启路由器,并手动更新配置

    • 更新IP忽略列表: /etc/shadowsocks/ignore.list 可以使用下面命令更新
      wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/shadowsocks/ignore.list
    
    • 更新/etc/chinadns_chnroute.txt 可以使用下面命令更新
      wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/chinadns_chnroute.txt
    

翻墙成功!

四.设置自动更新忽略配置文件。

敌人的策略一直在变化,为了实现智能分流需要设置自动更新忽略配置文件,长时间不更新可能导致部分国内网站走代理或者国外不走代理,如下:

  • 新建自动更新配置文件,内容如下:

    vi /root/update.sh
    
    #!/bin/sh
    
    ping -c2 www.baidu.com >>/dev/null
    if [ $? -eq 0 ];then
    	wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/shadowsocks/ignore.list
    	wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/chinadns_chnroute.txt
    else
            echo 'network is down...'
    fi
    
  • 然后用命令给予该脚本执行权限并执行,正常的话配置文件会成功更新

    chmod +x /root/update.sh
    
    /root/update.sh
    
  • 在路由器管理界面点击“系统”→“计划任务”中,输入以下内容:

    30 4 * * * /root/update.sh
    

保存后,每天的凌晨4点半就会自动执行更新脚本了。

如果觉得以上方式自己搞不定或有任何问题欢迎进q群讨论:194309856,也提供现成的路由器插上电源直接翻墙

blog's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.