使用友善R2S打造GDUT专属软路由 不再受学校设备限制
因为要进入新的学校了,所以我打算买个路由器,但是听说学校限制有线连接的设备,我很好奇,因为路由器下其实是大内网,正常来说上层路由是访问不到下层路由的设备的,但是我在网上搜索的时候,发现了它确实不是看下层路由的设备,而是通过检测UA来识别多设备的,于是就有了这篇折腾笔记
目标
- 完成路由器的PPPoE拨号
- 突破学校的设备限制
免责声明
- 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖、故障、数据丢失等情况,概不负责;
- 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任由您自行承担;
- 部分学校明令禁止使用路由器上网,相关文件前往学校官方网站相关页面查看。本教程仅用于交流使用,安装路由器的行为完全是您个人意志所决定的,如您已成功安装,请在 24 小时内重置路由器至原出产状态;
- 请按照学校推荐的方式连接到互联网,如因个人问题受到相关校规追责,由您自行承担。
安装系统
因为我买的没有带SD卡(我有为啥要买.jpg),所以系统得自己装
前往Openwrt的官网,发现在国内有镜像,直接从镜像站里面下载
因为这个产品的芯片为Rockchip,所以可以很容易地找到openwrt固件
Openwrt固件(Rockchip):https://mirror.sjtu.edu.cn/openwrt/releases/23.05.4/targets/rockchip/armv8/
下载好了以后,熟练地掏出我们的老朋友balenaEtcher,写入系统到SD卡里面就行了(Rufus也可以)
汉化
点击顶上的System
,再点Software
,如果是刚装的系统建议再点一下Update lists
按钮
在搜索框里,我们输入luci-i18n-base-zh-cn
,然后在下面找到这个包点击安装(我这里是已经装好了还改了主题,仅做示意)
装好了以后刷新就应该是中文了,如果不是的话,点击顶上的System
,再点System
,在Language and Style
手动调成中文即可
更换主题
我使用的是Argon主题,因为这个Design System我以前用过,也挺好看的
直接用SSH运行仓库给我们的命令即可,但是要小改一下输出的路径,要不然会报找不到文件
1 | opkg install luci-compat |
装好了以后刷新就会变成新主题了
扩容
我是一张64G的SD卡,但是装好系统只显示有大约100MB,这远不及我们的SD卡原来的大小,我们要对SD卡进行扩容处理
第一次尝试扩容(懒人终被制裁 =-=)
Openwrt默认是开启了SSH了(没开的话在系统
=> 管理权
=> SSH 访问
自己开一下),我们可以直接SSH链接
连接后,我们先安装一下fdisk,查看一下现在的分区(如果提示找不到fdisk
就opkg update
一下)
1 | opkg install fdisk |
很明显我64G的卡没有得到充分利用,所以我们接下来要把剩下的空间给利用起来,我把卡拔了下来,然后连上了Windows(这是最简单也是最快的方法)
连上电脑后,发现有两个分区,而我们的文件就在rootfs
这个分区里面
直接把它后面的空间分配进去,完活——才怪
事实证明,偷懒是不好的……我们还是试试在Linux里面调吧
我打开了我的Ubuntu虚拟机,然后把卡连上去,用parted
看看我们的盘在哪里
这里看到我的盘是/dev/sdb
,然后我尝试使用cfdisk
来完成这个操作(不为什么,就因为可视化),但是……
我还找了半天,这个/dev/sda
是哪里来的,结果我忘了我的读卡器是双卡读卡器……
好吧,你彻底打败了我——你以为我会这么说嘛?Ubuntu里面自带了一个Disk应用可以用来调整硬盘,然后我就直接打开了那个玩意
直接选中我们的rootfs
分区,选择Resize
进行扩容,直接拉满!虽然弹了个错误,但是还是成功拉满了
然后再把卡丢回设备里开机,然而还是只有那么点空间,输入parted -l
,显示有63.8GB,非常奇怪
可能是挂载有问题,我又尝试重新挂载,但是openwrt的web自身是没有挂载点的相关设置的,所以我们要装一下
1 | opkg update |
重启后在系统
选项卡里有挂载点
,直接点进来,对我们的分区进行设置
启用,并作为根系统/
使用,下面还贴心地跟我们列出了命令,我们登录SSH给它运行一次,最后回到网页端,点击保存并应用
,然后重启系统,结果还是不行
于是我又接到了Ubuntu上,打算重新新建分区(盘为/dev/sdb
)
我们先进入parted模式
1 | parted /dev/sdb |
然后打印一下我们的分区
1 | (parted) print |
我选择先删除分区2,然后重建
注:删除分区(例如使用
parted
的rm
命令)确实会删除分区表中的条目,但它不会立即删除分区内的数据。删除分区的操作只会影响分区表,而不会直接对磁盘上的数据进行物理删除
1 | (parted) rm 2 |
重建了以后,我们要调整分区来保证所有的Block都被用上
1 | e2fsck -f /dev/sdb2 # 先检查磁盘没有问题 |
然后再插上卡,开机!诶?怎么开不起来???好吧,这次以失败告终……
第二次尝试扩容
因为第一次扩容的时候,系统被我搞炸了,所以我又重新刷了一次系统;偷懒偷出了问题,所以这次我决定走正规途径,在openwrt路由器里面扩容
我们还是先安装fdisk
看看我们的硬盘情况,运行fdisk -l
,确认我们的设备名为/dev/mmcblk0
然后我们运行cfdisk
开始分区操作(没有的话要装一下)
这里可以很清晰地看到后面还有一块FREE SPACE
,我们新建分区,用上下键选到那里,然后下面选择NEW
,然后大小自动(自动就是分配所有空间),然后分区类型选择Primary
,一路回车就行
然后我们要选择下面的Write
把分区表写入,记得回复yes
,然后再Quit
我们再运行fdisk -l
,可以看到多了个分区
我们直接格式化这个分区,然后重启
1 | mkfs.ext4 /dev/mmcblk0p3 |
回到我们的网页端,进行挂载点的挂载(如果没有挂载点的话要先安装opkg install block-mount
)
如果这个列表没有刚刚我们新建的分区的话(像我这样),需要手动添加
我们还需要先运行下面的命令(在SSH里面运行),注意第四行的/dev/sda1
需要换成自己的实际分区,我这里应该换成/dev/mmcblk0p3
1 | mkdir -p /tmp/introot |
运行后再到网页选择“保存并应用”,然后重启路由器,这下是真的成功了
编译并安装Dr.com插件
实测不需要安装插件,直接设置PPPoE拨号即可
因为我用的路由器没有那么大众,本质是一块开发板,所以我没找到适合我这个路由器的该插件,这就造成了我们需要自己编译,我还是用Ubuntu虚拟机来干
1 | 更新包列表 |
刚开始编译的时候,会有这样的一个窗口允许我们配置,直接点击Exit,然后再点Yes就可以了(或者如果你有别的配置也可以进行)
编译要一段时间,可以坐下来喝杯茶刷会手机,最后生成的文件在./bin/packages/aarch64_generic/base/gdut-drcom_6.0-4_aarch64_generic.ipk
注:根据路由器芯片架构的不同,文件名很可能不同
安装直接在软件包页面上传就可以了
编译并安装xmurp-ua插件
实测此方法不好用,不如看下面的UA3F
把上面的脚本改一下就行了
1 | 更新包列表 |
刚开始编译的时候,会有这样的一个窗口允许我们配置,直接点击Exit,然后再点Yes就可以了(或者如果你有别的配置也可以进行)
编译要一段时间,可以坐下来喝杯茶刷会手机,最后生成的文件在./bin/targets/rockchip/armv8/packages/kmod-xmurp-ua_5.15.162-34_aarch64_generic.ipk
注:根据路由器芯片架构的不同,文件名很可能不同
安装直接在软件包页面上传就可以了
突破限制
Dr.com插件信息该填的填就完事了
然而更改UA,我们还需要进行进一步的操作
我们先要安装一个插件
1 | opkg install zram-swap |
安装完这个插件以后,重启路由器,就完成了
安装UA3F插件
UA3F项目地址:https://github.com/SunBK201/UA3F
UA3F需要搭配OpenClash使用,如果没装OpenClash可以看看附加题
我们直接到UA3F的项目地址下载RELEASE(没有的自己编译吧),下载后通过SSH传输到Openwrt上后使用opkg
安装
1 | $ opkg install ua3f*.ipk |
安装好后刷新,可以在Luci的服务选项卡里面找到UA3F
安装后我们在这个页面里面按照自己的需求进行配置后,保存并应用
然后来到OpenClash,选择配置管理,然后把下面的内容保存到一个yaml
文件后上传上去(不要照抄,根据自己的UA3F配置改)
1 | #--------------------------------------------------------------------------------------# |
然后我们回到OpenClash的插件设置,按照我这么选(使用Redir-Host
模式而不是Fake-IP
模式)
回到OpenClash的仪表盘,切换到我们的UA3F配置文件后启动OpenClash
开启后,我们访问ua2.233996.xyz,查看我们的UA,如果是像我这样,上面是自己刚刚设置的UA,下面是自己的浏览器UA的话,就说明成功了
附加题:Clash
我们要用的是OpenClash,是一个专门装在openwrt上面的软件包
OpenClash:https://github.com/vernesong/OpenClash
安装好后第一次打开,会提示我们没有装内核,我非常不建议在这里直接装,直接装的话装半天装不上,倒不如直接我们自己手动安装
我们来到内核的下载地址,选择适合我们自己的版本下载,我使用的是Meta内核,下的是arm64版本
内核下载地址:https://github.com/vernesong/OpenClash/tree/core/
TUN内核下载地址:https://github.com/vernesong/OpenClash/releases/tag/TUN-Premium
把我们下载的内核丢到/etc/openclash/core
文件夹里面就行了,如果是meta版就命名为clash_meta
,普通clash为clash
然后我们在配置订阅页面,添加一个我们自己的订阅
保存后更新订阅,回到主界面,看到我们的机场写着启用了以后,我们点下方的启动OpenClash
如果你的配置没有问题,过一会就会显示启动成功了
启动成功以后,就可以实现无感上网了(我下面这个图已经把SwitchyOmega关掉了)
OpenClash也给我们提供了三种控制面板来修改自己的节点,我们可以选择任意一个进行修改,选择一个适合自己的就可以了