趁着节假日,终于搞定了路由器的自动翻墙,终于有自己的翻墙路由器了,之后一发而不可收,记录了一些折腾的文章,索引在此

openwrt路由器折腾教程索引

附赠 翻越功夫网教程索引

自从发现Pandorabox在r355版在固件中整合了ss,redsocks2和ChinaDNS-C,省下了不少事儿。

有同学反应r355-20150114被移除,刚好老高有存货,文中有百度网盘下载

本教程同样适用于其他openwrt系统

推荐查看更好的方案一节!

你可能根据一下关键词找到此文章:

  • pandorabox openwrt 安装redsocks2
  • 翻墙路由器
  • 路由器翻墙教程
  • pandorabox openwrt 路由器翻墙
  • 小米路由器翻墙 教程
  • 打造自动翻墙的路由器
  • 设置路由器翻墙

重要更新

感谢@Question提醒

刷完系统后配置好chinadns后,将wan6接口的协议切换成6to4协议,保存后可直连 ipv6.google.com,貌似DNS污染也一并解决了,但是不知为何直连速度不快,不如走SS。

准备工作

shadowsocks

shadowsocks是目前扶墙利器,原理是通过一台自由的服务器做sock5代理,将你的请求都转发到服务器,服务器会把你需要的内容加密返回给你,安全又稳定。

如果你需要自己搭建一个,有下面的教程供你参考,VPS通用。

不到30元使用一年,超性价比扶墙VPS

使用shadowsocks轻松搭建FQ环境

这里可以试用 免费shadowsocks

智能路由器

随着小米路由器的发布,想要入手一个入门的智能路由器(能刷openwrt、dd-wrt等基于Linux可定制系统),就很方便快捷了。而且刷机简单,机器性价比也不错。此文不仅适用于小米路由器,还有很多路由器都可以参考此文,如百度的newifi、极路由等。

如果现在要购买小米路由器,网友@Yacyin有以下建议:

还有就是江浙沪的朋友,最好买易迅的版本,京东的版本是4月份的,做工明显糙很多,符合小米一贯质次价高的特点,要不是现在不好更新,我肯定买极路由2S了


刷机

小米路由器如何刷机请参考小米路由器刷潘多拉固件教程潘多拉固件下载地址,等开启了路由器SSH权限后我们就可以开始刷机了!

有些固件版本你可能找不到了,老高这儿还有存货。链接: 链接: http://pan.baidu.com/s/1mgnBcIc 密码: yvi7

刷机注意

注意千万不能用官方的刷机方法,把PandoraBox重命名为xxx.bin,然后插U盘刷机,刷完你会哭的。 正确的步骤是官方固件开启ssh后使用命令刷机

最后就是刷机了,刷机的命令在下面,其中/tmp/PandoraBox-ralink-xiaomi-mini-r327-20141226.bin是刷机包的文件名。

mtd -r write /tmp/PandoraBox-ralink-xiaomi-mini-r327-20141226.bin firmware

# garu同学反应以上命令无法刷机,如果出现类似情况,请使用以下命令刷
mtd -r write /tmp/PandoraBox-ralink-xiaomi-mini-r327-20141226.bin OS1

科学上个网配置

刷完机器的路由器就有以下技能,不过技能可能随着你刷的版本而变,目前(20150526)还是建议刷稳定版(stable),版本号r512。

skill

其中shadowsocks负责代理,是搬运工; ChinaDNS负责解析域名,防止DNS污染,功夫网最近升级,目测ChinaDNS工作起来不太稳定; 最后的redsocks2负责判断线路是否正常,否则走代理访问,即自动翻墙,redsocks2是目前比较只能的扶墙工具,但是缺点也很明显,你会感到明显的网络延迟,不推荐玩游戏等对延迟有高要求的用户使用。

废话真多,赶紧进入正题吧!


opkg源

