pandorabox 第三方路由器固件结合ChinaDNS与dnsmasq 实现透明代理

为什么要翻出去?

  1. 让自己不是那么被愚弄, 本来生活就那么压抑, 为何不尝试改变一下呢?
  2. 学习更多更有价值的知识, 为自己充电。
  3. 其实说到底是哪里有压迫,哪里就有反抗,但你永远也叫不醒一个装睡的人。

需要些什么硬件和软件?

  1. 一个可以刷第三方固件的路由器,我这里用了斐讯的k2, 并刷了pandorabox固件,这里我就不过多的说如何去刷固件了,网上教程很多,我会放下我所用的软件的链接。
  2. 一些需要用到的固件(小型嵌入式设备上能用到的,算是操作系统吧),还有是适合你路由器芯片型号的特定软件。
  • PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1055-20150615_5.5M
  • shadowsocks-libev-spec_2.4.8-2_ramips_24kec.ipk
  • luci-app-shadowsocks-spec_1.5.0-1_all.ipk
  • ChinaDNS 下载
  • luci-app-chinadns 下载
  • dnsmasq 默认这个固件里有,就不需要了就是网络→DHCP/DNS这个菜单里的配置。
  • 一个SSH客户端,比如WinSCP, 用于传软件到路由器里面。
  • 命令行终端工具: 如putty, xshell之类。
  • 其他未提供下载地址的软件链接 密码: dx1n
  • 再说明一下,你下载软件一定要先弄清楚你的路由器的芯片型号,然后下载适合你硬件的软件,这样才不会不能用。

下面开始安装和配置教程:

  1. 用winscp软件连上路由器,方便传下好的软件进去。

img1

  1. 把软件以ipk结尾的都上传到/tmp/这个目录。

img2

  1. 开始安装软件咯,用putty登录到路由器,这里我用的是xshell,根据自己的喜好来,不强求。

img3

  1. 以下是命令行操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1. 进入tmp目录:
cd /tmp
2. 此文件夹如果没有你之前上传的其他ipk文件的话,直接运行这个命令安装:
opkg install *.ipk
3. 这里说一下如果有什么报错,要用搜索引擎找一下答案,有可能会有依赖没装之类的,先配置下软件源,这个操作是在浏览器里进行的, 菜单是: 系统→软件包→配置,把里面的默认内容删掉,替换为以下的配置后并提交。
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
src/gz barrier_breaker_base http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/base
src/gz barrier_breaker_luci http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/luci
src/gz barrier_breaker_management http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/management
src/gz barrier_breaker_oldpackages http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages
src/gz barrier_breaker_packages http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/packages
src/gz barrier_breaker_routing http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/routing
src/gz barrier_breaker_telephony http://mirrors.ustc.edu.cn/openwrt/barrier_breaker/14.07/ramips/mt7620a/packages/telephony
src/gz openwrt_dist http://openwrt-dist.kxrr.us/dist/base/ramips
src/gz openwrt_dist_luci http://openwrt-dist.kxrr.us/dist/luci
arch all 100
arch noarch 200
arch ralink 300
arch ramips_24kec 400
  1. 安装好之后,请看一下是不是在服务菜单里有对应软件的luci界面。

img4

  1. 下面开始正式配置,把你有的工具都用上。先配置shadowsocks:

img5

图中划红线的都要填,根据你从服务端得来的账号和密码。

img6

访问控制一节,被忽略ip列表,选ChinaDNS路由表。

如何得到这个路由表呢?其实你安装ChinaDNS后,在/etc目录下就有这个txt文件了,但是这个文件需要更新,因为里面的ip是会更新的。先在命令行终端里运行如下命令,在添加计划任务,让其自动帮你更新。

1
2
3
4
5
6
7
1. 先手动更新一下:
wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/chinadns_chnroute.txt
2. 在系统/计划任务里添加任务,让其自动更新:
0 4 * * * wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/chinadns_chnroute.txt
  1. 接下来配置ChinaDNS,让其根据chnroute文件来交给对应的dns服务器去解析,国内的域名交给114.114.114.114 或者是运营商dns服务器, 国外的就交给上游的dns,比如Google的dns: 8.8.8.8:53 或者是8.8.4.4:53, 具体怎么选择要根据你当地的网络情况,有时google的dns也ping不通的。

img7

  1. 最后就是路由器里的dnsmasq了,算是客户端吧,不过你要说是服务端也对,概念有时是相对的,我也不知道我理解的对不对,大佬轻喷。
    关于dnsmasq的介绍可以搜索看一下,就是关于dns和dhcp的。

img8

菜单: 网络→DHCP/DNS

img9

HOSTS和解析文件这个选项卡:勾选忽略解析文件和忽略HOSTS文件,这个的优先级是高,但域名解析不还是从你本机开始解析吗? 关于是不是要修改dnsmasq的配置文件,我也不太清楚,我是做了,但好像我注释掉,也能透明代理,具体就是修改/etc/dnsmasq.conf这个文件,加入这些东西,可以看到我里面是注释掉的:

1
2
3
4
5
6
7
8
9
10
11
# 设置 DNS 转发,路由器接到 DNS 解析请求后,会转发给这个 DNS,也就是 chinadns
#server=127.0.0.1#5353
# 不使用 ISP 的 DNS,如果不设置这个,路由器会自己找 ISP 要一个 DNS 来解析域名
#no-resolv
# 这里指定配置文件路径,就是上面的 dnsmasq-china-list 列表,这个列表的优先级略高,如果这里有指定 DNS,将不会走 127.0.0.1#7453 (这个是dnsmasq的服务端口,可以自定义,别和其他服务的端口冲突就好了。
#conf-dir=/etc/dnsmasq.d

你可以从这个链接下载zip文件,然后把里面的conf文件传到路由器的/etc/dnsmasq.d/这个目录里就可以了。

  1. 最后就来说一下如何停止和启动服务以及让服务开机启动吧。
1
2
3
4
5
/etc/init.d/shadowsocks enable
/etc/init.d/shadowsocks start
/etc/init.d/chinadns enable
/etc/init.d/chinadns start
/etc/init.d/dnsmasq reload
其实网页里点保存和应用一样的效果,只是有些时候启动不起来,反正我是不知道网页里的操作行不行。
  1. 就扯这些吧, 真心写不下去了,太累了,现在明白能把博客写好也是一种优秀的品质了,习惯养成了,其他都是水到渠成。
生活不止眼前的苟且,还有那片海