小米路由器mini刷PandoraBox实现透明翻墙(上)

说实话小米路由器自带的系统对普通家庭完全够用了,还有手机App可以随时操作,但依然解决不了fq的问题,本文简单介绍下我拿到手后刷PandoraBox系统并配置ss透明代理的过程。

关于获取SSH权限、刷机、基本配置,参考这篇文章

本文基于:r1024稳定版

(吐槽一下LuCI界面太丑了,即使是改成bootstrap样式)。

原理

本方案基于shadowsocks(shadowsocks-libev-spec)+ChinaDNS+dnsmasq-full,ss在路由器上作为透明代理和DNS查询转发(需要你的ss服务器端支持UDP转发),通过ignorelist区分国内国外IP,国外IP全部走代理。ChinaDNS搭配dnsmasq解决DNS污染问题。本方案的缺点是所有国外IP均需要走代理,浪费了不少流量。

过程

1.配置opkg

opkg类似于yum,是openwrt自带的包管理工具。

/etc/opkg.conf文件末尾加入:

1
2
3
4
5
6
7
src/gz openwrt_dist http://openwrt-dist.sourceforge.net/releases/ramips/packages
src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/releases/luci/packages
arch all 100
arch noarch 200
arch ralink 300
arch ramips_24kec 400
arch unkown 500

上面源地址如果被墙,可更换为代理地址:

1
2
src/gz openwrt_dist http://openwrt-dist.thankgfw.ml/releases/ramips/packages
src/gz openwrt_dist_luci http://openwrt-dist.thankgfw.ml/releases/luci/packages

更新一下:

1
opkg update

2.Shadowsocks

安装libc等shadowsocks-libev-spec的依赖

1
2
3
4
5
cd /tmp
wget http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/libc_0.9.33.2-1_ramips_24kec.ipk

opkg install libc_0.9.33.2-1_ramips_24kec.ipk
opkg install zlib

通过opkg安装:

1
2
opkg install shadowsocks-libev-spec
opkg install luci-app-shadowsocks-spec

然后进入后台,在 服务-ShadowSocks中-输入相应配置信息,启用UDP转发到8.8.8.8:53,本地端口写5300,忽略列表填写/etc/ignore.list,勾选启用,然后保存&应用

下载忽略列表:

1
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/ignore.list

如果通过Luci界面发现ss没有启动,可以ssh上去执行/etc/init.d/shadowsocks start看看报错信息。

3.ChinaDNS

卸载系统自带的ChinaDNS和luci-app-chinadns:opkg remove ChinaDNS --force-removal-of-dependent-packages

因为base仓库ChinaDNS较老,先注释掉:src/gz r2_base http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/base

然后执行opkg install ChinaDNS,这样安装的openwrt-dist仓库的新版。

如果想通过luci界面配置,再安装luci-app-chinadns

通过Luci界面修改配置,本地端口设为:5353, 为简便起见,”国内路由表”修改为和ss一致的位置:/etc/ignore.list;上游服务器修改为:114.114.114.114,127.0.0.1:5300,其中后面那个是本地的ss udp转发。

4. dnsmasq

我是删除了自带的dnsmasq,然后手动安装了dnsmasq-full_2.72-4_ramips_24kec.ipk这个版本。
编辑/etc/dnsmasq.conf为如下内容:

1
2
3
4
5
6
7
8
no-poll
no-resolv
all-servers
cache-size=5000
min-cache-ttl=18000
server=127.0.0.1#5353
#server=114.114.114.114
conf-dir=/etc/dnsmasq.d

重启dnsmasq:/etc/init.d/dnsmasq restart

参考