opkg类似centos的yum,Ubuntu的apt-get,我们用它安装编译好的软件,省时省力。想要自己编译对应平台的软件,请参考编译小米路由mini的openwrt固件

配置opkg这一步需要十分重要,后续的很多操作都依赖此项,针对小米或同种类的CPUMTK MT7620A,我们可以在pandorabox的后台位于 系统->软件包->配置。

配置方法可以参考小米路由器mini折腾之配置opkg篇

配置好opkg后可以点击刷新列表来更新软件列表,也可以在后台运行命令 opkg update

注意,更新完毕后一定解决的问题-------安装libc。否则会遇到类似下面的错误!

satisfy_dependencies_for: Cannot satisfy the following dependencies for redsocks2:libc * libc *

配置shadowsocks客户端

shadowsocks的服务端配置也很简单,请参考使用shadowsocks轻松搭建FQ环境

下面我们主要将客户端的配置

当我们在远程服务器配置完毕后 或者 购买他人提供的shadowsocks服务后,我们能够得到以下配置:

  1. ip->服务器IP地址
  2. prot->服务器开放的端口号
  3. 密码->服务器验证密码
  4. method->加密方式

有了以上信息,我们可以开始基本配置,如下图:

基本配置

下面我们开启本地sock5代理,以供测试配置是否生效,设置如下图:

本地代理设置

这两步配置相当于运行了以下命令(ss-local是客户端的命令行工具)

/usr/bin/ss-local -s 11.11.11.11 -p 12345 -l 1080 -m des-cfb -k passwd -u -f /var/run/ss-local.pid

最重要的一步在此,请注意

透明代理如何配置?

透明代理即默认将所有数据请求都转发给ss完成,然而这样做会浪费流量,所以我们开启IP白名单(white list),IP白名单中全是中国的IP,在白名单中的IP不会转发至代理服务器,保证了访问速度,节省了流量,并基本实现了自动翻墙。

此方法的缺点是不够只能,IP白名单需要经常升级。

此配置的难点是如何获取国内IP段,我们使用如下简单的技巧可以获取最新的国内IP段。

ps.IP白名单利用了dnsmasq中的ipset

# 从ftp中获取中国IP段
curl '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

以上的命令会把数据保存在/etc/chinadns_chnroute.txt中,而ChinaDNS-C的菜单中会读取这一文本,所以我们只要移步至ChinaDNS-C菜单并拷贝ChinaDNS-C里的信息至shadowsocks透明代理的IP白名单中即可!如果没有luci界面的同学可以使用scp命令将/etc/chinadns_chnroute.txt导出再复制粘贴。

最终的配置如下图:

透明代理

ChinaDNS

ChinaDNS需要指定国内IP和污染IP段,需要使用脚本定期更新维护,否则可能会出现解析异常。

通过后台执行ps|grep chinadns,找到chinadns使用的资源文件。

chinadns -l /etc/chinadns_iplist.txt -c /etc/chinadns_chnroute.txt -d -p 1053 -s 114.114.114.114,8.8.8.8

下面是更新命令,可以作为计划任务运行,计划任务位于 系统 ---> 计划任务

# 安装curl

opkg install curl

# 手动更新
curl '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

# 自动更新
# 每天凌晨4点更新文件,注意文件路径
0 4 * * * curl '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

计划任务更新ChinaDNS的IP段

更高级的配置可以参考OpenWrt-dist的Wiki里面的DNS篇。

老高的设置

chinadns配置

检查命令,192.168.1.1为路由器IP,1053为ChinaDNS的端口。

dig @192.168.1.1 www.phpgao.com -p1053

redsock2

更多redsocks2的配置可以参考小米路由器mini折腾之redsocks2的配置篇

前面的配置基本能够满足自动翻墙的需要了,但是使用ss白名单的不好之处就是国内IP需要定时更新,否则可能造成由于IP判断错误而打不开网页的情况,那么如果我很懒,不想经常去更新IP表,有什么更好的解决方案吗?

