极路由1S折腾记录

刷机

官方插件已经没什么吸引力,除了迅雷远程下载,其它都是些可有可无的,科学上网也不好搞,索性刷个openwrt,要什么有什么,当然,机子性能为前提。

获取root,刷入breed

极路由可以想官方要root权限的,也就是装个插件,不过root就没保修了。breed这玩意相当于以前的uboot,让小白也能很happy地折腾路由,完全不怕刷错系统,不过,刷入了带uboot的固件就不好说了。

1
2
scp -P 1022 breed本地路径 root@192.168.199.1:~

  • ssh到路由,执行
1
mtd -r write /tmp/breed-mt7620-hiwifi-hc5761.bin u-boot
  • 关机,按着reset键重启

下载固件

极1s的openwrt固件很多,中文openwrt网有Pandorabox,基于openwrt14.09改的,集成了很多服务,像ss迅雷transmissionaria2等等。不过这网站估计不怎么维护了,固件了opkg源的地址也是错的,如果要刷这个固件,还是修改/etc下的opkg.conf。不过服务集成倒是很多,极1s装上后再集装个syncY同步百度云,加上原来有的各种下载,文件共享Samba,ftp功能,瞬间变身NAS。就是这个固件装完syncY很卡,而且自带的ss不好用,加上官方也不更新了,所以这次就不装它了,装比较新的openwrt 15.05。

  • 到github上下载编译好的固件,https://github.com/rssnsj/openwrt-hc5x61/tree/chaos_calmer
  • 用网线连接路由,浏览器打开192.168.1.1,可以先备份一下key、固件什么的,后悔时有后悔药吃。
  • 选择更新固件,上传刚下载的固件,更新,等进度条读完就可以拔网线,让路由器连外网,别断电,路由器还在写入固件,注意ip段别冲突,这时极1s的网关为192.168.1.1.
  • 接着浏览器打开路由管理界面做一些常规设置后开始下一轮折腾

安装shadowsocks

路由ss一直搞不好,不是无法开启就是只能全局,这次的目标是智能分流

卸载机子原来的ss

1
2
3
#ssh连接上路由器后运行
$ opkg list_installed | grep shadowsocks #查询已安装的ss和相关工具
# opkg remove shadowsocks-* #删除之

下载shadowsocks和ChinaDNS

地址
shadowsocks
ChinaDNS
ss的luci界面
ChinaDNS的luci界面
安装

1
2
3
4
opkg install ChinaDNS_1.3.2-3_ramips_24kec.ipk
opkg install shadowsocks-libev-spec_2.4.6-1_ramips_24kec.ipk
opkg install luci-app-chinadns_1.4.0-1_all.ipk
opkg install luci-app-shadowsocks-spec_1.4.0-1_all.ipk

接着到服务里的shadowsocks设置服务器信息,按照下图设置UDP转发和访问控制

2017-04-08-one

打开服务ChinaDNS,配置如下

2017-04-08-two

其中上游服务器的第一个地址填宽带供应商的dns。
再打开网络-DHCP/DNS,在基本设置页设置DNS转发为127.0.0.1#5353,在HOSTS和解析文件页将忽略解析文件和忽略HOSTS文件钩上。
为了能够使用UDP转发,需要安装iptables-mod-tproxy

1
2
opkg update
opkg install iptables-mod-tproxy

更新ChinaDNS列表:

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/chinadns_chnroute.txt

重启路由生效,注意看看UDP有没在运行

安装Aria2、远程迅雷、百度云同步、ftp

终于轮到这Aria2个神器了,无论是bt还是百度云、115都可以用它下载,而且百度云能跑满速,115如果不是会员还是限制单个文件100k每秒的下载速度。对于115,只能说速度不行,靠量来补了,如果是批量下载,还是能跑一两M每秒的,不能再多了,再多路由就崩了。

先来安装一些USB驱动

虽然这个固件本身也能驱动USB和内存卡,但不能开机自动挂载,内存卡更是坑爹,插卡WiFi就出问题。
内存卡就先不管了,github上已经有人issue,等作者解决就好。先来搞USB自动挂载

1
2
3
4
5
6
7
# 每次装软件都要update
opkg update

opkg install kmod-usb-uhci #USB控制器
opkg install mount-utils #挂载卸载工具
opkg install block-mount
opkg install usbutils

接着安装配置Aria2

1
opkg install aria2

会自动下载依赖

