<<<写在前面>>>

有段时间没更新了,最近折腾了一个路由器,咸鱼入手一百五,手动更换flash为emmc,原本程序是在flash中跑的,有网友大神开源出来他的固件,从emmc启动,必须上emmc。

题外话
已经很久没有折腾路由器了,我记得最初写博客的时候,正在折腾路由器,由于博客文件没保存好丢失了,部分折腾路由器的文章也都丢了,那时候在弄树莓派+openwrt方案,学了不少路由转发的知识,现在忘得差不多了,重新开始学。

正题开始

NSY-G68-Plus是陕西农商云的一款路由器,其配置信息如下:

  • 处理器:搭载瑞芯微RK3568核心板,集成四核ARM Cortex-A55处理器。
  • 内存:原生内存为4G。
  • 存储:存储容量有8G、16G、32G、64G等多种,还有极少数256G版本,部分为原生存储,部分是后期扩容的emmc颗粒。(我的就是256G自己扩容)
  • 接口:背面有一个USB 3.0接口、五个千兆网口以及DC电源口,采用12V/2A电源供电。
  • 其他:主板上有单独的M2 Nvme固态硬盘槽,外壳为金属材质,采用四天线设计,支持WiFi6双频千兆无线。

上述信息来看,3568这样的芯片做成算力卡才能发挥他的全部实力,做成路由器真有点大材小用了,内存4G在路由器中跑一些中等的docker应用还是可以的,另外具有M.2的固态硬盘盘位,这个就非常适合做云存储了,实测上256G没问题,能够读写数据,手头没有更大的了,先凑合用着。有个usb3.0的口可以用来插U盘,网络摄像头设备,甚至提供以太网,当然上述均是理论上,没有实操,哪天试一试。

好了,优点说完了来说说缺点,发热,平均50°上下,摸着铁盒子感觉和其他百元级的路由器差不多,毕竟这个也是个3568啊,其次烫的地方是网络芯片,大神自编译的固件添加了闭源驱动,wifi实测效果还行,和一般百元路由器差不多,最后固态也会稍微烫一点,50左右。还有就是他启动非常慢,不知道为什么,相比之前折腾过的路由器来说,启动得等1分钟左右。

150的路由器他值得吗,最初我是从RAX3000M算力版找的,这款130左右闲鱼价格,相比之下NSY这个只是多20,性能更好,扩展更多,当然入手了,但光从CPU角度看的话,RK3568其他形态的板子也就130上下,排除那些开发板,相比之下价格差不多,毕竟其他形态的板子没有路由器这种完全体好,也算是值的。

编译过程

编译环境docker

1
2
docker run -d --name immortalwrt-build  myflavor/immortalwrt-build
docker exec -it immortalwrt-build bash

选择docker的原因是,搭建环境实在是太麻烦了。。。。。

下载

  1. 源码部分

这部分是源码,通过编译可以得到一份属于自己的固件。

1
git clong https://github.com/zhoufuli/immortalwrt-rk356x
  1. 懒人固件

这是别人编译好的,可以直接开机,尝试过能用,但是管理页面的网络中没有无线选项,自编译的有

https://dgithub.xyz/xiaomeng9597/ImmortalWrt-NSY

上述链接找到固件下载,点击Rockchip平台找就可以了,也可以去releases找immortalwrt-g68的固件。

编译

更新docker源

1
2
3
cp /etc/apt/sources.list /etc/apt/sources.list.bac
rm /etc/apt/sources.list
vim /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

安装必要软件

1
2
apt update
apt install -y build-essential gcc g++ binutils patch bzip2 flex bison make gettext ncurses-dev zlib1g-dev libssl-dev python3 util-linux bc rsync vim git unzip libncurses5 gawk

更新和安装 feeds

到git仓库目录下执行

1
2
./scripts/feeds update -a
./scripts/feeds install -a

安装 GNU ‘awk’

可忽略

1
sudo apt-get install gawk

Make

可以自己打开关闭功能,可以先把当前目录下defconfig中的g68_mtk_wifi.config文件,这个文件是带有闭源驱动的config文件,我是在这个文件的基础上自己修改编译的。

1
make menuconfig

开始编译

1
make -j$(nproc) V=s

报错提示缺少依赖,手动编辑.config文件发现上述提示的文本全部没有打开,于是手动修改后依然无法编译成功,重新安装feeds解决。

给路由器做手术

  1. 拆除原本flash(网上有些说不用拆,但是我用不到了干脆拆掉)
  2. 上件emmc

刷机过程