答案是有的。

redsocks2实现了自动翻墙,原理是先由iptables转发所有tcp请求至预先设定的端口,然后程序会尝试访问目标,如果在指定的时间内服务器有反应,那么就继续完成请求,否则让此次请求走代理线路,所以需要ss的配合。

由于有些版本的固件移除了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

redsocks2运行后会修改系统的防火墙。

iptables配置

图片说明:所有非内网的tcp流量都转发至1081端口,当然,这些工作都是后台自动完成的。

redsock2的具体配置说明如下图,当然你还可以参考小米路由器mini折腾之redsocks2的配置篇

redsock2的配置

效果图如下,不需要在手机上做任何设置

redsocks2

更好的方案

shadowsocks-libev-spec是shadowsocks-libev针对openwrt的优化版本,其中UDP转发可以彻底解决DNS污染问题,自动翻墙的配置更加简单,只需要配置好shadowsocks-libev-spec就可以实现!

请参考下面的链接⬇️

小米路由器mini折腾之安装shadowsocks-libev-spec

远程访问

小米论坛有一篇讲开启8080端口的教程,玩转路由:开启Lamp,用小米路由器抢建你的私人博客

其中最重要的就是这个:

vi /etc/config/firewall

# ADD
config rule 'httpdwan'
option src 'wan'
option dest_port '8088'
option proto 'tcp'
option target 'ACCEPT'
option name ''\''httpd wan accept tcp port 8088'\'''

这样就开启了8080,配合DDNS就可以完美远程管理路由器了

具体想到的就这么多了,有什么疑问请留言。

FAQ

安装某个软件时总是提示类似libc libgcc找不到?

请参考小米路由器mini折腾之配置opkg篇 文末。

我的界面怎么和你的不一样?

系统 - 语言和界面 - 主题 改成 Bookstrap,默认的是Luci

新版固件内核不兼容?还是换回稳定版吧。

r858
Linux PandoraBox 3.14.42 #1 Sun May 17 20:39:27 CST 2015 mips GNU/Linux

r820
Linux PandoraBox 3.14.40 #1 Wed May 13 20:38:46 CST 2015 mips GNU/Linux

r512
Linux PandoraBox 3.10.70 #15 Mon Mar 9 19:33:59 CST 2015 mips GNU/Linux

2015年01月17日更:

潘多拉小米mini版已升级到stable,推荐更新。下载地址:

http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/stable/

2015年02月12日更:

resocks2的安装和使用

2015年03月04日更:

补充被删除的固件PandoraBox-ralink-xiaomi-mini-r355-20150114

PandoraBox-ralink-xiaomi-mini-r355-20150114.bin

2015年04月13日更:

更好的方案一节。

2015年05月26日更:

重铸此文。

标签: shadowsocks, router, redsocks, chinadns, xiaomi, pandorabox, openwrt

