├── README.md └── 打造shadowsocks服务端.md /README.md: -------------------------------------------------------------------------------- 1 | # 打造一台翻墙路由器 2 | 3 | ### 凡是连上wifi的手机电脑,所有终端无需任何设置,都能自动翻墙。 4 | 5 | 路由器配置方案:ShadowSocks-libev + ChinaDNS 6 | 7 | 首先路由器型号需要在openwrt列表中:http://wiki.openwrt.org/toh/start/ 8 | (可以ctrl+F搜索匹配型号),并记录所用路由器cpu的型号。 9 | 10 | ### 一.下载路由器CPU型号对应的的固件:https://downloads.openwrt.org/ 11 | 12 | ### 二.刷机,以下以D-link dir-505为例,其他型号路由类似 13 | * 访问路由器上传固件,等待一会儿,勿断电。 14 | * 好了之后打开wifi开关,连上openwrt(有的固件默认不没有开启WI-FI需要用网线连接),访问192.168.1.1 15 | * 设置路由密码,选中Allow remote hosts to connect to local SSH forwarded ports 16 | * 设置Country Code为CN-China,设置Transmit Power为20dBm(100mW) 17 | * 设置下wifi密码(WI-FI没有启动先启动)。 18 | * 修改LAN口,勾掉Bridge interfaces选项,更改网关为192.168.5.1,添加WAN口选择DHCP client选项(如果需要拨号选择PPPoE),勾上Adapter “eth1”。 19 | 20 | **注意**: 为了和主路由不冲突最好将网关改为其他,比如192.168.5.1 21 | 刷机成功。 22 | 23 | ### 三.下载安装包并安装到路由器 24 | * 下载安装包 25 | * Shadowsocks-spec - [http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/](http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/) 26 | * chinaDNS - [http://sourceforge.net/projects/openwrt-dist/files/chinadns/](http://sourceforge.net/projects/openwrt-dist/files/chinadns/) 27 | * Shadowsocks-spec-LuCI - [http://sourceforge.net/projects/openwrt-dist/files/luci-app/shadowsocks-spec/](http://sourceforge.net/projects/openwrt-dist/files/luci-app/shadowsocks-spec/) 28 | * chinaDNS-LuCI - [http://sourceforge.net/projects/openwrt-dist/files/luci-app/chinadns/](http://sourceforge.net/projects/openwrt-dist/files/luci-app/chinadns/) 29 | 30 | **注意**: 一定要下载路由器cpu型号对应的文件!dir-505选择ar71xx 31 | * 安装到路由器 32 | * 保证路由器可以上外网 33 | * 用ssh工具上传shadowsocks-libev-spec、ChinaDNS、及2个luci文件 4个ipk包到路由器/tmp目录 34 | ``` 35 | ssh root@192.168.5.1 36 | ``` 37 | ``` 38 | opkg update 39 | ``` 40 | * 安装shadowsocks相关包及语言包(网页界面系统设置中切换中文) 41 | ``` 42 | opkg install luci-i18n-chinese 43 | ``` 44 | ``` 45 | cd /tmp 46 | ``` 47 | ``` 48 | opkg install shadowsocks-libev-spec-polarssl_2.2.2-1_ar71xx.ipk 49 | ``` 50 | ``` 51 | opkg install ChinaDNS_1.3.1-1_ar71xx.ipk 52 | ``` 53 | ``` 54 | opkg install luci-app-shadowsocks-spec_1.3.2-1_all.ipk 55 | ``` 56 | ``` 57 | opkg install luci-app-chinadns_1.3.1-1_all.ipk 58 | ``` 59 | 60 | **注意**: 期间可能会遇到错误提示,没关系,这时因为安装ipset包后需要重启。 61 | 62 | * 编辑配置文件,输入shadowsocks服务器信息 63 | ``` 64 | vi /etc/shadowsocks/config.json 65 | ``` 66 | ``` 67 | { 68 | "server":"你的服务器Ip", 69 | "server_port":端口, 70 | "local_port":1080, 71 | "password":"密码", 72 | "timeout":300, 73 | "method":"aes-256-cfb" 74 | } 75 | ``` 76 | 77 | * 更改配置,进入路由器管理界面(http://192.168.5.1) 78 | * 网络-> DHCP/DNS,基本设置里将本地服务器更改为:127.0.0.1#5353,HOSTS和解析文件里勾选“忽略解析文件”和“忽略HOSTS文件” 79 | * 服务-> ChinaDNS里ChinaDNS上游服务器更改为:114.114.114.114,127.0.0.1:5300 (适合服务器支持UDP转发,较新版本Shadowsocks均支持) 80 | 81 | * 重启路由器,并手动更新配置 82 | * 更新IP忽略列表: /etc/shadowsocks/ignore.list 可以使用下面命令更新 83 | ``` 84 | 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 85 | ``` 86 | * 更新/etc/chinadns_chnroute.txt 可以使用下面命令更新 87 | ``` 88 | 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 89 | ``` 90 | 翻墙成功! 91 | 92 | ### 四.设置自动更新忽略配置文件。 93 | 敌人的策略一直在变化,为了实现智能分流需要设置自动更新忽略配置文件,长时间不更新可能导致部分国内网站走代理或者国外不走代理,如下: 94 | 95 | * 新建自动更新配置文件,内容如下: 96 | ``` 97 | vi /root/update.sh 98 | ``` 99 | ``` 100 | #!/bin/sh 101 | 102 | ping -c2 www.baidu.com >>/dev/null 103 | if [ $? -eq 0 ];then 104 | 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 105 | 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 106 | else 107 | echo 'network is down...' 108 | fi 109 | ``` 110 | * 然后用命令给予该脚本执行权限并执行,正常的话配置文件会成功更新 111 | ``` 112 | chmod +x /root/update.sh 113 | ``` 114 | ``` 115 | /root/update.sh 116 | ``` 117 | 118 | * 在路由器管理界面点击“系统”→“计划任务”中,输入以下内容: 119 | ``` 120 | 30 4 * * * /root/update.sh 121 | ``` 122 | 保存后,每天的凌晨4点半就会自动执行更新脚本了。 123 | 124 | **如果觉得以上方式自己搞不定或有任何问题欢迎进q群讨论:194309856,也提供现成的路由器插上电源直接翻墙** 125 | -------------------------------------------------------------------------------- /打造shadowsocks服务端.md: -------------------------------------------------------------------------------- 1 | # 打造shadowsocks服务端 2 | 3 | 以CentOs安装shadowsocks为例 4 | 5 | * 安装shadowsocks服务 6 | ``` 7 | yum install m2crypto python-setuptools && easy_install pip 8 | ``` 9 | ``` 10 | pip install shadowsocks 11 | ``` 12 | * 修改配置文件,端口和密码需要更改为你自己的 13 | ``` 14 | vi /etc/shadowsocks.json 15 | ``` 16 | ``` 17 | { 18 | "server":"0.0.0.0", 19 | "server_port":端口, 20 | "local_address": "127.0.0.1", 21 | "local_port":1080, 22 | "password":"密码", 23 | "timeout":300, 24 | "method":"aes-256-cfb", 25 | "fast_open": false 26 | } 27 | ``` 28 | 29 | * 安装Supervisor进程管理工具,保证shadowsocks不会因为各种原因死掉 30 | ``` 31 | easy_install supervisor 32 | ``` 33 | * 创建配置文件 34 | ``` 35 | echo_supervisord_conf > /etc/supervisord.conf 36 | ``` 37 | * 配置shadowsocks,编辑/etc/supervisord.conf,在最后加入 38 | ``` 39 | [program:shadowsocks] 40 | command=ssserver -c /etc/shadowsocks.json 41 | autostart=true 42 | autorestart=true 43 | user=nobody 44 | ``` 45 | * 默认路径配置启动: 46 | ``` 47 | supervisord 48 | ``` 49 | * 开机启动Supervisor 50 | ``` 51 | vi /etc/rc.local 52 | ``` 53 | * 添加以下内容 54 | ``` 55 | supervisord -c /etc/supervisord.conf 56 | ``` 57 | * 常用命令 58 | * 59 | 获得所有程序状态 supervisorctl status 60 | 61 | 关闭目标程序 supervisorctl stop ssserver 62 | 63 | 启动目标程序 supervisorctl start ssserver 64 | 65 | 关闭所有程序 supervisorctl shutdown 66 | 67 | * 启动关闭(使用Supervisor后,启动关闭交给Supervisor): 68 | ``` 69 | ssserver -c /etc/shadowsocks.json -d start 70 | ``` 71 | ``` 72 | ssserver -c /etc/shadowsocks.json -d stop 73 | ``` 74 | 75 | * 更新shadowsocks: 76 | ``` 77 | pip install --upgrade shadowsocks 78 | ``` 79 | --------------------------------------------------------------------------------