小米路由器Mesh组网 + ShellClash科学上网折腾记

Feb 4

前言

前段时间白嫖了一台小米路由器BE3600,今天在尝试折腾ssh,为了装科学上网工具(你懂的)。然后因为家里本身有一个主网络,所以打算尝试以中继模式配合ShellClash实现家庭网络科学上网。

准备工作

需要准备的东西:

  • 小米路由器 + 自带的网线 + 电源 (废话)
  • 另准备至少1根网线(非必须,看你是否有设备需要连接有线网络)
  • 一台可以科学上网的电脑(用于配置路由器和ssh,同时方便访问GitHub等网站)

由于我的路由器是第一次使用,所以直接初始化即可,此处注意:

虽然我也升级了,不过好在没啥大问题,系统版本1.0.65实测可以免刷机打开ssh服务。

然后进行简单配置,保证路由器能上网即可。

打开SSH服务

注意,在进行以下操作前,请确保你用来配置的设备所连接的网络和小米路由器是同一网络

第一步(选做):降级固件

如果你使用的小米路由器和我不是相同的型号,那么你的系统版本可能高于1.0.65,此时可能需要降级, 旧版路由器固件由于型号太多,就没法贴了,自行搜索下载吧。

同时,降级需要一个小米路由器降级工具, 可能会被浏览器下载报告不安全,如果你实在无法信任所下载文件的安全性,可以考虑在虚拟机里下载使用该工具

第二步:运行命令解锁SSH

Windows用户可使用命令提示符(cmd) 、macOS用户可使用终端(Terminal),输入下列代码开启小米路由器BE3600的SSH功能:

# 请将 <STOK> 替换成 stok 码, stok码可以通过登录路由器后台管理页面,在浏览器URL中复制
# 注意:每次登录路由器后台 stok 码会改变。
curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/arn_switch -d "open=1&model=1&level=%0Anvram%20set%20ssh_en%3D1%0A"

curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/arn_switch -d "open=1&model=1&level=%0Anvram%20commit%0A"

curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/arn_switch -d "open=1&model=1&level=%0Ased%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%22debug%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%0A"

curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/arn_switch -d "open=1&model=1&level=%0A%2Fetc%2Finit.d%2Fdropbear%20start%0A"

第三步:ssh登录路由器,进行相关配置,并且修改默认密码

登录

使用以下命令登录:

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.31.1
  • 默认用户名:root
  • 默认密码:使用密码计算网站,将路由器的SN码复制进去计算密码,SN码可以在路由器机身或后台页面查看。

配置重启后自动开启SSH

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
./auto_ssh.sh install

修改密码

运行以下命令修改root用户默认密码(Linux基操)

# 其实Linux修改root密码直接passwd就行,但是为了不出幺蛾子还是这样吧
passwd root

Warning

此时会提示输入新密码,输入的内容不会显示,然后会提示二次确认密码,两次输入正确后密码修改成功。

第四步:固化SSH

Caution

注意,以下命令每一个reboot都会使路由器重启一次。

zz=$(dd if=/dev/zero bs=1 count=2 2>/dev/null) ; printf '\xA5\x5A%c%c' $zz $zz | mtd write - crash

reboot

此处等待路由器重启完毕,重新连接上路由器Wifi,再运行以下命令。

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
bdata set ssh_en=1
bdata set telnet_en=1
bdata set uart_en=1
bdata set boot_wait=on
bdata commit

reboot

此处等待路由器重启完毕,重新连接上路由器Wifi,再运行以下命令。

mtd erase crash

reboot

执行指令后路由器会重启,重启后固化完成。

Mesh组网 + ShellClash安装配置

小米路由器开启Mesh

Mesh组网的目的是:使该路由器作为中继节点加入主网络的网段中,扩展现有的局域网,如果你仅仅是将路由器WAN口接入现有网口,则它会被重新分配一个局域网网段,这样通过该路由器的网络不能与原局域网其它设备互联

小米路由器的Mesh组网设置非常简单:只需要在上网设置 -> 工作模式切换中修改工作模式即可。

mesh1

根据您的实际需求,选择无线中继工作模式有线中继工作模式

mesh2

其中,无线中继是通过连接现有Wi-fi信号,通过无线网形式加入中继节点,此时路由器会扩展原有Wi-fi信号,而不会创建一个新的信号有线中继则是通过有线网络作为中继,此时路由器拥有独立的Wi-fi信号,不过连接该Wi-fi的设备将与主网络在同一网段内

同时无论选择哪种方式,你都可以通过路由器LAN口分享网络,并且与主网络在同一网段内。

安装ShellClash

Caution

请注意,操作这一步前务必打开路由器的SSH功能

Warning

无论您的小米路由器是主节点还是Mesh节点,都不影响您安装ShellClash,只是主路由安装的灵活性不如Mesh节点。

安装

Caution

clash等相似关键词已被屏蔽,所以软件库名称的clash被改为了crash,我们安装的是ShellCrash

sh -c "$(curl -kfsSl https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master/install.sh)" && source /etc/profile &> /dev/null

如果安装失败,可以尝试不同的安装源。

  • fastgit.org

    export url='https://raw.fastgit.org/juewuy/ShellClash/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
  • GitHub

    export url='https://raw.githubusercontent.com/juewuy/ShellClash/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null
  • JsDelivrCDN

    export url='https://fastly.jsdelivr.net/gh/juewuy/ShellClash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

运行安装命令后,会提示:

-------------------------------------------------------------------
请选择想要安装的版本:
 1 公测版(推荐)
 2 稳定版
 3 开发板
-------------------------------------------------------------------

请输入相应数字
>

推荐安装公测版,输入1

-------------------------------------------------------------------
请输入相应数字 > 1
最新版本:1.9.0release
-------------------------------------------------------------------
如遇问题请加TG群反馈:t.me/ShellClash
支持各种基于OpenWRT的路由器设备
支持Debian、Centos等标准Linux系统
-------------------------------------------------------------------
注意:安装ShellCrash至少需要预留约1MB的磁盘空间
检测到当前设备为小米官方系统,请选择安装位置
 1 安装到 /data 目录(推荐,支持软固化功能)
 2 安装到 /userdisk 目录(推荐,支持软固化功能)
 3 安装到自定义目录(不推荐,不明勿用!)
 0 退出安装
-------------------------------------------------------------------
请输入相应数字 > 1
目标目录/data 空间剩余:6.1M

确认安装?(1/0)
> 1

建议安装至/data目录下,输入1,然后确认安装,输入1

-------------------------------------------------------------------
请输入相应数字 > 1
目标目录/data 空间剩余:6.1M
确认安装?<1/0> > 1
-------------------------------------------------------------------
开始从服务器获取安装文件!
-------------------------------------------------------------------
########################################################### 100.0%
开始解压文件!
-------------------------------------------------------------------
ShellCrash 已经安装成功!
输入crash 命令即可管理!!!

root@XiaoQiang:~ crash

安装完毕后,使用命令crash打开。

配置

  1. 配置代理模式
-------------------------------------------------------------------
欢迎使用ShellCrash!                   版本:1.9.0release
Clash服务没有运行(纯净模式),未设置开机启动!
TG频道:https://t.me/ShellClash
-------------------------------------------------------------------
欢迎使用ShellCrash新手引导!
-------------------------------------------------------------------
请先选择你的使用环境:
(你之后依然可以在设置中更改各种配置)
-------------------------------------------------------------------
 1 路由设备配置局域网透明代理
 2 Linux设备仅配置本机代理
-------------------------------------------------------------------

请输入对应数字
> 1

> **全局代理**可以让当前设备下连接的所有设备均实现科学上网。

若你的设备是主路由,同时mesh组网了多台路由器,则全屋网络均可实现科学上网。

> **本机代理**仅使当前设备及与当前设备连接的设备实现科学上网,若子域下连接其他设备,则科学规则无效。

如:Mesh组网的局域网络,子路由及连接子路由的设备均无法科学上网。 如:WiFi信号扩大器下的设备无法实现科学上网。

  1. 存储空间配置
-------------------------------------------------------------------
检测到你的安装目录空间不足10M,是否开启小闪存模式?
开启后核心及数据库文件将被下载到内存中,这将占用一部分内存空间
每次开机后首次运行服务时都会自动的重新下载相关文件
-------------------------------------------------------------------

是否开启(1/0)
> 1

若开启,Crash的核心及数据库文件将被下载到设备内存中,这将占用一部分内存空间,且每次开机后首次运行服务时都会自动的重新下载相关文件。

如果你的设备可以扩展闪存,如小米路由器AX9000、小米万兆路由器,这里可以选择0;

若你的设备无法扩展闪存,建议选择1。

  1. 自动(定时)任务配置

推荐启用以下定时任务:

-------------------------------------------------------------------
启用推荐的自动任务配置?这包括:
-------------------------------------------------------------------
每隔10分钟自动保存面板配置
服务启动后自动同步ntp时间
在每周3的3点整更新订阅并重启服务
-------------------------------------------------------------------
是否启用?(1/0)> 1
任务【运行时每10分钟自动保存面板配置】添加成功!
任务【服务启动后自动同步ntp时间】添加成功!
任务【在每周3的3点整更新订阅并重启服务】添加成功!
-------------------------------------------------------------------
  1. 软固化

这一步我们可以不需要,因为前面配置了ssh固化

-------------------------------------------------------------------
检测到为小米路由设备,启用软固化可防止路由器升级后丢失SSH
是否启用软固化功能?(1/0)> 0
-------------------------------------------------------------------
  1. 代理配置文件
-------------------------------------------------------------------
是否导入配置文件?(这是运行前的最后一步)
你必须拥有一份yaml格式的配置文件才能运行服务!
-------------------------------------------------------------------
现在开始导入?(1/0)> 1
-------------------------------------------------------------------
ShellCrash配置文件管理
-------------------------------------------------------------------
 1 在线生成配置文件
 2 在线获取完整配置文件
 3 本地生成providers配置文件
 4 本地上传完整配置文件
 5 设置自动更新
 6 自定义配置文件
 7 更新配置文件
 8 还原配置文件
