折腾 360 路由

入手 360 路由之后基本没怎么使用,前阵子逛 360 路由讨论区的时候发现多了个 Openwrt 版块,便学着折腾了一下,现在也算物尽其用了。

刷 Openwrt

  1. 路由器 lan 口与电脑相连,设置电脑 IPV4 为静态 IP:192.168.1.3,子网掩码:255.255.255.0,其余为空;
  2. 断开路由器电源,按住 reset 键,插上电源,保持按住 reset 键等待 10 秒左右,看到黄灯闪烁证明已进入 uboot;
  3. 电脑浏览器打开 192.168.1.1,出现上传 rom 界面;
  4. 点击 浏览,找到下载的新固件,上传,等待大概3分钟,完成后再次打开 192.168.1.1 即可进入 openwrt 的 luci 登录界面;
  5. 电脑 IPV4 还原之前设置。

刷不死 UBoot

360 路由重启一定次数后固件会恢复为 360 官方版本,因此需要 “不死” UBoot。刷入 OpenWrt 后,开启 Dropbear SSH 访问。

  1. 使用 WinSCP 将下载的 UBoot 文件传输到路由的 /tmp 目录;
  2. 使用 Putty 进入 OpenWrt ,运行命令 mtd write -r /tmp/filename.bin u-boot,(filename.bin 为待刷入的不死 UBoot 文件名);
  3. 进入不死 U-Boot 刷机界面,重新刷写 Openwrt 固件。

挂载 U 盘

不打算在路由上折腾 Shadowsocks 客户端及去广告功能,没必要把 openwrt 转移到 U 盘上,所以就没必要给 U 盘分区而是单纯格式化成 ext4 格式,

  1. 使用 linux 下的分区指令 fdisk 来进行操作,fdisk /dev/sda
  2. 输入 p 指令查看当前磁盘分区情况;
  3. 输入 d 指令删除掉旧分区(如果有多个分区删除程序会让你输入删除哪一个,范围是 1 到 4,如果只有一个会默认删除掉),一直删除到没有分区为止;
  4. 输入 n 指令创建分区 → 输入 p 创建主"分区 1" → 输入开始位置直接回车,结束位置同样直接回车,表示使用全部容量;
  5. 创建完成后再次输入 p 指令查看当前磁盘分区情况;
  6. 输入 w 保存分区到磁盘上;
  7. 重启系统以更改分区表;
  8. 重启后使用 fdisk -l 查看当前分区状态;
  9. 使用 mkfs.ext4 -O ^has_journal /dev/sda1 命令格式化 U 盘分区;
  10. 使用 blkid 命令读取 U 盘 UUID 并设置其自动挂载。

安装并配置 Aria2

在 Luci 界面的 系统软件包 里找寻并安装 aria2,随后更新配置文件,以我自己的情况为例,我的 aria2.conf 内容如下:

enable-rpc=true
rpc-listen-all=true
rpc-allow-origin-all=true
log-level=error
disable-ipv6=true
max-concurrent-downloads=1
max-connection-per-server=10
min-split-size=2M
split=10
max-overall-download-limit=0
max-download-limit=0
force-save=false
save-session-interval=60
file-allocation=none
disk-cache=16M
dir=/mnt/sda1
log=/mnt/sda1/aria2.log
input-file=/root/aria2.session
save-session=/root/aria2.session
auto-file-renaming=true
auto-save-interval=30

其中的 aria2.sessionaria2.logaria2.conf 3 个文件应按照 aria2.conf 中的配置置于相应地址。随后使用 Putty 进入路由,输入命令 aria2c --conf-path=/mnt/sda1/aria2.conf -c -D,此时 aria2 便可开启,也可以使用 yaaw,具体请参考 “aria2 + web 前端部署指南”。在开机启动项中添加 nice -n 20 aria2c --conf-path=/mnt/sda1/aria2.conf -c -D 便可使 aria2 开机启动,同时限制开启时的 cpu 使用率为 20%,不知道我的理解是否正确。

限制 Aria2 的 CPU 使用率

Aria2 在不受限制的情况下 CPU 使用率肯定是会影响路由稳定的,所以设个限制。在 CPU 占用率限制 中添加下图所示内容。

Aria2 限制 CPU

读取 ext4 格式 U 盘

前面设置 U 盘格式为 ext4,使用 Aria2 下载完成后一般开启 Samba 就能局域网访问,但访问速度不佳,所以考虑直接读取 U 盘,由于 Windows 系统不能直接读取 U 盘中的内容,所以需要借助第三方程序,经过反复测试,筛选出两个程序,在此记录并作推荐:Ext2FsdParagon ExtFS for Windows,前者只能只读,后者可写 U 盘,两者均建议使用 复制 命令以减少文件被损坏的情况发生。复制速度参见下图:

复制速度

计划任务

白天人不在家,离线下载完成后可以关闭路由,等人回来之后在打开路由。让路由在早上 9 点 50 自动关闭 wifi,下午 5 点 50 分自动重启。

50 09 * * * wifi down
50 17 * * * reboot

备份/恢复固件

设置太过麻烦,所以生成备份文件是比较稳妥的办法。如果只备份 etc 目录则可直接使用 系统 下的 备份/升级。若要备份整个固件则需要使用几行命令:

  1. 在 Putty 下使用 cat /proc/mtd 命令查看 firmware 分区对应的 mtd 设备。如下图,我的 firmware 分区为 mtd4。

    查看分区

  2. 生成固件备份文件于 /tmp 目录下:dd if=/dev/mtd4 of=/tmp/customized_backup.bin,然后使用 WinSCP 将 /tmp 目录下的 customized_backup.bin 文件拷贝至本地。

  3. 反之,如要恢复系统,则需将本地的 customized_backup.bin 拷贝至路由 /tmp 目录下,然后使用命令:mtd write -r /tmp/customized_backup.bin firmware 即可完成系统恢复(或直接进入 UBoot 界面进行固件升级)。恢复完成路由器会自行重启(若出现 aria2c 添加 yaaw 任务即刻失败现象,请直接利用该法恢复系统)。


路由现在是中继别人的信号。虽然有访问上级路由的权限,但还是没有折腾出外网访二级问路由这一功能,挺失落的,暂时折腾到此……

Update 2014-11-24 12:15

Adbyby 已有 openwrt 版本的程序,且可支持 360 路由器,论坛 上已有教程,且本人也已试用,效果还不错。不过我这边安装上 Adbyby 后路由经常无响应,可能是缓存不够(已暂停使用路由版 Adbyby)。



参考文章

文章作者
发布时间
最后修改
2015-01-27 22:04
分类
标签