已有 416 条评论

  1. 文章里貌似有几个错别字哦... “然是这样坐会浪费流量”

    1. 多谢指正,已更新。

  2. lyic lyic

    博主你好,你能提供下小米路由器的SSH文件吗?我好像无法通过官方渠道SSH。

    1. lyic lyic

      不确定... 但是我知道小米路由器(带硬盘那个)是可以的。

    2. 你确定通用吗?

    3. 刷好官方固件,走售后。或者JD上下一单然后狸猫换太子,你懂得

    4. lyic lyic

      可惜你的文件我刷上去亮红灯。我明明绑定了,官方页面一直显示我没有绑定,烦死了。

    5. http://1drv.ms/1Ll6h2o 里面有开发板0.8.11的rom和对应的ssh,建议先手动降级再ssh。

    6. lyic lyic

      谢谢.

    7. 其实我试了一下,也可以不降级直接ssh,没问题。

    8. lyic lyic

      我没法绑定路由器

    9. lyic lyic

      跪求SSH文件...

    10. 现在官方不提供ssh解锁吗?

  3. 博主你好,我又来请教个问题,昨天发现路由器开了ss后安卓的泰捷视频就无法播放任何视频了,关了正常,请问博主能帮忙分析下是什么原因吗?

    1. 谢谢,下班回去研究下

    2. 自己动手吧,看看tcpdump http://www.phpgao.com/xiaomi_router_dns_dump.html

    3. 自动代理,加了国内ip列表的。我将自带的4700多行的ip列表通过wget命令更新成了8800行的列表。是不是这个列表不对?

    4. 这种情况需要抓包分析,看看请求的IP到底是什么。

    5. 你开的全局还是自动代理?

    6. 不懂啊!博主你有空帮忙测试分析下吗?

  4. 请教个问题,部署好了shadowsocks+chinadns+Redsocks2 可以正常打开google,但无法打开youtube,facebook,twitter,不知道那个地方配置出了问题,方便帮我看一下吗?

    1. 你也是这种情况吗?我现在配置好了,一些国内网站打不开,好蛋疼

    2. 最新testing,现在已经处理好了,是DNS问题,不过现在我只能在chinadns中设置上游DNS为8.8.8.8和114.114.114.114,否则的话使用:127.0.0.1:1153提示chinadns未运行,不知道该怎么解决

    3. 我的解决方法是刷稳定版

    4. 我以前尝试重新安装新版ChinaDNS,结果也是未解决,等下次更新吧!

    5. 刷的稳定版吗?

    6. xiakes xiakes

      shadowsocks 设定那边 把udp转发给去掉,试试看,可能是由于server端不支持udp转发,chinadns那边的dns就不用设127.0.0.1#xxxx了

    7. Question Question

      服务 - ChinaDNS 设置: 上游服务器 114.114.114.114,8.8.8.8 端口 1053 未启用DNS压缩指针 中国路由表 (按老高的方法来,略) 网络 - DHCP/DNS 设置: 本地服务器 127.0.0.1#1053 其余均默认,就是我现在的配置(最新测试版r907),使用全部正常,除了最近中文维基百科被干掉之外,未发现有其他的不正常情况,也没有发现DNS污染

    8. Question Question

      虽然看起来和sourceforge上的方案相比有些不伦不类的,但是,我试验出来的这个就是能用。。Orz。。。

    9. 我现在也在刷稳定版,希望能解决

    10. 也需要配置redsocks2?

    11. 是R512版本吗?

    12. 是的

    13. 需要自己安装

  5. 想要稳定的玩ps4的港服游戏,大哥,按照你的方法,租这个搬瓦工,然后刷小米的路由,可以实现吗?

    1. 不能,你这种情况应该组香港的VPS,搬瓦工的服务器在美国。

  6. garipan garipan

    opkg配置那里是不是不兼容最新的固件啊 修改以后页头显示 This page contains the following errors: error on line 225 at column 23: colon are forbidden from PI names ':194' error on line 237 at column 1: ParsePI: PI :194 never end ... Below is a rendering of the page up to the first error.

    1. 不是配置问题,请自行Google解决

    2. garipan garipan

      同时下方软件包也显示不出来了 如图: http://ww3.sinaimg.cn/large/684f5dc9jw1esisfn27pvj21kw0sg10a.jpg

  7. Yacyin Yacyin

    好像有点问题,Root以后只能刷潘多拉的固件,刷好潘多拉的固件以后才能用备份的固件 Root后小米刷备用固件的错误提示是 Failed to erase block 估计是备用固件是15.5MB太大的缘故 实际上步骤是 1、刷测试版固件root小米变小米尸体 2、小米尸体刷潘多拉固件 3、潘多拉固件刷备用固件 还是很烦很烦 但是没必要折腾Linux命令行了

  8. garipan garipan

    修改了软件包配置以后 再刷新列表 显示:Collected errors: * opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable. 请问怎么解决呢 感激不尽!

    1. 这是因为你的后台又有一个进程在更新了,后台kill一下就好了

  9. Yacyin Yacyin

    老高,最近的几个ROM都没法用,原来的ROM装shadowsocks-libev-spec也没法装,正好朋友也要,我是用dd if=/dev/mtd4 of=/tmp/firmware_backup.bin 直接备份我的ROM,然后刷,突然发现这个更适合小白 建议在文章干脆给一个ROM的硬拷贝(配置文件空着让自己上传) 反正小米路由器不好卖(你懂的)所以硬件也不会升级,这样很多小白们在192.168.1.1里面改改参数就行了

    1. Yacyin Yacyin

      哥们,不是备份,是Dump一个ROM下来,15.5MB,如果你是小米mini,在Xshell 5里面执行dd if=/dev/mtd4 of=/tmp/firmware_backup.bin 然后再用WinSCP到tmp目录里面拖出来

    2. garipan garipan

      我备份了固件以后 感觉好像这个备份并不能恢复所有配置,以文件形式存储的很多都无法恢复,这个恢复好像只能简单恢复一些基础参数。不过,你可以把你的备份传到网盘上 我试试恢复

    3. 兄弟辛苦了!

    4. Yacyin Yacyin

      我就怕我的设置有问题,我试试吧,就叫Baymax-ROM

    5. 我刚才主要是查了一下,小米路由器的SN、MAC等信息都在mtd3里,所以不会丢失,方法可行!

    6. Yacyin Yacyin

      还有就是江浙沪的朋友,最好买易迅的版本,京东的版本是4月份的,做工明显糙很多,符合小米一贯质次价高的特点,要不是现在不好更新,我肯定买极路由2S了

    7. 你的想法是极好的,要不你整一个上传网盘,我在正文里帮你宣传一下!

  10. 极路由版本OpenWRT中的SS可以订阅GFWlist,感觉那样应该比白名单更准确,请问能不能把它移植到小米上来?

    1. 这个,我没有极路由……不好整啊

    2. 理论上是可以的。。。只要他开源了

    3. 您有空研究下吗?

  11. 请问怎么用计划任务让路由器定时重启?我也不用每天重启,一星期重启两次什么的,请问要怎么写?

    1. 多谢,我试试。

    2. 在计划任务里填试试,意思是每隔3天得当天4点重启
      0 4 */3 * * reboot

  12. chiablue chiablue

    今天又折腾了一天 发现不管是哪个版本的潘多拉 5G下面实际内网传出速度只有10M 老高你有办法吗

    1. 如果是宽带的话,小米路由mini是100M口。

  13. chiablue chiablue

    宽带的速度可以不考虑 现在国内最快也就是100M的宽带 峰值下载速度也就10M 所以一般路由都没问题 我说的是内网的速度 比如家里有一个NAS有线连接小米路由 然后用MBP无线5G连接后到NAS上拷贝文件 这个时候理论上是可以发挥小米AC下867Mbps的极限 那么速度上个30M应该不成问题吧 可实际只有10M

    1. chiablue chiablue

      本来小白一个以为4500没办法刷openWRT 就买个小米折腾折腾

    2. chiablue chiablue

      有木有可能是设置问题导致速度那么慢?

    3. 网上的测速也差不多,应该是硬件不行

    4. chiablue chiablue

      不知道是不是刷了潘多拉的原因 原厂固件没测试过

    5. 刚说错了 6500

    6. chiablue chiablue

      好巧 我就是ea4500换小米的

    7. 。。。为嘛要换?

    8. 我刚才测试了一下,估计还是硬件不行,以后准备上EA4500,不想折腾了。 内网上传 12.5MB 下载 9.6MB

  14. chiablue chiablue

    中午开始对着你的教程折腾了一天 不知不觉12点了 卧槽 还有几个问题不解 希望老高赐教 我是用的r512-20150309应该是最新稳定版了吧 然后按教程装上了redsocks2 不过好像没发挥作用啊 如何让shadowsocks根据redsocks2的判断进行自动翻墙呢 另外 因为第一次接触这方面 还有几个小白问题 首先ChinaDNS到底是干嘛用的 摸索那么久我的理解就是用来获取中国路由表的? ChinaDNS端口1053那shadowsocks是怎么和他配合的呢 shadowsocks透明代理用的的不是1081吗? 还有 除了本文讲到的这些操作 还是不是要设置dns转发和host解析文件呢?

    1. 1. 关于redsocks2请参考 http://www.phpgao.com/redsocks_config.html 2. 如果你了解DNS污染你就能明白ChinaDNS解决了什么问题。 3. ChinaDNS和ss没多大关系,各司其职而已。 4. pandorabox版的SS没有UDP转发的配置选项,你可以参考 http://www.phpgao.com/xiaomi_router_shadowsocks_libev_spec.html 然后设置UDP转发。

    2. chiablue chiablue

      谢谢 我再琢磨琢磨 话说老高你的mini在5G下内网传输速度有多少 为啥我nas拷文件最高只能到12m左右

  15. 老高,我折腾小米mini好几天了,一直折腾不起来,能否帮忙折腾一下,感激不尽。 我刷的这个版本PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r820-20150513.bin 麻烦加我的QQ:3272499414

    1. 我也是的,chinaDNS应该没有问题,是功夫网升级了,干扰加强。 昨天通过配置ipv6基本解决DNS污染,但是直连的速度不快。 如何配置请看重要更新一节。

    2. 不能完全解决DNS污染问题,可以访问google或部分国外网站,但是y2b与facebook等访问不了,请问如何彻底解决。

    3. 你遇到什么问题了,能具体描述一下吗?

    4. 以后应该可以 mt7620a方案现在能刷的系统挺多,你去newifi论坛看看去

    5. 要是可以刷tomato就好了

  16. 博主能帮我下吗? 我刷的最新的Pandora,5.17版的,自带SS,ChinaDNS以及Redsocks2,SS启用后能翻了,但不知道怎样设置跳过国内网址,工具界面跟博主教程有些不一样,多出一些选项,不知道该怎样填啊!

    1. 新版不稳定,我就又刷回稳定版了。

    2. redsocks没有,不过可以看我的教程自己安装

    3. 就是3月9日那个版本吗?请问那个有没有自带这三个工具呢?

  17. 你好老高,bbs.miui论坛中的教程用的是windows系统,使用SCP把文件放在路由器里面,mac用户到这一步该咋整?

    1. 你会用ssh吗? 如果会的话你再学习一下scp命令
      下面这个命令就可以
      scp ~/Downloads/xxxxxx.bin [email protected]:/tmp

  18. 菜鸟 菜鸟

    我是小白啊,问个问题,为什么我的小米路由mini刷了3月9号的稳定版PandoraBox,没有5G信号呢,更奇怪的是自带的dns不能解析baidu.com 但是用ip能直接访问,iphone的app store也无法连接。这到底是什么问题,第一次刷机是哪里操作不对吗?

    1. 你刷最新版的试试

  19. 你好,能发一份新的白名单给我吗?[email protected] 谢谢

  20. 老高,我竟然没找到wifi密码在哪里改竟然没找到,另外我安装redsocks以后管理界面没有看到。

    1. 刷新一下

    2. 谢了,昨天晚上搞的有点晚,没找到所以就舔着脸过来问你了哈。redsocks2我安装了redsocks2_0.60-2_ramips_24kec.ipk和luci-app-redsocks2_1.3.0-1_all.ipk,这两样安装完以后应该就ok了,不过我并没能看到管理界面。我晚上再折腾一下吧。

    3. 。。。为什么不自己百度呢? 1. wifi密码 网络->无线->修改->无线安全 2. redsocks2你确定你安装全了吗?luci-app装了没?

添加新评论