文章目录
前言
由于学校放假了,上周末就回老家了。
鉴于老家只有一台华硕路由器,只能正常访问国内网站,连访问Github也要看心情,寻思着要不要买一台小主机组个软路由玩玩,不然这个网真的无法忍受。
于是在逛了几天闲鱼之后,还是决定不买小主机了,原因在于:
小主机价格太贵 ,支持AES指令集的CPU小主机(比如3160),就要300,再加上现在疯长的内存,一台搞下来500左右,性价比不高。
最后,搜索了一下看看能不能尝试直接在路由器上搭建类似OpenWRT上的OpenClash这类应用达到上网的目的,没想到还真有,遂进行尝试。
介绍
用到的应用是 ShellCrash:juewuy/ShellCrash · GitHub
- 多内核支持:在 Shell 环境下便捷管理及切换 mihomo 与 sing-box 内核。
- 灵活配置管理:支持在线导入订阅连结及配置文件,简化配置流程。
- 自动化任务:支持配置定时任务,实现配置文件与规则的自动定时更新。
- 图形化面板:支持在线安装并使用本地 Web 面板(Dashboard),直观管理内置规则与流量。
- 多模式运行:支持路由模式、本机模式等多种流量转发模式切换。
- 一键维护:内置脚本在线更新功能,保持版本与功能的及时更迭。
设备支持
路由器: 理论上支持绝大多数路由器,只要能够获取root权限并且通过SSH登陆终端;(我的路由器是华硕的,本身就支持SSH以及后台登陆账号就是root权限)
其他路由器请自行查询相关资料,少数路由器可以直接刷机,刷成iStore或者OpenWRT,可以的话建议直接刷机一步到位。
华硕路由器可以刷官改固件或者梅林固件,鉴于路由器往往受限于自身硬件性能,刷机后可以外挂存储以及通过创建虚拟内存等方式提升性能,建议刷机。
koolcenter官改,梅改版固件网址:KoolCenter 固件下载服务器
gnuton/asuswrt-merlin.ng固件:GitHub - gnuton/asuswrt-merlin.ng: Extends the support of Merlin firmware to more ASUS routers
安装
本文以华硕TUF-AX3000路由器(刷了koolcenter官改固件)为例进行操作。
如不需要外挂存储以及创建虚拟内存,请直接从第三步开始阅读。
第一步:外挂存储
准备一个读写速度快的U盘,一般建议:读100M/s,写30M/s,格式化为ext4格式插入路由器。
来到软件中心,安装 USB2JFFS:
然后进行挂载:
第二步:虚拟内存
来到软件中心,安装虚拟内存:
如果硬盘读写测试不通过,可以直接连接SSH后通过终端命令进行创建:
# bs=1M count=512 表示创建一个 512MB 的文件 dd if=/dev/zero of=/swapfile bs=1M count=512 mkswap /swapfile chmod 600 /swapfile swapon /swapfile
第三步:安装ShellCrash
访问 juewuy/ShellCrash · GitHub ,查看安装方式,我这边采用:
路由器设备安装 - 使用 curl 安装: - jsDelivr CDN 源,就一条命令:
export url='https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@master' \
&& sh -c "$(curl -kfsSl $url/install.sh)" \
&& . /etc/profile &> /dev/null
根据相应的选择进行安装即可,下一步安装目录每个人都不同,一般根据自身选择即可,别名就是快捷启动命名,我选择 2:sc:
接着就可以在终端输入 sc 呼出ShellCrash面板,第一次会有引导模式,选择 1 路由设备配置局域网透明代理,后面的自动任务配置可以根据自身需求选择:
第四步:配置ShellCrash
-
功能设置
路由模式以及DNS设置一般不需要,最多在DNS设置中-修改DNS服务器-一键配置加密DNS;
域名嗅探建议开启,作用是把原本只有“IP地址”的数据包,还原回“域名”,从而让 ShellCrash 的分流规则判定得更准确;
自定义端口及密钥,修改一下本机host地址,也就是路由器地址,华硕的是
192.168.50.1,小米应该是192.168.3.1;ipv6设置:这个分情况,如果不使用ipv6,那么全部关,如果国外不使用ipv6,国内使用,那么ipv6透明路由关,ipv6-DNS解析打开;如果国外国内都使用ipv6,那么都开(这边设置错了可能无法访问国外网站);
-
启动设置
一般不需要动,唯一要看的可能是 设置自启延时,也就是路由器重启后与ShellCrash的启动加载先后顺序造成问题的情况下需要让ShellCrash晚点启动。
-
更新与支持
切换内核文件,Mihomo或者SingBoxR根据自身需求选择;
安装本地Dashboard面板,选择自己喜欢的管理面板;
配置自动更新,可以自行设置;
-
管理配置文件
前几个都是生成配置文件的,但是只支持订阅链接的形式,不支持直接输入配置文件。也就是直接输入
https://<订阅地址>即可。这边就是常规的添加订阅链接,生成模版,不多赘述。
配置完成后,回到主界面选择 启动/重启服务 :
验证
启动服务后,我们可以访问 http://<路由器IP>:9999 进入管理面板,如果没有配置密码,只需输入连接的IP地址即可。
定义各种规则后,尝试访问 google.com ,完美!
优化
各种规则的匹配会产生大量的日志,也就是会造成大量的磁盘读写造成性能浪费,可以在管理面板后台把日志的等级设置为 warning 或者 error 。
最后
毕竟路由器的性能有限,对比常住的家的网络来说,确实能够感觉到一点局限性,最明显的就是访问速度明显有点延时,不过总体还在能够接受的程度。
AdguardHome搭配使用
虽然我不建议在路由器上再装AdguardHome,但是架不住喜欢折腾,虽然我装了之后也被我卸载了。
华硕路由器安装AdguardHome通过以下方式安装:
1.路由器后台安装Entware
2.连接终端
opkg update
opkg install adguardhome-go
3.访问<ip>:3000进行配置,假设其dns监听端口为 3001
4.设置上游服务器为localhost:1053,即ShellCrash的dns地址
5.回到ShellCrash主界面-功能设置-dns设置-dns劫持端口,输入AdguardHome的dns监听端口3001
一般来说,路由器有512M内存,运行了ShellCrash后,尤其是观看外网视频,负载会直线上升,基本很难有多余的内存给AdguardHome使用了,很容易造成内存溢出导致程序卡死或者退出。有能力的小伙伴可以玩玩。