此时你需要刷机驱动以及刷机软件。

可以去这里看他的教程https://www.bilibili.com/video/BV1asAge7EJqhiahiahia好玩这个UP有三期讲本路由魔改视频,可以自行查找。
评论区链接: https://pan.baidu.com/s/1RV_6NGhfre2kCVO_o5tiBQ?pwd=8888 提取码: 8888。

安装好后打开软件,用一条线连接电脑和路由器上的usb3.0接口,准备完毕开始刷机,在原本flash边上有两个黄色圆点(他们连线并不平行于长方形路由器的两条边),这两个是测试点,用镊子或者其他金属短接后插上电源适配器,此时电脑上位机最下方提示找到MASKROM设备

此时工具最上方选择高级功能,刷入boot,三个点的位置点击后选择上面百度网盘的链接下载的文件rk356x_spl_loader_v1.18.112.bin,点击下载,不做这一步会出现无法读取任何信息的问题,同时刷不了机。

下载完成后在解包下方有第二项 EMMC,选中它,在左侧按钮中选择擦除所有(这一步可做可不做),这一步具体看你的emmc多大,256G的就非常久,优点就是可以看你这个emmc是否存在无法读取的问题。

最后一步在顶部选择下载镜像,勾选第二个system行,第一行boot不勾选,修改system的路径为你自己编译的固件路径即可,完成后需要勾选下方的强制按地址写,最后摁下执行按钮,右侧会有log提示,完成刷机后路由器会自动启动

这时候用以太网连接到电脑等一会在浏览器输入192.168.1.1就可以进入管理也面了,此时随便输入密码,点击登录会提示你修改密码。

至此完成刷机。

路由器配置和使用

本文篇幅有限,路由器配置会单独讲,这里只提供一些简单的注意事项

  1. 以太网口千万不要分错wanlan,本文的NSY的wan口是靠近电源的那个接口,如果你错误接到了最左边(仔细看这个接口和其他四个接口是分开的,不看清楚路由器标识可能会误以为这个是wan口),那么你的电脑将会直接桥接到NSY的上一个路由去了。

  2. 在没有详细了解路由器防火墙以及接口配置的情况下,千万不要随便修改,否则可能导致无法进入管理界面导致必须强制重刷,虽然固件有修改错误回滚机制,但是有部分是修改了无法连接到路由器,那么回滚机制就失效了。

  3. 部分软件配置需要扩容才能完美运行,比如docker,必须扩容,转移docker根目录文件才能运行,我还没有弄清楚,还得研究研究。

能做什么

为什么要自定义路由器呢?

原因很简单,我需要一台能够完全掌控网络链路走向的路由器,我能控制网络信息从wan口来,去到哪个lan口,或者在路由器内部软件旁路由绕一圈再流出lan口或者渠道wifi输出,又或者是让旁路由实现本地dns污染,直出旁路由数据。

其次路由固件本质是linux内核,我便可以在这套系统中搭建自己想要的服务,运行自编译程序,由于路由器是3568的缘故,算力这块不需要太愁,在编译固件的时候,我们可以将想要的功能直接编译到固件中,就比如我将python基本库编译进去,那么路由器系统就有了python的基本功能,我能够跑自己的python程序,当然也可以通过docker的方法运行。同时路由器有4G内存的功能,而openwrt占用系统内存非常小,那么大量的内存空间可以用于docker中跑占内存的容器,比如网盘存储kodbox等,其实有了docker之后就有很多玩法了。

再者就是路由器可以多样化控制,从根本上玩转路由,我尝试过添加了闭源无线驱动的固件,它能够单独控制5G和2.4G的两颗芯片,也就是说我可以通过wifi桥的方法,用5G接收较远的路由器WiFi信号,通过无线转成有线连接到没有无线网卡的电脑上,同时还能发出5G和2.4G信号用于其他设备连接,他应该还能开启混杂模式,没有尝试过,感觉得重新编译才行。

最值得的一点是,他能通过运行ddns-go,用IPv6连接域名,那么部分比如说博客我就可以这样本地化部署,公网访问了,当然这种做法也是存在风险的,毕竟主动暴露了IP(可能通过扫描子域名找到漏洞攻击你的服务器),等你的路由器权限被拿走了,那么连接到你路由器的其他设备也都遭了殃,如果要做,那么一定要封好所有不该暴露的端口,不给黑客们可乘之机。

说了这么多其实就是一句话,能够完全掌握他,远程访问,当然还有其他的上网功能,就不细说了,懂的都懂。如果有折腾出什么新花样再写文章补充。