小米路由器mini折腾之自动翻墙篇
趁着节假日,终于搞定了路由器的自动翻墙,终于有自己的翻墙路由器了,之后一发而不可收,记录了一些折腾的文章,索引在此
附赠 翻越功夫网教程索引
自从发现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通用。
这里可以试用 免费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。
其中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服务后,我们能够得到以下配置:
- ip->服务器IP地址
- prot->服务器开放的端口号
- 密码->服务器验证密码
- 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
更高级的配置可以参考OpenWrt-dist的Wiki里面的DNS篇。
老高的设置
检查命令,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运行后会修改系统的防火墙。
图片说明:所有非内网的tcp流量都转发至1081端口,当然,这些工作都是后台自动完成的。
redsock2的具体配置说明如下图,当然你还可以参考小米路由器mini折腾之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日更:
重铸此文。
小米mini usb口插了小米智能灯泡,刷了这个,是不是灯泡不能用了。
是的,不能用了
hi 老高,最近在折腾小米路由, 1、发现用redsocks2做自动翻墙效果不好,用SS透明代理可以上u2b什么的,改用redsocks2就失败,是不是哪里的设置有问题。 2、用SS的白名单能不能实现自动更新列表,比如定时用curl抓到白名单后用脚本写到SS的白名单中。 以上求解,多谢
折腾出来了,今晚回去更!
先告诉你吧,今晚有点事,改天更新。 先用文章中的命令更新chinadns的中国路由表 然后清空ipset: ipset flush whitelist 然后读取文件导入ipset: while read i; do ipset -q add whitelist $i; done < /etc/chinadns_chnroute.txt 最后保存:upset save whitelist
1.redsocks2老高自己用的时候偶尔会卡,它的原理是先把所有流量都做一个判断,然后再选择路线。你可以看看有流量时CPU占用是否过高,或者刷最新版的系统再试试。
2.ss的白名单使用的是ipset中名为whitelist管理的
浏览 ipset list whitelist
帮助 ipset -h
一起研究看看
你好,小白一个,想问白名单怎样获取,有没有详细教程。谢谢
更新也要用Linux?我就把你给我的白名单复制上去,其他没弄。
哦对,是不会用opkg
你就必须看YouTube吗?
不应该啊,透明代理开了没?
开了。就是谷歌地图啊,维基百科,谷歌搜索这些能翻,就是youtube不行
[email protected] 谢谢/
SS和ChinaDNS都配置好,redsocks2就没配置,翻就能翻,但是youtube ,推特这些打不了
楼下的@高兴他爸就是我 都能上油管,chindns的ip更新了么?
晚上回去给你发
文中有提到。
1 用命令行获取,找一个会Linux的家伙,让他帮你执行ChinaDNS一节中的curl命令,然后把结果发给你
2 就给我你的邮箱,我发一份最新的给你
新版的pandorabox没有curl,而且可用软件包里也没有,这是咋的
重装最新版spec版SS,开启UDP转发就没有污染了
确定不了,不会用dig指令
更新opkg了吗?
你确定你的chinadns正确运行了吗?
没,刷的是3月9日更新的稳定版rom,ss和chinadns都是最新的,把chinadns路由表粘到shadowsocks版名单里可以实现自动翻,但是现在还是有dns劫持,而且现在gfw把我往外国Pron网站上劫,丧心病狂。Google网站是正常的
很感谢你老高。。
That means a lot.Thank u.
请问如果我不想国内外分流,全部走 SS 代理,应该怎么做呢?(用于二级路由玩游戏用)
ss对大部分游戏都是不支持的,网页游戏除外。还是老老实实买游戏加速器吧
ss在本地提供socks5代理,有些程序只支持http代理,我们可以用软件将它转为http类型即可。
你可以用ss-redir做透明代理。
因为你的依赖包没有安装。 请参考http://www.phpgao.com/xiaomi_router_python.html 中将* libc 装好
是的,但是系统有导出导入设置的功能,可以节省一些操作。
条条大路通罗马!
再次感谢你的教程!这样设置好是不是不能升级系统了?前几天保留数据从0209刷0228的固件结果出问题。是不是每次更新系统都要重新装一遍?
奇怪,按照这个教程http://www.right.com.cn/forum/thread-158044-3-1.html,就可以翻墙了,没有使用redsocks,这样也好,国外ip全走ss算了...
重启之后网站可以上了,只是不能翻墙,whatismyip显示是本地ip,是不是问题出现在ss?
首先在后台ps看看都运行着没?然后再看看防火墙有没有转发
感谢!安装上了。 但是又有问题:Chinadns、redsocks和ss都运行起来了,但是无法上网。其中Chinadns、redsocks按你教程设置默认选项,ss我勾选了sock5代理,端口1080. ps:ss服务端是照你教程搭建起来的,没问题。
你好,到执行mtd这一步,出现提示“Could not open mtd device: firmware” 重新scp固件试了几次都这样,是怎么回事呀,谢谢~
帮你百度了一下 答案在此 http://bbs.xiaomi.cn/thread-11021015-1-1.html
不如你直接去udemy开课从最基础开始讲起吧,还能赚钱,我保证第一个付款学习!对于我这种非电脑专业毕业人士,看文字还是有点不懂
嘿嘿,这个东西就是自己折腾的记录,不考虑盈利。如果需要帮助,我们邮件联系,老高最喜欢处理问题了~
您好那中国电信的路由器可以吗?
请教下: 1、小米路由器(不带mini)可以吗? 2、如果第1个问题答案是可以,那小米路由器官方每周的升级,还可以更新吗? 3、连上配置了的路由的手机,访问google play等是不是完全没压力? 4、用了goagent的PC,连配置好的路由器会不会有冲突? 5、会不会影响不需要fq的地址的访问速度?比如下载? 谢谢!
OK
我先再试下,不行再请你帮忙。 我关注你微博了,到时候私信你可以吧?支付宝付你。
你的账号不是国际账号,到www.paypal.com重新注册试试 需要我帮你代付吗?
Paypal提示: 抱歉,贝宝账户无法进行跨境付款。请登录到贝宝国际账户支付这笔款项。如果没有贝宝国际账户,您可以使用借记卡或信用卡付款。 已经注册了paypal的账号,这是什么原因?
追问: 1、看了下bandwagonhost,你推荐的9.9$的套餐,访问墙内IP时,会耗这个流量吗?我猜肯定是不会,只是确认一下,看了你推荐动心了。 2、一个题外的,bandwagonhost官网android平台下,链接了fqrouter是怎么回事?fqrouter和bandwagonhost是一伙的? 3、我的小米路由直接翻肯定是不行了,推荐我怎么搞法?
好吧,看错行了,是shadowsocks链接了fqrouter,汗。
1、目前不行 3、是的 4、不会 5、不会
不一定会,自动判断也是有失误的可能,常用的规则是国内IP不走代理,国外IP走。 $9的流量是500G一个月,一两个人用足够了。 fqrouter是工具,ss是实现方式 开了以后ssh以后自己安装以上软件即可,luci只是方便管理而已。