mihomo-cli 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/README.md +44 -42
- package/index.js +134 -160
- package/package.json +1 -1
- package/src/config.js +32 -35
- package/src/kernel.js +16 -12
- package/src/overwrite.js +8 -8
- package/src/process.js +57 -91
- package/src/subscription.js +10 -40
- package/src/utils.js +101 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.4] - 2026-04-07
|
|
4
|
+
|
|
5
|
+
### 修复
|
|
6
|
+
|
|
7
|
+
- **路径安全**:`getLogPathByName()` 增加 `isPathUnderDir()` 校验,防止潜在的路径遍历风险
|
|
8
|
+
- **错误提示**:覆写配置文件解析失败时显示警告日志,不再静默忽略
|
|
9
|
+
|
|
10
|
+
### 重构
|
|
11
|
+
|
|
12
|
+
- **代码结构**:工具函数(`sleepSync`、`formatBytes`、`isProcessRunning` 等)提取到 `utils.js` 模块,简化各模块依赖
|
|
13
|
+
- **命名规范**:统一函数命名为全称单数
|
|
14
|
+
- `autoUpdateStaleSubscriptions` → `autoUpdateStaleSubscription`
|
|
15
|
+
- `applyOverwrites` → `applyOverwrite`
|
|
16
|
+
- `loadOverwriteFiles` → `loadOverwriteFile`
|
|
17
|
+
- `listOverwriteFiles` → `listOverwriteFile`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## [1.2.3] - 2026-04-07
|
|
22
|
+
|
|
23
|
+
### 优化
|
|
24
|
+
|
|
25
|
+
- **简短帮助**:大幅精简,只列出最常用命令,增加 `mihomo help` 提示
|
|
26
|
+
- **性能**:
|
|
27
|
+
- settings 读取增加内存缓存,减少重复 JSON 解析
|
|
28
|
+
- 内核版本增加缓存,避免重复执行 `mihomo -v`
|
|
29
|
+
- `sleepSync()` 改用 `Atomics.wait` 而非 `execSync('sleep')`,减少子进程开销
|
|
30
|
+
|
|
31
|
+
### 重构
|
|
32
|
+
|
|
33
|
+
- 精简模块导出接口,移除不必要的内部函数导出
|
|
34
|
+
- 新增 `formatProxySummary()` 复用函数(消除 3 处重复代码)
|
|
35
|
+
- `pickSingleSubscription()` 移除多余参数
|
|
36
|
+
- 统一代码风格:数组/条件表达式换行风格、`cmdUi` → `cmdUI` 命名一致性
|
|
37
|
+
|
|
38
|
+
### 文档
|
|
39
|
+
|
|
40
|
+
- README 修复:GitHub 链接、重复段落、`profile-update-interval` 格式
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
3
44
|
## [1.2.2] - 2026-04-05
|
|
4
45
|
|
|
5
46
|
### 优化
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ npm install -g mihomo-cli
|
|
|
28
28
|
### 方式二:源码安装
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
git clone https://github.com/
|
|
31
|
+
git clone https://github.com/adaex/mihomo-cli.git
|
|
32
32
|
cd mihomo-cli
|
|
33
33
|
npm install
|
|
34
34
|
npm link
|
|
@@ -79,49 +79,50 @@ mihomo ui yacd # YACD
|
|
|
79
79
|
|
|
80
80
|
### 核心命令
|
|
81
81
|
|
|
82
|
-
| 命令
|
|
83
|
-
|
|
84
|
-
| `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式
|
|
85
|
-
| `mihomo stop`
|
|
86
|
-
| `mihomo status`
|
|
87
|
-
| `mihomo log`
|
|
88
|
-
| `mihomo logs`
|
|
89
|
-
| `mihomo logs <编号>`
|
|
82
|
+
| 命令 | 说明 |
|
|
83
|
+
| --------------------------- | ---------------------------------------------------------------------------- |
|
|
84
|
+
| `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式 |
|
|
85
|
+
| `mihomo stop` | 停止代理 |
|
|
86
|
+
| `mihomo status` | 查看运行状态 |
|
|
87
|
+
| `mihomo log` | 实时查看日志 (`-o` 用系统编辑器打开) |
|
|
88
|
+
| `mihomo logs` | 列出所有日志(当前 + 历史归档) |
|
|
89
|
+
| `mihomo logs <编号>` | 查看指定日志(`0`=当前日志,`1+`=归档日志,支持 `-n N` 指定行数、`-o` 打开) |
|
|
90
90
|
|
|
91
91
|
### 订阅管理
|
|
92
92
|
|
|
93
|
-
| 命令
|
|
94
|
-
|
|
95
|
-
| `mihomo sub
|
|
96
|
-
| `mihomo sub add <url> [name]` | 添加订阅
|
|
97
|
-
| `mihomo sub update`
|
|
98
|
-
| `mihomo sub update <name>`
|
|
99
|
-
| `mihomo sub use <name>`
|
|
100
|
-
| `mihomo sub web [name]`
|
|
93
|
+
| 命令 | 说明 |
|
|
94
|
+
| ----------------------------- | -------------------------------------- |
|
|
95
|
+
| `mihomo sub` | 列出所有订阅(含流量、到期时间) |
|
|
96
|
+
| `mihomo sub add <url> [name]` | 添加订阅 |
|
|
97
|
+
| `mihomo sub update` | 更新所有订阅 |
|
|
98
|
+
| `mihomo sub update <name>` | 更新指定订阅(支持模糊匹配) |
|
|
99
|
+
| `mihomo sub use <name>` | 设置默认订阅(支持模糊匹配,自动重启) |
|
|
100
|
+
| `mihomo sub web [name]` | 打开订阅页面(无参打开默认) |
|
|
101
101
|
|
|
102
102
|
### 覆写配置
|
|
103
103
|
|
|
104
|
-
| 命令
|
|
105
|
-
|
|
104
|
+
| 命令 | 说明 |
|
|
105
|
+
| ------------------------------ | -------------------------- |
|
|
106
106
|
| `mihomo ow` / `mihomo ow list` | 查看覆写配置状态和文件列表 |
|
|
107
|
-
| `mihomo ow on`
|
|
108
|
-
| `mihomo ow off`
|
|
107
|
+
| `mihomo ow on` | 启用覆写配置(自动重启) |
|
|
108
|
+
| `mihomo ow off` | 禁用覆写配置(自动重启) |
|
|
109
109
|
|
|
110
110
|
### 其他命令
|
|
111
111
|
|
|
112
|
-
| 命令
|
|
113
|
-
|
|
114
|
-
| `mihomo kernel [镜像\|--no-mirror]` | 更新内核
|
|
115
|
-
| `mihomo ui [zash\|dash\|yacd]`
|
|
116
|
-
| `mihomo dir`
|
|
117
|
-
| `mihomo dir open [target]`
|
|
118
|
-
| `mihomo reset [--full]`
|
|
119
|
-
| `mihomo version`
|
|
120
|
-
| `mihomo help`
|
|
112
|
+
| 命令 | 说明 |
|
|
113
|
+
| ----------------------------------- | ------------------------------------------------------- |
|
|
114
|
+
| `mihomo kernel [镜像\|--no-mirror]` | 更新内核 |
|
|
115
|
+
| `mihomo ui [zash\|dash\|yacd]` | 打开 Web UI |
|
|
116
|
+
| `mihomo dir` | 显示数据目录位置 |
|
|
117
|
+
| `mihomo dir open [target]` | 打开指定目录(`root`, `subs`, `logs`, `overwrites` 等) |
|
|
118
|
+
| `mihomo reset [--full]` | 重置用户数据 (--full 同时删除内核) |
|
|
119
|
+
| `mihomo version` | 显示版本信息 |
|
|
120
|
+
| `mihomo help` | 显示帮助信息 |
|
|
121
121
|
|
|
122
122
|
### 命令别名
|
|
123
123
|
|
|
124
124
|
以下任意命令等效:
|
|
125
|
+
|
|
125
126
|
- `mihomo-cli` (原名)
|
|
126
127
|
- `mihomo`
|
|
127
128
|
- `mmc`
|
|
@@ -204,12 +205,12 @@ mihomo kernel --no-mirror
|
|
|
204
205
|
|
|
205
206
|
覆写配置支持以下特殊操作符:
|
|
206
207
|
|
|
207
|
-
| 语法
|
|
208
|
-
|
|
209
|
-
| `key!`
|
|
210
|
-
| `+key`
|
|
211
|
-
| `key+`
|
|
212
|
-
| `<+key>` | 键名以 `+` 开头时转义
|
|
208
|
+
| 语法 | 作用 | 示例 |
|
|
209
|
+
| -------- | ------------------------------ | -------------------- |
|
|
210
|
+
| `key!` | 强制覆盖整个对象(不深度合并) | `dns!`: { ... } |
|
|
211
|
+
| `+key` | 数组前置插入 | `+proxies`: [...] |
|
|
212
|
+
| `key+` | 数组追加 | `rules+`: [...] |
|
|
213
|
+
| `<+key>` | 键名以 `+` 开头时转义 | `<+.google.cn>`: ... |
|
|
213
214
|
|
|
214
215
|
### 示例
|
|
215
216
|
|
|
@@ -225,18 +226,18 @@ dns!:
|
|
|
225
226
|
|
|
226
227
|
# 追加规则
|
|
227
228
|
rules+:
|
|
228
|
-
-
|
|
229
|
+
- 'DOMAIN-SUFFIX,example.com,DIRECT'
|
|
229
230
|
```
|
|
230
231
|
|
|
231
232
|
## Web UI
|
|
232
233
|
|
|
233
234
|
内置三个常用 Web UI:
|
|
234
235
|
|
|
235
|
-
| 名称 | 地址
|
|
236
|
-
|
|
237
|
-
| zash | https://board.zash.run.place
|
|
238
|
-
| dash | https://metacubex.github.io/metacubexd | MetaCubeX 官方 UI
|
|
239
|
-
| yacd | https://yacd.metacubex.one
|
|
236
|
+
| 名称 | 地址 | 说明 |
|
|
237
|
+
| ---- | ---------------------------------------- | -------------------- |
|
|
238
|
+
| zash | <https://board.zash.run.place> | 现代简洁界面(默认) |
|
|
239
|
+
| dash | <https://metacubex.github.io/metacubexd> | MetaCubeX 官方 UI |
|
|
240
|
+
| yacd | <https://yacd.metacubex.one> | 经典 YACD 界面 |
|
|
240
241
|
|
|
241
242
|
## 故障排除
|
|
242
243
|
|
|
@@ -261,6 +262,7 @@ sudo pkill -9 mihomo
|
|
|
261
262
|
### 端口被占用
|
|
262
263
|
|
|
263
264
|
默认端口(取决于订阅配置):
|
|
265
|
+
|
|
264
266
|
- Mixed 端口: `7890`
|
|
265
267
|
- 外部控制器: `127.0.0.1:9090`
|
|
266
268
|
|