极1S的openwrt 15.05没能找到合适的luci,一些luci装上去总是有些问题,干脆不装了luci,界面其实也没什么用,关键还是看下载信息的那个web页面。

创建aria2目录,放入session和配置文件

1
2
3
4
mkdir /etc/aria2
cd /etc/aria2
touch aria2.session
vi aria2.conf

写入以下内容,dir为下载目录,根据个人情况修改,换设备的时候可以到web页面改
aria2支持多线程下载,路由器资源有限,还是限制以下比较好,设置最大下载数为10,每个下载最大链接数为10。根据路由情况再改吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
quiet=true
continue=true
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
#dht-file-path=/var/etc/aria2/dht.dat
file-allocation=none
#bt-enable-lpd=true
#enable-dht=true
dir=/tmp/storage/sda1
save-session-interval=30
check-certificate=false
#follow-torrent=true
max-connection-per-server=10
max-overall-download-limit=0
max-concurrent-downloads=10
min-split-size=5M

配置到这为止,运行aria2:

1
aria2c --conf-path=/etc/aria2/aria2.conf

https://github.com/ziahamza/webui-aria2下载管理Aria2的web页面,解压后把里面的markdown、flags文件夹(这个必须删,9点多MB)、和一些js(这个无所谓了,就省了不到200k)等删了,打包成aria2.zip包,传到路由的u盘上,ssh到路由,cd到zip的所在路径,执行

1
2
3
4
opkg update
opkg install unzip
unzip aria2.zip
mv -f aria2 /www

现在访问192.168.1.1/aria2,配置连接设置,填上192.168.1.1,保存设置就能管理aria2
添加开机启动,可以到路由管理页面添加启动项,也可以编辑/etc/rc.local,在exit上一行添加

1
aria2c --conf-path=/etc/aria2/aria2.conf -D

安装远程迅雷

安装远程迅雷的luci界面

1
opkg install luci-app-xunlei_0.11-14_all.ipk

接着道路由管理界面服务中的远程迅雷下载配置,建议不要设置安装路径,默认就好,极1s的Xware版本是mipsel,保存应用后,等菊花转完。
你会惊奇地发现无论怎么刷新,迅雷还是没有启动,因为端口冲突了,这货监听的端口居然也是1080,和ss一样。不过我不会改迅雷的端口,ss随便改,于是把ss改成1081就妥了。到远程迅雷官网绑定下载器,这样就可以随时随地往极路由上添加迅雷下载任务了。我发现这技术还能发展成内网穿透,搞成类似ngrok那样的实现,转发内网某些端口到公网。不过迅雷对这种蝇头小利应该不感兴趣。

安装百度云同步

115说要给API说了几年,云盘倒了一片又一片,估计115也没心思搞什么公开API了。百度云在这方面还是比较靠谱,让路由和一些nas系统也能用上云盘同步。

经过以上折腾,极1s的16M闪存只剩不到3M了,而百度云同步需要安装很多依赖,在15.05中安装百度云需要额外的近8MB内存,所以只能安装到U盘了。
在/etc/opkg.conf中添加

1
dest usb /tmp/storage/sda1/ #根据实际情况填写路径

修改/etc/profile

根据 http://www.syncy.cn/index.php/syncysetup/ 进行以下一些安装

1
2
3
4
5
6
在openwrt系统必须安装如下包:
libcurl
libopenssl
kmod-nls-utf8
Python
python-curl

这个python-curl在15.05的源里面已经没有了,到作者百度云盘下载安装即可。

安装完成到路由界面进行相关的绑定配置
作者还写了个守护脚本,添加到开机启动就完成了。

ftp

由于Samba间歇性抽风,装多个ftp备用。

1
2
3
opkg update
opkg install vsftpd
vim /etc/vsftpd.conf

内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
background=YES
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO

chown_uploads=YES
chown_username=root
ftp_username=nobody
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/tmp/storage/sda1
local_root=/tmp/storage/sda1

免密ssh到路由

生成公钥、私钥

1
ssh-keygen

打开id_rsa.pub,复制内容到路由管理界面的系统→管理权,最下方的SSH-密钥,保存应用即可
本地的config文件(没有就创一个)编辑

1
2
3
4
5
Host root_server openwrt
HostName 192.168.1.1
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

以后ssh到路由就免密了,还可以用别名登录

1
ssh openwrt

结语

折腾了几天路由,获益不少,了解了TCP、UDP、DNS这些以前不感兴趣的东西,对网络有了更进一步的了解,也感叹GFW的强大,