DNS污染问题很是让人烦心,小米路由器mini的pandorabox自带了shadowsocks-libev,没有UDP转发功能,在期待下次pandorabox的更新能够自带shadowsocks-libev-spec的时候,我们还可以选择手动安装,下面老高就介绍一下如何安装。
你也许能通过以下关键字找到本文:
如何安装shadowsocks-libev-spec
如何配置shadowsocks-libev-spec
openwrt\pandorabox如何转发UDP
如果解决DNS污染
I. 项目官网
http://openwrt-dist.sourceforge.net
II. 安装前的准备
安装前我们需要删除原来的shadowsocks-libev。原来的ss可以通过 ps |grep ss-
和 ll /usr/bin/|grep ss-
找到!
停止进程
killall ss-localkillall ss-redir killall ss-tunnel
备份配置文件
mv /etc/config/shadowsocks /etc/config/shadowsocks_old
备份执行文件
# 重命名cd /usr/bin mv ss-local ss-local.old mv ss-redir ss-redir.old mv ss-tunnel ss-tunnel.old
III. 开始安装
更新opkg源
请参考 配置opkg篇 配置好OpenWrt-dist的源
开始安装
配置好opkg的源后我们先更新一下 opkg update
更新成功应该是如下图:
下面我们开始安装shadowsocks-libev-spec,先执行下面的命令安装。
opkg install shadowsocks-libev-spec opkg install luci-app-shadowsocks-spec
由于最近一次shadowsocks-libev-spec的更新会导致直接用opkg安装报错!
所以出现此类错误,请下载老版本的shadowsocks-libev-spec,老高目前使用r512稳定版,下载shadowsocks-libev-spec_2.1.4-1_ramips_24kec.ipk
,可以正常安装!
安装完毕后无需重启路由器,luci后台的已经可以看到新的ss配置信息了。
IV. 如何使用
shadowsocks-libev-spec的配置文件位于/etc/shadowsocks/config.json
配置示例如下:
{ "server": "xx.x.x.x", "server_port": 23456, "local": "0.0.0.0", "local_port": 1080, "password": "xxxosihd", "timeout": 60, "method": "rc4-md5" }
luci如图配置即可!
配置chinadns
由于我们默认绑定了5300端口,现在需要指定解析服务器为127.0.0.1:5300,如图配置:
配置DNS转发
ps.不要忘了转发DNS解析到127.0.0.1#1053
这样设置后,DNS的查询变为
设备查询dns->路由器:53->chinaDNS->114.114.114.114:53
设备查询dns->路由器:53->chinaDNS->ss:5300->8.8.8.8:53
现在所有子网的设备都可以零配置翻墙了!速度还很快!
V. 关于内核不兼容
请移步 https://github.com/shadowsocks/openwrt-shadowsocks/
作者提供了最新版的编译ipk下载,请使用ipk文件安装。
补充
VI. 安装redsocks2
大家还记得路由器自动翻墙篇中,讲了如何安装redsocks2,现在安装的更简单了。
# 安装redsocks2 opkg install redsocks2 # 安装redsocks2后台luci菜单 cd /tmp # wget 如果404,请移步 http://sourceforge.net/projects/openwrt-dist/files/luci-app/redsocks2/ 自己下载ipk,然后安装 wget http://iweb.dl.sourceforge.net/project/openwrt-dist/luci-app/redsocks2/luci-app-redsocks2_1.3.0-1_all.ipk opkg install luci-app-redsocks2_1.3.0-1_all.ipk
VII. nginx反代配置
还是记录一下吧,省的以后出错时又得手写。
server { listen 80; server_name openwrt-dist.kxswq.ml; #charset koi8-r; location / { sub_filter openwrt-dist.sourceforge.net openwrt-dist.kxswq.ml; proxy_pass http://openwrt-dist.sourceforge.net; #proxy_redirect off; #proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer http://$host; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }