LMLPHP后院

红米 AX6 解锁以及 Clash 折腾记录技术

maybe yes 发表于 2022-10-30 20:09

记录 Redmi AX6 科学上网折腾记录,据说 AX6 停产后涨价了。

先讲讲,为什么是 AX6,因为我之前为了实现 WiFi Mesh,所以买了它,这一买就荒废了一年,因为 Mesh 有一些 Bug,导致端口转发不能用,信号也没有什么改善,所以,这个花了不少钱买个东西搁置了一年,期间差一点卖掉了。

再讲一下完成的感受,两个字,真爽。我以前虽然能科学上网,但是多多少少都有一点点麻烦,对于一些古董机器没有路由层面的实现,仍然是不行的。这次完成了之后,我觉得可以打分 90 分,以前的体验只能是 80 分。就像我以前讲的,科学上网是不完美的,因为多多少少会误伤,某些 APP 会异常,所以比较完美的解决方案是,两个路由,一个原始网络,一个科学网络。

其实,整个过程,真的折腾,我从下午开始弄,第二天下午两点完成。整整一天的时间,我每一步都非常谨慎,会认真反复的查看文档,记录过程,并不是求快。另外,我折腾的原因是,我的设备和硬件条件不算好,以至于很多时候我是不断的切换无线网络来管理路由器,这样也埋下了问题,其实效率也是低下的。

我觉得整个的过程,大概分为两个时期,第一个是解锁 SSH 和 Telnet,另一个是安装 Clash。其实 Clash 的命令行程序文件真的迷你,我并没有按照前人的经验来安装管理 UI,发现整个也就大了几兆的空间,核心 Clash 程序几百KB,太完美了,并且能够自动的选择有用的节点。

我主要参考了这个帖子,https://qust.me/post/hong-mi-ax6-jie-suo-ssh-an-zhuang-shi-yong-shellclash-jiao-cheng/,虽然帖子已经过时了,但是很有参考价值。帖子里面有另外一个帖子:https://xn--m80a.ml/#/posts/2。

很重要的一个链接 https://github.com/shell-script/unlock-redmi-ax3000/archive/refs/heads/master.zip 下载这个包,这个包里面有固件,有 wireless.sh,有后面的 SSH hack 固化,唯一没有的就是 Clash,所以第二个重要链接是:https://github.com/juewuy/ShellClash/archive/refs/tags/1.6.3.tar.gz,下载这个包后,使用 tar 解压,将它里面的 ShellClash-1.6.3/bin/clashfm.tar.gz 下载下来,准备这么多东西,就够了。

解锁 AX6 SSH 的方法,如网上所说的,一定要有一个 OpenWrt 路由器。当然这个 OpenWrt 是用来折腾的,最后的 Wireless.sh 脚本会修改它,所以这个 OpenWrt 一定不能用现有的,一定得临时弄一个,大不了折腾坏了不要紧的那种。

而我,不喜欢虚拟机,我也不喜欢在现有的电脑上装太多软件,于是我选择使用 U 盘做一个 OpenWrt 路由器,临时用一用。其实我在上面列举的那两个重要的链接,是不够的,这里还需要一个,就是 OpenWrt 的固件链接。至于为什么没有将 OpenWrt 固件链接放在上面,是因为后面的折腾,让我忘记前面其实也挺痛苦的。

我现在写博客,已经不太喜欢放图片了,但是,这篇文章,我还是要放一放。

我们到了 OpenWrt 的固件下载页面 https://downloads.openwrt.org/releases/。我选择了 22.03.2 最新版,进去,里面有 packages 和 targets,我们进入 targets,因为用电脑安装,我选择了 x86/,进入,再进入 64 文件夹,然后出现了下面的文件列表。

Index of (root) / releases / 22.03.2 / targets / x86 / 64 /
Image Files
These are the image files for the x86/64 target. Check that the sha256sum of the file you downloaded matches the sha256sum below.
Shortened image file names below have the same prefix: openwrt-22.03.2-x86-64-...

Image for your Device	sha256sum	File Size	Date
generic-ext4-combined-efi.img.gz	e94da64bf897e005447fffcb8bf3e7700c5169e00ada7d1571dacd0382ecd710	11757.5 KB	Sun Oct 16 01:16:26 2022
generic-ext4-combined.img.gz	d5c93fe92ab722d12942d864ad33bd2f428f61f16734e64eb778b401e8ad3a62	11576.0 KB	Sun Oct 16 01:16:25 2022
generic-ext4-rootfs.img.gz	e8d170956597ce8a5887d943887743c71da735dc8bad08c3ad90e2ec6b2595b6	6081.5 KB	Sun Oct 16 01:16:24 2022
generic-kernel.bin	4e20c48acf9a12bd730bc907daa5386a1463c7565a6598e50670ff051bef7ac6	5110.2 KB	Sun Oct 16 01:15:40 2022
generic-squashfs-combined-efi.img.gz	a9e53fa5b60ce0e4d8ccd6ab93cfe59a41c91fae830d73dedd1e742f9163774c	10507.9 KB	Sun Oct 16 01:16:30 2022
generic-squashfs-combined.img.gz	3b0b4b34ebbfedb2eedd22747727362d54d0de8ec110f1bf6da40338106915af	10329.6 KB	Sun Oct 16 01:16:30 2022
generic-squashfs-rootfs.img.gz	80201052b7da7dff3ba1709cd39faef01ef6cb34b4226de71c4e6c775304dbb9	4830.7 KB	Sun Oct 16 01:16:28 2022
rootfs.tar.gz	5dbc55591fd554e6075a9bf4cfb4ba4780720568a37327add1f4963794f713d2	4542.2 KB	Sun Oct 16 01:15:45 2022
Supplementary Files
These are supplementary resources for the x86/64 target. They include build tools, the imagebuilder, sha256sum, GPG signature file, and other useful files.

Filename	sha256sum	File Size	Date
kmods/	-	-	Sun Oct 16 01:22:44 2022
packages/	-	-	Sun Oct 16 01:22:43 2022
config.buildinfo	086152f302c6ffefe8a496f232c845f189669275e2f4506fd5bfa4745f1c000c	2.2 KB	Sun Oct 16 01:20:48 2022
feeds.buildinfo	86136a4aa1d80d9cfc927b30227cf447dfa36ba46ab6eaecdc9fa6d65d64edb9	0.3 KB	Sun Oct 16 01:20:48 2022
kernel-debug.tar.zst	3ee7da134802a58453c089ac1165e6ad967387299c325e957fbe1c46f17d7f07	94014.8 KB	Sun Oct 16 01:15:39 2022
llvm-bpf-13.0.0.Linux-x86_64.tar.xz	921c650aff08b40cd86c019a83dd7d0ceb72aea32d00333aab10cce20d38fe3b	37509.0 KB	Sun Oct 16 01:16:24 2022
openwrt-22.03.2-x86-64.manifest	7b70795a8ccd98b8a46475ed906e1e917a281318c8a18172dfa76f3b5cacadea	3.9 KB	Sun Oct 16 01:16:30 2022
openwrt-imagebuilder-22.03.2-x86-64.Linux-x86_64.tar.xz	077b94838df372c5758f6879a4b5e41bb77b4ea37f5114040c92d72ab7c3e0fb	40216.1 KB	Sun Oct 16 01:18:01 2022
openwrt-sdk-22.03.2-x86-64_gcc-11.2.0_musl.Linux-x86_64.tar.xz	d5718b743004f6b16996c439f35833c89e1a38b056c599b2917f22b24dc467f8	162757.7 KB	Sun Oct 16 01:20:18 2022
openwrt-toolchain-22.03.2-x86-64_gcc-11.2.0_musl.Linux-x86_64.tar.xz	832362d33e7e3c60b1be8ee7c77e6200773d455f6ca06160144c9fe68145842f	48786.4 KB	Sun Oct 16 01:16:19 2022
profiles.json	4f545534f7e89aa184cf3b7b57d3a6ca287eab99ccc4d7547da46af46125e1f4	2.4 KB	Sun Oct 16 01:21:07 2022
sha256sums	-	114.8 KB	Sun Oct 16 01:21:31 2022
sha256sums.asc	-	0.9 KB	Sun Oct 16 01:22:43 2022
sha256sums.sig	-	0.1 KB	Sun Oct 16 01:22:43 2022
version.buildinfo	24d8d7439fd90d8cf7edebf0c45a9f652100c21e73a15aed8dfbaee44e4e15f9	0.0 KB	Sun Oct 16 01:20:48 2022

暂且不说上面的文件夹很深,很多人根本不知道进入哪个。现在找到了目的地,我请问你,你说下载哪一个?反正我是不知道,我折腾了好久,终于下载对了。

正确的是选择第一个 generic-ext4-combined-efi.img.gz,下载后的文件名是:openwrt-22.03.2-x86-64-generic-ext4-combined-efi.img.gz。我其实没有直接将这个 dd 到 U 盘,我是解压之后再写入 U 盘的,测试可以正常的使用。不知道不解压行不行?

再说说我的情况,我是用 U盘 插在电脑上启动,用一根网线插在路由器的 LAN 口,另一口连接电脑的网口,这里好像必须要借助路由器,因为我是用无线管理的,手机啊,或者另外一台电脑都行,你如果 OpenWrt 本身就是路由器的话,那可能会方便很多。下面展示一下我遇到的错误:

{"msg":"wifi connect faild!","code":1655}


{"msg":"对端路由器不支持此功能","code":1646}


{"code":401,"msg":"Invalid token"}


{"msg":"connect succces!","code":0}

{"token":"; nvram set ssh_en=1; nvram set uart_en=1; nvram set boot_wait=on; nvram commit; uci set wireless.@wifi-iface[0].key=`mkxqimage -I`; uci commit; sed -i 's/channel=.*/channel=\u0022debug\u0022/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;","code":0}

你们看看我的错误,就知道我有多折腾。

下面文字讲解步骤,U盘系统启动后,连接好路由器,真正的 OpenWrt 完成,如下图所示:

红米 AX6 解锁以及 Clash 折腾记录

红米 AX6 解锁以及 Clash 折腾记录

其实官方的固件,没有科学上网功能,只不过是一个更加专业的路由器。

我们准备好了 OpenWrt,接下来就是登录 AX6 管理界面,上传前面下载好的固件 miwifi_ra69_firmware_45a77_1.0.18.bin。这个固件一定要传输到可以管理 AX6 的那台机器上,可以是手机,也可以是电脑,然后就是降级固件,这个没什么好讲的,无非就是花时间,需要重启。降级了固件之后,我们需要登录到 OpenWrt 路由器,因为我是电脑安装,可以直接在命令行处理。至于怎么将 Wireless.sh 文件传输到 OpenWrt,我觉得很多办法,我现在都有点忘记了,我好像是拿 U 盘直接拷贝过去了的,在终端执行 sh /root/wireless.sh。现在 OpenWrt 这边完成了。我遇到了一些问题,我的 OpenWrt 执行完成 wireless 文件后并没有改变 SSID 和 密码,我是手动改的,大家注意了,这才有我上面遇到的报错。wireless 执行过程:

root@OpenWrt:~# sh /tmp/wireless.sh  
[Warning] Please make sure your router has wireless support!
[Warning] Please make sure your router is restored to factory settings (not configured)!
[Warning] Please make sure you've backed up the network and wireless settings!
[Warning] Please make sure you've connected the router via *wired ethernet*!
[Warning] Running this script will change your *network* settings!
Use Ctrl+C to exit or press enter key to continue...

[Info] Adding xqsystem controller...
[Info] Changing network settings...
+ uci set 'dhcp.lan.ignore=1'
+ uci set 'network.lan.ipaddr=169.254.31.1'
+ uci set 'wireless.@wifi-iface[0].ssid=MEDIATEK-ARM-IS-GREAT'
uci: Entry not found
+ uci set 'wireless.@wifi-iface[0].encryption=psk2'
uci: Entry not found
+ uci set 'wireless.@wifi-iface[0].key=ARE-YOU-OK'
uci: Entry not found
+ uci set 'wireless.@wifi-iface[0].mode=ap'
uci: Entry not found
+ uci set 'wireless.@wifi-iface[0].network=LAN lan'
uci: Entry not found
+ uci -q commit
+ set +x
[Success] All settings are applied.

[Info] Please now disconnect from this router, and connect to your Xiaomi/Redmi router.
                                                                                                                                                                                       
[Info] For Xiaomi AX6000/AX9000:
       Open your browser, access the following URL:
         http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/extendwifi_connect_inited_router?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK&admin_username=root&admin_password=admin&admin_nonce=xxx

[Info] For Redmi AX6 AX3000:
       Open your browser, access the following URL:
         http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/extendwifi_connect?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK
       If the return code is 0, then access this URL:
         http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx

[Info] If the return code is 0, now you can connect to your router via SSH.
[Info] SSH login password is 5GHz wireless connection password.

[Success] Thanks for usage.
          Staff: yyjdelete, Robert Marko, Tianling Shen

[Warning] Restarting network...

接下来登录 AX6,每次登录后的 stok 值都不一样,按照最后一次的来。接下来两次请求:

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/extendwifi_connect?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK

我是直接手动将 OpenWrt 的路由器名字和密码改成了上面的 MEDIATEK-ARM-IS-GREAT 和 ARE-YOU-OK。至于为什么会这样,可能是因为我是电脑外接路由器,这个脚本没有那么厉害。当然它可能还做了一些其他的事情。

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx

将 STOK 以及尖括号修改为正确的值后,依次请求。不出意外,两次都是 code: 0,这样 SSH 会被打开。刷新 AX6 路由器首页,点击查看 WiFi 密码那里看到的就是 SSH 的密码,网上也有完成了这一步之后再通过 SN 和一个在线的服务网站实现获取 SSH 密码的,这个我不是很清楚怎么回事,可能前面的步骤不同导致他们需要一个在线网站和 SN 来计算。

接下来,我们可以 SSH root@AX6 来登录。类似如下:

lindeMBP:Downloads lin$ ssh root@192.168.30.1
The authenticity of host '192.168.30.1 (192.168.30.1)' can't be established.
RSA key fingerprint is SHA256:1OtFFLWivCqc40xh96DoxLT9tt5VkUwERil2hkbuIdk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.30.1' (RSA) to the list of known hosts.
root@192.168.30.1's password:


BusyBox v1.25.1 (2021-07-08 08:49:39 UTC) built-in shell (ash)

 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


root@XiaoQiang:~#
root@XiaoQiang:~#
root@XiaoQiang:~# df -h
Filesystem                Size      Used Available Use% Mounted on
mtd:ubi_rootfs           23.0M     23.0M         0 100% /
tmpfs                   196.5M    744.0K    195.8M   0% /tmp
ubi1_0                   23.1M      2.3M     19.6M  11% /data
ubi1_0                   23.1M      2.3M     19.6M  11% /userdisk
mtd:ubi_rootfs           23.0M     23.0M         0 100% /userdisk/data
ubi1_0                   23.1M      2.3M     19.6M  11% /etc
ubi1_0                   23.1M      2.3M     19.6M  11% /ini
tmpfs                   512.0K     28.0K    484.0K   5% /dev
mtd:ubi_rootfs           23.0M     23.0M         0 100% /userdisk/appdata/chroot_file/lib
mtd:ubi_rootfs           23.0M     23.0M         0 100% /userdisk/appdata/chroot_file/usr/lib
root@XiaoQiang:~# free -m
             total       used       free     shared    buffers     cached
Mem:        402472     270444     132028        796      16384      60064
-/+ buffers/cache:     193996     208476
Swap:            0          0          0
root@XiaoQiang:~# free
             total       used       free     shared    buffers     cached
Mem:        402472     270336     132136        796      16384      60068
-/+ buffers/cache:     193884     208588
Swap:            0          0          0

后面是备份步骤:

mkdir /tmp/syslogbackup/
dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9

接下来 SSH hack 固化:

scp ax3000.sh root@192.168.31.1:/etc/ax3000.sh
scp fuckax3000 root@192.168.31.1:/etc/fuckax3000

sh /etc/ax3000.sh unlock

sh /etc/ax3000.sh hack

我在执行 unlock 命令之后,路由器完全失联了,没有了 WiFi,急忙之下,以为变砖了,还重置了几次,结果还没有 WiFi,如果是使用有线就没有这个问题了。我现在想到了一点,如果将两个命令连在一起执行不知道行不行?

最后在通过网线的情况下,使用 telnet 登录了。然后执行 hack ,WiFi 回来了。我在网上找到了和我一样的经历的帖子:https://www.right.com.cn/forum/thread-4684135-1-1.html。

然后,就是 AX6 升级,升级,升级,当然你也可以不升级。升级之后 SSH 自然又不行了,但是 Telnet 还在。看看路由器默认开了多少端口:

➜  ~ telnet 192.168.31.1
Trying 192.168.31.1...
Connected to 192.168.31.1.
Escape character is '^]'.



BusyBox v1.25.1 (2020-08-19 02:55:57 UTC) built-in shell (ash)

 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


root@XiaoQiang:/# 
root@XiaoQiang:/# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       in out 
tcp        0      0 0.0.0.0:8098            0.0.0.0:*               LISTEN       0 0 
tcp        0      0 0.0.0.0:8999            0.0.0.0:*               LISTEN       0 0 
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN       0 0 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN       0 0 
tcp        0      0 0.0.0.0:784             0.0.0.0:*               LISTEN       0 0 
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN       0 0 
tcp        0      0 192.168.31.1:53         0.0.0.0:*               LISTEN       0 0 
tcp        0      0 127.0.0.1:8920          0.0.0.0:*               LISTEN       0 0 
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN       0 0 
tcp        0      0 ::1:53                  :::*                    LISTEN       0 0 
tcp        0      0 :::23                   :::*                    LISTEN       0 0 
root@XiaoQiang:/# 
root@XiaoQiang:/# 
root@XiaoQiang:/# ls /etc
TZ                    dnsmasq.d             inittab               openwrt_release       rc.local              sysstat
ath                   dropbear              intercept_wlist       openwrt_version       remove.conf           sysupgrade.conf
banner                e2fsck.conf           iproute2              opkg                  resolv.conf           traffic.d
banner.failsafe       easy-rsa              iptv                  opkg.conf             security              uci-defaults
board.d               ethers                iwevent.d             os-release            services              udhcpc.user
board.json            filesystems           lbd.config-mesh       parentalctl           shadow                user_password.txt
clear.sh              firewall.d            lbd.config-router     passwd                shadow-               wireless.ftm
config                firewall.user         localtime             passwd-               shells                with_os_1
crontabs              fstab                 modules-boot.d        ppp                   smartvpn              xattr.conf
custom_hosts          group                 modules.d             preinit               ssl                   xl2tpd
datacenterconfig      hosts                 mosquitto             profile               statisticsservice     xqDb
ddns                  hotplug-preinit.json  mtab                  protocols             sysctl.conf
device_info           hotplug.d             nginx                 rc.button             sysctl.d
diag.sh               hotplug.json          odhcp6c.user          rc.common             syslog-ng.conf
dnsmasq.conf          init.d                openvpn               rc.d                  syslog-ng.d
root@XiaoQiang:/# ls /etc/ax3000*
ls: /etc/ax3000*: No such file or directory
root@XiaoQiang:/# ls /etc/ax*
ls: /etc/ax*: No such file or directory
root@XiaoQiang:/# wget  http://192.168.31.14:8888/ax3000.sh 
Connecting to 192.168.31.14:8888 (192.168.31.14:8888)
wget: can't open 'ax3000.sh': Read-only file system
root@XiaoQiang:/# pwd
/
root@XiaoQiang:/# ls
bin       data      etc       lib       mnt       proc      rom       sbin      tmp       usr       www
cfg       dev       ini       lib64     overlay   readonly  root      sys       userdisk  var
root@XiaoQiang:/# cd /etc







root@XiaoQiang:/etc# ls -alrt ax*
ls: ax*: No such file or directory
root@XiaoQiang:/etc# wget  http://192.168.31.14:8888/ax3000.sh 
Connecting to 192.168.31.14:8888 (192.168.31.14:8888)
ax3000.sh            100% |******************************************************************************************************|  2944   0:00:00 ETA
root@XiaoQiang:/etc# wget  http://192.168.31.14:8888/fuckax3000
Connecting to 192.168.31.14:8888 (192.168.31.14:8888)
fuckax3000           100% |******************************************************************************************************| 71240   0:00:00 ETA
root@XiaoQiang:/etc# ls -alrt ax3000.sh 
-rw-r--r--    1 root     root          2944 Aug 19 11:25 ax3000.sh
root@XiaoQiang:/etc# ls -alrt fuckax3000 
-rw-r--r--    1 root     root         71240 Aug 19 11:25 fuckax3000
root@XiaoQiang:/etc# 
root@XiaoQiang:/etc# sh /etc/ax3000.sh hack
get ssh_en=0 telnet_en=0 uart_en=0
set ssh_en=1 telnet_en=1 uart_en=1
set ssh default usesrname:root password:2e2f3e19
mtd locked
[Success] Now you've got permanent Telnet/SSH access.

替换配置文件,找回 SSH,如下:

sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start

替换之前可以备份一下,其实就是将一行的判断内容替换成了 debug,其实替换成其他都可以,这样让 if 不能执行,以至于开启 SSH。

到此,SSH 完成。

后面开始 Clash,其实整个教程需要一个人懂一点技术知识,比如你不知道如何在你的情况下将文件传输给另外一个系统,你复制文件发现不能写入,等等这样的问题,还是得自己解决的。

其实 Clash 需要的很少,github 地址我已经给了,我刚开始直接将整个包给了脚本,发现存储不够,后来只给了里面的小包 clashfm.tar.gz,教程中的脚本已经不行了,所以,需要修改下脚本内容。

原来的脚步命令如下:

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

我们下载中间的 install.sh 后,做一些修改,然后:

sh install.sh && source /etc/profile &> /dev/null

修改的内容如下:

tarurl="http://192.168.30.217:9999/clashfm.tar.gz"

将 tarurl 改为自定义的一个 http 服务,如果有能力直接让程序读取这个文件也可以的,我懒得再折腾,就直接创建了一个 http 服务。

整个安装过程有点和前人的帖子不同,不能安装正式版,然后我没有安装 UI,因为 UI 也是下载不了包,我懒得折腾,直接不装 UI 了。

root@XiaoQiang:~# sh /tmp/install.sh && source /etc/profile &> /dev/null
***********************************************
**                 欢迎使用                  **
**                ShellClash                 **
**                             by  Juewuy    **
***********************************************
-----------------------------------------------
请选择想要安装的版本:
 1 Shellclash正式版
 2 Shellclash测试版
-----------------------------------------------
请输入相应数字 > 1
无法切换版本,尝试安装测试版!
最新版本:
-----------------------------------------------
如遇问题请加TG群反馈: t.me/ShellClash
支持各种基于openwrt的路由器设备
支持Debian、Centos等标准Linux系统
-----------------------------------------------
检测到当前设备为小米官方系统,请选择安装位置
 1 安装到/data目录(推荐,支持软固化功能)
 2 安装到USB设备(支持软固化功能)
 3 安装到/etc目录(不推荐)
 0 退出安装
-----------------------------------------------
请输入相应数字 > 1
目标目录/data空间剩余:19.2M
确认安装?(1/0) > 1
-----------------------------------------------
开始从服务器获取安装文件!
-----------------------------------------------
https://raw.githubusercontents.com/juewuy/ShellClash/bin/clashfm.tar.gz
################################################################################################################################################################################ 100.0%
-----------------------------------------------
开始解压文件!
clash.service
clash.sh
clashservice
getdate.sh
misnap_init.sh
start.sh
-----------------------------------------------
ShellClash 已经安装成功!
-----------------------------------------------
输入 clash 命令即可管理!!!                                                                                                                                                          
-----------------------------------------------
root@XiaoQiang:~# clash
-----------------------------------------------
欢迎使用ShellClash!            版本:
Clash服务没有运行(纯净模式),未设置开机启动!
TG频道:https://t.me/ShellClash
-----------------------------------------------
-----------------------------------------------
 欢迎使用ShellClash新手引导!
-----------------------------------------------
请先选择你的使用环境:
(你之后依然可以在设置中更改各种配置)
-----------------------------------------------
 1 路由设备配置局域网透明代理
 2 Linux设备仅配置本机代理
-----------------------------------------------
请输入对应数字 > 1
-----------------------------------------------
是否需要代理UDP流量(主要用于连接外服游戏)?
-----------------------------------------------
 1 不代理UDP流量(推荐)
 2 使用Tun虚拟网卡代理UDP流量
-----------------------------------------------
请输入对应数字 > 1
-----------------------------------------------
安装本地Dashboard面板,可以更快捷的管理clash内置规则!
-----------------------------------------------
需要安装本地Dashboard面板吗?(1/0) > 1
检查更新失败!请检查网络连接或切换安装源!
-----------------------------------------------                                                                                                                                        
安装本地版dashboard管理面板
打开管理面板的速度更快且更稳定
-----------------------------------------------
请选择面板安装类型:
-----------------------------------------------
 1 安装官方面板(约500kb)
 2 安装Meta面板(约800kb)
 3 安装Yacd面板(约1.1mb)
 4 安装Yacd-Meta魔改面板(约1.5mb)
 5 卸载本地面板
 0 返回上级菜单
请输入对应数字 > 3
-----------------------------------------------
请选择面板安装目录:
-----------------------------------------------
 1 在/data/clash/ui目录安装
 2 在/www/clash目录安装
-----------------------------------------------
 0 返回上级菜单
请输入对应数字 > 1
-----------------------------------------------
正在连接服务器获取安装文件…………
################################################################################################################################################################################ 100.0%
-----------------------------------------------
文件下载失败!
-----------------------------------------------
-----------------------------------------------
安装本地版dashboard管理面板
打开管理面板的速度更快且更稳定
-----------------------------------------------
请选择面板安装类型:
-----------------------------------------------
 1 安装官方面板(约500kb)
 2 安装Meta面板(约800kb)
 3 安装Yacd面板(约1.1mb)
 4 安装Yacd-Meta魔改面板(约1.5mb)
 5 卸载本地面板
 0 返回上级菜单
请输入对应数字 > 0
-----------------------------------------------
请输入正确的数字!
-----------------------------------------------
是否导入配置文件?(这是运行前的最后一步)
你必须拥有一份yaml格式的配置文件才能运行clash服务!
-----------------------------------------------
现在开始导入?(1/0) > 1
-----------------------------------------------
 欢迎使用导入配置文件功能!
-----------------------------------------------
 1 在线生成Clash配置文件
 2 导入Clash配置文件链接
 3 还原配置文件
 4 更新配置文件
 5 设置自动更新
-----------------------------------------------
请输入对应数字 > 1
-----------------------------------------------
 欢迎使用在线生成配置文件功能!
-----------------------------------------------
-----------------------------------------------
本功能依赖第三方在线subconverter服务实现,脚本本身不提供任何代理服务!
严禁使用本脚本从事任何非法活动,否则一切后果请自负!
-----------------------------------------------
支持批量(<=99)导入订阅链接、分享链接
-----------------------------------------------
 1 开始生成配置文件(原文件将被备份)
 2 设置节点过滤关键字
 3 设置节点筛选关键字
 4 选取在线配置规则模版
 5 选取在线生成服务器
 0 撤销输入并返回上级菜单
-----------------------------------------------
请直接输入第1个链接或对应数字选项 > https://t.com&_t=clash
-----------------------------------------------
本功能依赖第三方在线subconverter服务实现,脚本本身不提供任何代理服务!
严禁使用本脚本从事任何非法活动,否则一切后果请自负!
-----------------------------------------------
支持批量(<=99)导入订阅链接、分享链接
-----------------------------------------------
 1 开始生成配置文件(原文件将被备份)
 2 设置节点过滤关键字
 3 设置节点筛选关键字
 4 选取在线配置规则模版
 5 选取在线生成服务器
 0 撤销输入并返回上级菜单
-----------------------------------------------
请直接输入第2个链接或对应数字选项 > 1
-----------------------------------------------
正在连接服务器获取配置文件…………链接地址为:
https://api.dler.io/sub?target=clash&insert=true&new_name=true&scv=true&udp=true&exclude=&include=&url=https://t.com&_t=clash&config=https://github.com/juewuy/ShellClash/raw/master/rules/ShellClash.ini
可以手动复制该链接到浏览器打开并查看数据是否正常!
已成功获取配置文件!
-----------------------------------------------
很好!现在只需要执行启动就可以愉快的使用了!
-----------------------------------------------
立即启动clash服务?(1/0) > 1
-----------------------------------------------
未找到clash核心,正在下载!
未找到GeoIP数据库,正在下载!
clash服务已启动!
请使用 http://192.168.30.1:9999/ui 管理内置规则
-----------------------------------------------
其他设备可以使用PAC配置连接:http://192.168.30.1:9999/ui/pac
或者使用HTTP/SOCK5方式连接:IP{192.168.30.1}端口{7890}
-----------------------------------------------
欢迎使用ShellClash!            版本:
Clash服务正在运行(Redir模式),未设置开机启动!
当前内存占用:15448 kB,已运行:00小时00分03秒
TG频道:https://t.me/ShellClash
-----------------------------------------------
 1 启动/重启clash服务
 2 clash功能设置
 3 停止clash服务
 4 允许clash开机启动
 5 设置定时任务
 6 导入配置文件
 7 clash进阶设置
 8 其他工具
 9 更新/卸载
-----------------------------------------------
 0 退出脚本
请输入对应数字 > 4
-----------------------------------------------
已设置Clash开机启动!
-----------------------------------------------
欢迎使用ShellClash!            版本:
Clash服务正在运行(Redir模式),已设置开机启动!
当前内存占用:15448 kB,已运行:00小时00分38秒
TG频道:https://t.me/ShellClash
-----------------------------------------------
 1 启动/重启clash服务
 2 clash功能设置
 3 停止clash服务
 4 禁用clash开机启动
 5 设置定时任务
 6 导入配置文件
 7 clash进阶设置
 8 其他工具
 9 更新/卸载
-----------------------------------------------
 0 退出脚本
请输入对应数字 >
-----------------------------------------------
请输入正确的数字!
root@XiaoQiang:~#

整个的操作过程完成,实际过程中比较折腾,但是不管怎么样,只要 SSH 被解锁,clash 出问题,可以再次安装,安装完成后相比先前占用了大概 3M 空间。后面的心得就是,原来路由解锁这么爽!

2023-01-28 14:10:13 1674886212 0.115161