-------------------------------------------------------------------

请输入对应数字
> 2

这一步可以根据需要来完成,不过路由器ssh传文件很麻烦,所以建议通过链接导入。

您的机场一般都会有一个链接一键导入配置,使用那个链接即可。

若你的订阅链接为 SS/SSR/VMESS 格式, 使用https://victorqr.github.io/来进行订阅链接转换

参考以下操作完成配置导入 -> 服务启动 -> 本地前端Dashboard安装

请输入对应数字 > 2
-------------------------------------------------------------------
此功能可能会导致一些bug!!!
强烈建议你使用在线生成配置文件功能!
继续后如出现任何问题,请务必自行解决,一切提问恕不受理!
-------------------------------------------------------------------
我确认遇到问题可以自行解决[1/0] > 1
-------------------------------------------------------------------
仅限导入完整的配置文件链接!!!
有流媒体需求,请使用6-1在线生成配置文件功能!!!
如不了解机制,请使用6-1在线生成配置文件功能!!!
如遇任何问题,请使用6-1在线生成配置文件功能!!!
此功能可能会导致部分节点无法连接或者规则覆盖不完整!!!
-------------------------------------------------------------------
0 返回上级菜单
-------------------------------------------------------------------
请输入完整链接 > https://<你的梯子配置文件导入链接>
-------------------------------------------------------------------
很好!现在只需要执行启动就可以愉快的使用了!
-------------------------------------------------------------------
立即启动服务?(1/0) > 1
-------------------------------------------------------------------
未找到 clash 核心,正在下载!
########################################################### 100.0%
未找到 GeoIP 数据库,正在下载!
########################################################### 100.0%
服务已启动!
-------------------------------------------------------------------
请输入对应数字 > 0
-------------------------------------------------------------------
 1 启动/重启 服务
 2 内核功能设置
 3 停止内核服务
 4 内核启动设置
 5 配置自动任务
 6 导入配置文件
 7 内核进阶设置
 8 其他工具
 9 更新/卸载
-------------------------------------------------------------------
0 退出脚本

请输入对应数字
> 9
-------------------------------------------------------------------
欢迎使用更新功能:
-------------------------------------------------------------------
当前目录(/data/ShellCrash )剩余空间:5.9M
-------------------------------------------------------------------
 1 更新管理脚本          1.9.0release >1.9.0release
 2 切换内核文件          v1.7.1 >v1.7.1
 3 更新数据库文件           >20240423
 4 安装本地Dashboard 面板
 5 安装/更新本地根证书文件
 6 查看PAC 自动代理配置
-------------------------------------------------------------------
 7 切换安装源 及安装脚本
 8 配置自动更新
 9 卸载ShellCrash
-------------------------------------------------------------------
99 鸣谢!
-------------------------------------------------------------------
 0 返回上级菜单
-------------------------------------------------------------------
-------------------------------------------------------------------
请输入对应数字 > 4
-------------------------------------------------------------------
安装本地版dashboard管理面板
打开管理面板的速度更快且更稳定
-------------------------------------------------------------------
请选择面板安装类型:
-------------------------------------------------------------------
 1 安装Yacd面板 (约1.1mb)
 2 安装Yacd-Meta魔改面板 (约1.5mb)
 3 安装MetaXD面板 (约1.5mb)
 4 安装基础面板 (约500kb)
 5 安装Meta基础面板 (约800kb)
 9 卸载本地面板
 0 返回上级菜单

请输入对应数字
> 1

建议安装Yacd面板。该面板具有自动测速,分配最佳节点功能。

安装完成后,通过http://192.168.31.1:9999/ui访问面板。

建议您将面板收藏到浏览器书签,之后就可以方便管理路由器代理了。

将梯子环境打通至整个网络

如果梯子在主路由节点的路由器,无需任何配置。

如果梯子在Mesh中继节点的路由器,需要修改防火墙允许LAN转发

修改防火墙配置,允许LAN转发

使用ssh连接到路由器,并且修改防火墙配置

# 连接到路由器
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.31.1

# 使用vim编辑防火墙配置
vim /etc/config/firewall

防火墙配置大致如下, 将namelanforward选项那里改为ACCEPT

config defaults
        option syn_flood '0'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option drop_invalid 'o'
        option disable_ipv6 '1'

config zone
        option name 'lan'
        option network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

保存,重启防火墙:

/etc/init.d/firewall restart

然后重启ShellCrash: 输入crash命令打开菜单,输入数字1重启服务:

配置主路由器的DHCP,设置路由地址为安装了ShellCrash的路由器(代理服务器)

修改主路由器DHCP中的Router(路由器,也有的叫Gateway,即网关),改为安装了ShellCrash的路由器的局域网IP,同时, 主DNS地址也改为该IP,副DNS可以自由指定,保存后等待主路由器响应,然后就可以通过主路由器来爬梯子了。


>
CC BY-NC-SA 4.0 2023-PRESENT © Vincent-the-gamer | Version: v1.1.1