@cjwddz/mirror 2.0.3 → 2.0.5
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/dist/cli/cli-commands.d.ts +3 -1
- package/dist/cli/cli-commands.d.ts.map +1 -1
- package/dist/cli/cli-commands.js +113 -102
- package/dist/cli/cli-commands.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +51 -72
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/version.d.ts +5 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +24 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/core/http-tunnel-server.d.ts.map +1 -1
- package/dist/core/http-tunnel-server.js +4 -4
- package/dist/core/http-tunnel-server.js.map +1 -1
- package/dist/core/rule-manager.d.ts.map +1 -1
- package/dist/core/rule-manager.js +4 -6
- package/dist/core/rule-manager.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/file-sync.d.ts +0 -14
- package/dist/core/file-sync.d.ts.map +0 -1
- package/dist/core/file-sync.js +0 -34
- package/dist/core/file-sync.js.map +0 -1
- package/dist/core/output-buffer.d.ts +0 -42
- package/dist/core/output-buffer.d.ts.map +0 -1
- package/dist/core/output-buffer.js +0 -66
- package/dist/core/output-buffer.js.map +0 -1
- package/dist/core/protocol.d.ts +0 -83
- package/dist/core/protocol.d.ts.map +0 -1
- package/dist/core/protocol.js +0 -10
- package/dist/core/protocol.js.map +0 -1
- package/dist/core/state-machine.d.ts +0 -19
- package/dist/core/state-machine.d.ts.map +0 -1
- package/dist/core/state-machine.js +0 -39
- package/dist/core/state-machine.js.map +0 -1
- package/dist/core/token-manager.d.ts +0 -29
- package/dist/core/token-manager.d.ts.map +0 -1
- package/dist/core/token-manager.js +0 -90
- package/dist/core/token-manager.js.map +0 -1
- package/dist/core/workspace.d.ts +0 -28
- package/dist/core/workspace.d.ts.map +0 -1
- package/dist/core/workspace.js +0 -186
- package/dist/core/workspace.js.map +0 -1
- package/dist/transport/websocket.d.ts +0 -22
- package/dist/transport/websocket.d.ts.map +0 -1
- package/dist/transport/websocket.js +0 -96
- package/dist/transport/websocket.js.map +0 -1
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* link 命令:连接服务端
|
|
6
|
+
* @param options.background 为 true 时表示由后台子进程执行,不占用终端
|
|
6
7
|
*/
|
|
7
|
-
export declare function linkCommand(server: string, options
|
|
8
|
+
export declare function linkCommand(server: string, options?: {
|
|
8
9
|
token?: string;
|
|
10
|
+
background?: boolean;
|
|
9
11
|
}): Promise<void>;
|
|
10
12
|
/**
|
|
11
13
|
* add 命令:添加代理规则
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-commands.d.ts","sourceRoot":"","sources":["../../src/cli/cli-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cli-commands.d.ts","sourceRoot":"","sources":["../../src/cli/cli-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuEH;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrD,OAAO,CAAC,IAAI,CAAC,CA6Ff;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DlF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBjD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BjD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDnD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFzE"}
|
package/dist/cli/cli-commands.js
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
import { WebSocket, WebSocketServer } from 'ws';
|
|
5
5
|
import { RuleManager } from '../core/rule-manager.js';
|
|
6
6
|
import { HttpTunnelServer } from '../core/http-tunnel-server.js';
|
|
7
|
+
import { getPackageVersion } from './version.js';
|
|
7
8
|
// 全局变量,用于管理连接状态
|
|
8
9
|
let tunnelWs = null;
|
|
9
10
|
let ruleManager = null;
|
|
10
11
|
let isConnected = false;
|
|
12
|
+
/** 当前 link 进程的客户端版本(用于 WELCOME 时输出) */
|
|
13
|
+
let linkClientVersion = '0.0.0-dev';
|
|
11
14
|
// 进程管理:防止多个 mirror 进程同时运行
|
|
12
15
|
const LOCK_FILE = process.env.HOME + '/.mirror/.lock';
|
|
13
16
|
/**
|
|
@@ -28,8 +31,8 @@ async function checkLockFile() {
|
|
|
28
31
|
// 检查进程是否还在运行
|
|
29
32
|
try {
|
|
30
33
|
process.kill(pid, 0);
|
|
31
|
-
console.error(`[!]
|
|
32
|
-
console.error('[!]
|
|
34
|
+
console.error(`[!] 已有 mirror 客户端在运行 (PID: ${pid})`);
|
|
35
|
+
console.error('[!] 请先执行 mirror stop 停止后再试');
|
|
33
36
|
return false;
|
|
34
37
|
}
|
|
35
38
|
catch {
|
|
@@ -42,7 +45,7 @@ async function checkLockFile() {
|
|
|
42
45
|
return true;
|
|
43
46
|
}
|
|
44
47
|
catch (error) {
|
|
45
|
-
console.error('[!]
|
|
48
|
+
console.error('[!] 创建锁文件失败:', error);
|
|
46
49
|
return false;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -62,10 +65,16 @@ async function cleanupLockFile() {
|
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
64
67
|
* link 命令:连接服务端
|
|
68
|
+
* @param options.background 为 true 时表示由后台子进程执行,不占用终端
|
|
65
69
|
*/
|
|
66
|
-
export async function linkCommand(server, options) {
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
export async function linkCommand(server, options = {}) {
|
|
71
|
+
const isBackground = options.background === true;
|
|
72
|
+
linkClientVersion = await getPackageVersion();
|
|
73
|
+
if (!isBackground) {
|
|
74
|
+
console.log('Mirror HTTP 隧道客户端');
|
|
75
|
+
console.log('========================\n');
|
|
76
|
+
console.log(`[*] 客户端版本: ${linkClientVersion}\n`);
|
|
77
|
+
}
|
|
69
78
|
// 检查锁文件
|
|
70
79
|
const lockCheck = await checkLockFile();
|
|
71
80
|
if (!lockCheck) {
|
|
@@ -76,32 +85,30 @@ export async function linkCommand(server, options) {
|
|
|
76
85
|
// 检查是否已有服务器配置
|
|
77
86
|
const existingConfig = ruleManager.getServer();
|
|
78
87
|
if (existingConfig.server && existingConfig.server !== server) {
|
|
79
|
-
|
|
80
|
-
|
|
88
|
+
if (!isBackground) {
|
|
89
|
+
console.log(`[!] 已有不同服务器配置: ${existingConfig.server}`);
|
|
90
|
+
console.log(`[*] 正在连接到新服务器: ${server}`);
|
|
91
|
+
}
|
|
81
92
|
}
|
|
82
93
|
// 保存服务器配置
|
|
83
94
|
ruleManager.setServer(server, options.token);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
95
|
+
if (!isBackground) {
|
|
96
|
+
console.log(`[*] 服务端: ${server}`);
|
|
97
|
+
if (options.token)
|
|
98
|
+
console.log(`[*] 令牌: ${options.token}`);
|
|
87
99
|
}
|
|
88
|
-
// 构建 WebSocket URL
|
|
89
|
-
let wsUrl = server
|
|
90
|
-
? (() => {
|
|
91
|
-
const [host, port] = server.split(':');
|
|
92
|
-
return `wss://${host}:${port}`;
|
|
93
|
-
})()
|
|
94
|
-
: `wss://${server}`;
|
|
95
|
-
// 添加 token
|
|
100
|
+
// 构建 WebSocket URL:仅使用域名,走 wss 默认 443(由 Nginx 等反向代理处理 TLS)
|
|
101
|
+
let wsUrl = `wss://${server}`;
|
|
96
102
|
if (options.token) {
|
|
97
103
|
const separator = wsUrl.includes('?') ? '&' : '?';
|
|
98
104
|
wsUrl = `${wsUrl}${separator}token=${options.token}`;
|
|
99
105
|
}
|
|
100
|
-
|
|
106
|
+
if (!isBackground)
|
|
107
|
+
console.log(`[*] 正在连接 ${wsUrl} ...`);
|
|
101
108
|
try {
|
|
102
109
|
tunnelWs = new WebSocket(wsUrl);
|
|
103
110
|
tunnelWs.on('open', () => {
|
|
104
|
-
console.log('[✓]
|
|
111
|
+
console.log('[✓] 已连接服务端\n');
|
|
105
112
|
isConnected = true;
|
|
106
113
|
// 发送规则同步
|
|
107
114
|
syncRules();
|
|
@@ -110,23 +117,25 @@ export async function linkCommand(server, options) {
|
|
|
110
117
|
handleTunnelMessage(data);
|
|
111
118
|
});
|
|
112
119
|
tunnelWs.on('close', (code, reason) => {
|
|
113
|
-
const reasonStr = reason ? reason.toString() : '
|
|
114
|
-
|
|
120
|
+
const reasonStr = reason ? reason.toString() : '未知原因';
|
|
121
|
+
if (!isBackground) {
|
|
122
|
+
console.log(`[!] 已断开与服务端的连接: ${reasonStr} (code: ${code})\n`);
|
|
123
|
+
}
|
|
115
124
|
isConnected = false;
|
|
116
125
|
cleanupLockFile();
|
|
117
126
|
process.exit(0);
|
|
118
127
|
});
|
|
119
128
|
tunnelWs.on('error', (error) => {
|
|
120
|
-
|
|
129
|
+
if (!isBackground)
|
|
130
|
+
console.error('[!] 连接错误:', error.message);
|
|
121
131
|
cleanupLockFile();
|
|
122
132
|
process.exit(1);
|
|
123
133
|
});
|
|
124
|
-
// 处理进程退出
|
|
125
134
|
const exitHandler = () => {
|
|
126
|
-
|
|
127
|
-
|
|
135
|
+
if (!isBackground)
|
|
136
|
+
console.log('\n[*] 正在断开连接...');
|
|
137
|
+
if (tunnelWs)
|
|
128
138
|
tunnelWs.close();
|
|
129
|
-
}
|
|
130
139
|
cleanupLockFile();
|
|
131
140
|
process.exit(0);
|
|
132
141
|
};
|
|
@@ -136,7 +145,8 @@ export async function linkCommand(server, options) {
|
|
|
136
145
|
await new Promise(() => { });
|
|
137
146
|
}
|
|
138
147
|
catch (error) {
|
|
139
|
-
|
|
148
|
+
if (!isBackground)
|
|
149
|
+
console.error('[!] 连接失败:', error);
|
|
140
150
|
cleanupLockFile();
|
|
141
151
|
process.exit(1);
|
|
142
152
|
}
|
|
@@ -145,34 +155,34 @@ export async function linkCommand(server, options) {
|
|
|
145
155
|
* add 命令:添加代理规则
|
|
146
156
|
*/
|
|
147
157
|
export async function addCommand(domainPath, target) {
|
|
148
|
-
console.log('Mirror -
|
|
158
|
+
console.log('Mirror - 添加代理规则');
|
|
149
159
|
console.log('========================\n');
|
|
150
160
|
// 解析 domain 和 path
|
|
151
161
|
const domainMatch = domainPath.match(/^([^/]+)(.*)$/);
|
|
152
162
|
if (!domainMatch) {
|
|
153
|
-
console.error('[!]
|
|
154
|
-
console.error('[!]
|
|
155
|
-
console.error('[!]
|
|
163
|
+
console.error('[!] 域名/路径格式无效');
|
|
164
|
+
console.error('[!] 用法: mirror add <域名/路径> <目标>');
|
|
165
|
+
console.error('[!] 示例: mirror add example.com/api localhost:3001');
|
|
156
166
|
process.exit(1);
|
|
157
167
|
}
|
|
158
168
|
const domain = domainMatch[1];
|
|
159
169
|
const path = domainMatch[2] || '/';
|
|
160
170
|
// 验证参数
|
|
161
171
|
if (!domain || !target) {
|
|
162
|
-
console.error('[!]
|
|
163
|
-
console.error('[!]
|
|
164
|
-
console.error('[!]
|
|
172
|
+
console.error('[!] 缺少必填参数');
|
|
173
|
+
console.error('[!] 用法: mirror add <域名/路径> <目标>');
|
|
174
|
+
console.error('[!] 示例: mirror add example.com/api localhost:3001');
|
|
165
175
|
process.exit(1);
|
|
166
176
|
}
|
|
167
|
-
console.log(`[*]
|
|
168
|
-
console.log(`[*]
|
|
169
|
-
console.log(`[*]
|
|
177
|
+
console.log(`[*] 域名: ${domain}`);
|
|
178
|
+
console.log(`[*] 路径: ${path}`);
|
|
179
|
+
console.log(`[*] 目标: ${target}\n`);
|
|
170
180
|
// 创建规则管理器
|
|
171
181
|
const ruleManager = new RuleManager();
|
|
172
182
|
// 添加规则
|
|
173
183
|
const rule = ruleManager.addRule(domain, path, target);
|
|
174
184
|
if (rule) {
|
|
175
|
-
console.log('[✓]
|
|
185
|
+
console.log('[✓] 规则添加成功\n');
|
|
176
186
|
console.log(` ID: ${rule.id}`);
|
|
177
187
|
console.log(` ${rule.domain}${rule.path} -> ${rule.target}`);
|
|
178
188
|
// 根据路径长度显示优先级
|
|
@@ -187,7 +197,7 @@ export async function addCommand(domainPath, target) {
|
|
|
187
197
|
console.log(` 优先级: ${priorityText} (路径长度: ${pathLength})\n`);
|
|
188
198
|
}
|
|
189
199
|
else {
|
|
190
|
-
console.error('[!]
|
|
200
|
+
console.error('[!] 添加规则失败\n');
|
|
191
201
|
process.exit(1);
|
|
192
202
|
}
|
|
193
203
|
// 如果已连接,同步规则
|
|
@@ -200,34 +210,34 @@ export async function addCommand(domainPath, target) {
|
|
|
200
210
|
* remove 命令:删除代理规则
|
|
201
211
|
*/
|
|
202
212
|
export async function removeCommand(ruleId) {
|
|
203
|
-
console.log('Mirror -
|
|
204
|
-
console.log('
|
|
213
|
+
console.log('Mirror - 删除代理规则');
|
|
214
|
+
console.log('========================\n');
|
|
205
215
|
const ruleManager = new RuleManager();
|
|
206
216
|
if (ruleId) {
|
|
207
217
|
// 删除指定规则
|
|
208
218
|
const id = parseInt(ruleId, 10);
|
|
209
219
|
if (isNaN(id)) {
|
|
210
|
-
console.error('[!]
|
|
220
|
+
console.error('[!] 规则 ID 无效:', ruleId);
|
|
211
221
|
process.exit(1);
|
|
212
222
|
}
|
|
213
223
|
const rules = ruleManager.getRules();
|
|
214
224
|
const rule = rules.find((r) => r.id === id);
|
|
215
225
|
if (!rule) {
|
|
216
|
-
console.error(`[!]
|
|
226
|
+
console.error(`[!] 规则不存在: ${id}`);
|
|
217
227
|
process.exit(1);
|
|
218
228
|
}
|
|
219
229
|
ruleManager.removeRule(id);
|
|
220
|
-
console.log(`[✓]
|
|
230
|
+
console.log(`[✓] 规则已删除: ${rule.domain}${rule.path} -> ${rule.target}\n`);
|
|
221
231
|
}
|
|
222
232
|
else {
|
|
223
233
|
// 删除所有规则
|
|
224
234
|
const count = ruleManager.getRules().length;
|
|
225
235
|
ruleManager.removeRule();
|
|
226
|
-
console.log(`[✓]
|
|
236
|
+
console.log(`[✓] 已删除全部规则 (共 ${count} 条)\n`);
|
|
227
237
|
}
|
|
228
238
|
// 如果已连接,同步规则
|
|
229
239
|
if (isConnected && tunnelWs) {
|
|
230
|
-
console.log('[*]
|
|
240
|
+
console.log('[*] 正在同步规则到服务端...');
|
|
231
241
|
syncRules();
|
|
232
242
|
}
|
|
233
243
|
}
|
|
@@ -235,21 +245,21 @@ export async function removeCommand(ruleId) {
|
|
|
235
245
|
* list 命令:查看代理规则
|
|
236
246
|
*/
|
|
237
247
|
export async function listCommand() {
|
|
238
|
-
console.log('Mirror -
|
|
239
|
-
console.log('
|
|
248
|
+
console.log('Mirror - 代理规则');
|
|
249
|
+
console.log('================\n');
|
|
240
250
|
const ruleManager = new RuleManager();
|
|
241
251
|
const rules = ruleManager.getRules();
|
|
242
252
|
if (rules.length === 0) {
|
|
243
|
-
console.log('[!]
|
|
253
|
+
console.log('[!] 未配置规则\n');
|
|
244
254
|
return;
|
|
245
255
|
}
|
|
246
|
-
console.log(
|
|
256
|
+
console.log(`共 ${rules.length} 条规则\n`);
|
|
247
257
|
for (const rule of rules) {
|
|
248
258
|
const priorityLabel = rule.priority === 'high' ? '高' : '低';
|
|
249
259
|
const priorityNote = rule.priority === 'high' ? '(路径规则)' : '(域名规则)';
|
|
250
260
|
console.log(`[${rule.id}] ${rule.domain}${rule.path} -> ${rule.target}`);
|
|
251
|
-
console.log(`
|
|
252
|
-
console.log(`
|
|
261
|
+
console.log(` 优先级: ${priorityLabel}${priorityNote}`);
|
|
262
|
+
console.log(` 创建时间: ${new Date(rule.createdAt).toLocaleString()}`);
|
|
253
263
|
console.log();
|
|
254
264
|
}
|
|
255
265
|
}
|
|
@@ -257,31 +267,31 @@ export async function listCommand() {
|
|
|
257
267
|
* stop 命令:断开连接
|
|
258
268
|
*/
|
|
259
269
|
export async function stopCommand() {
|
|
260
|
-
console.log('Mirror -
|
|
261
|
-
console.log('
|
|
270
|
+
console.log('Mirror - 断开连接');
|
|
271
|
+
console.log('==================\n');
|
|
262
272
|
// 检查锁文件
|
|
263
273
|
try {
|
|
264
274
|
const fs = await import('fs');
|
|
265
275
|
const lockFile = process.env.HOME + '/.mirror/.lock';
|
|
266
276
|
if (!fs.existsSync(lockFile)) {
|
|
267
|
-
console.log('[!]
|
|
277
|
+
console.log('[!] 当前没有 mirror 客户端在运行\n');
|
|
268
278
|
process.exit(0);
|
|
269
279
|
}
|
|
270
280
|
const pid = parseInt(fs.readFileSync(lockFile, 'utf-8'), 10);
|
|
271
281
|
try {
|
|
272
282
|
// 发送 SIGTERM 信号
|
|
273
283
|
process.kill(pid, 'SIGTERM');
|
|
274
|
-
console.log(`[✓]
|
|
284
|
+
console.log(`[✓] 已向 mirror 客户端发送停止信号 (PID: ${pid})\n`);
|
|
275
285
|
}
|
|
276
286
|
catch {
|
|
277
|
-
console.log(`[!]
|
|
278
|
-
console.log('[!]
|
|
287
|
+
console.log(`[!] mirror 客户端 (PID: ${pid}) 无响应\n`);
|
|
288
|
+
console.log('[!] 正在清理锁文件...');
|
|
279
289
|
fs.unlinkSync(lockFile);
|
|
280
|
-
console.log('[✓]
|
|
290
|
+
console.log('[✓] 锁文件已移除\n');
|
|
281
291
|
}
|
|
282
292
|
}
|
|
283
293
|
catch (error) {
|
|
284
|
-
console.error('[!]
|
|
294
|
+
console.error('[!] 错误:', error);
|
|
285
295
|
}
|
|
286
296
|
process.exit(0);
|
|
287
297
|
}
|
|
@@ -289,8 +299,8 @@ export async function stopCommand() {
|
|
|
289
299
|
* status 命令:查看连接状态
|
|
290
300
|
*/
|
|
291
301
|
export async function statusCommand() {
|
|
292
|
-
console.log('Mirror -
|
|
293
|
-
console.log('
|
|
302
|
+
console.log('Mirror - 连接状态');
|
|
303
|
+
console.log('==================\n');
|
|
294
304
|
try {
|
|
295
305
|
const fs = await import('fs');
|
|
296
306
|
const lockFile = process.env.HOME + '/.mirror/.lock';
|
|
@@ -300,36 +310,36 @@ export async function statusCommand() {
|
|
|
300
310
|
const pid = parseInt(fs.readFileSync(lockFile, 'utf-8'), 10);
|
|
301
311
|
try {
|
|
302
312
|
process.kill(pid, 0);
|
|
303
|
-
console.log('[✓] Mirror
|
|
313
|
+
console.log('[✓] Mirror 客户端正在运行');
|
|
304
314
|
console.log(` PID: ${pid}\n`);
|
|
305
315
|
}
|
|
306
316
|
catch {
|
|
307
|
-
console.log('[!] Mirror
|
|
308
|
-
console.log('[!]
|
|
317
|
+
console.log('[!] Mirror 客户端未运行(锁文件已过期)');
|
|
318
|
+
console.log('[!] 正在清理锁文件...');
|
|
309
319
|
fs.unlinkSync(lockFile);
|
|
310
|
-
console.log('[✓]
|
|
320
|
+
console.log('[✓] 锁文件已移除\n');
|
|
311
321
|
}
|
|
312
322
|
}
|
|
313
323
|
else {
|
|
314
|
-
console.log('[!] Mirror
|
|
324
|
+
console.log('[!] Mirror 客户端未运行\n');
|
|
315
325
|
}
|
|
316
326
|
// 显示服务器配置
|
|
317
327
|
const config = ruleManager.getServer();
|
|
318
328
|
if (config.server) {
|
|
319
|
-
console.log('
|
|
320
|
-
console.log(`
|
|
329
|
+
console.log('服务器配置:');
|
|
330
|
+
console.log(` 服务端: ${config.server}`);
|
|
321
331
|
if (config.token) {
|
|
322
|
-
console.log(`
|
|
332
|
+
console.log(` 令牌: ${config.token.substring(0, 8)}...`);
|
|
323
333
|
}
|
|
324
334
|
console.log();
|
|
325
335
|
}
|
|
326
336
|
else {
|
|
327
|
-
console.log('[!]
|
|
337
|
+
console.log('[!] 未配置服务器\n');
|
|
328
338
|
}
|
|
329
339
|
// 显示规则
|
|
330
340
|
const rules = ruleManager.getRules();
|
|
331
341
|
if (rules.length > 0) {
|
|
332
|
-
console.log(
|
|
342
|
+
console.log(`代理规则 (已配置 ${rules.length} 条):`);
|
|
333
343
|
for (const rule of rules) {
|
|
334
344
|
const priority = rule.priority === 'high' ? '高' : '低';
|
|
335
345
|
console.log(` [${rule.id}] ${rule.domain}${rule.path} -> ${rule.target} (${priority})`);
|
|
@@ -337,11 +347,11 @@ export async function statusCommand() {
|
|
|
337
347
|
console.log();
|
|
338
348
|
}
|
|
339
349
|
else {
|
|
340
|
-
console.log('[!]
|
|
350
|
+
console.log('[!] 未配置代理规则\n');
|
|
341
351
|
}
|
|
342
352
|
}
|
|
343
353
|
catch (error) {
|
|
344
|
-
console.error('[!]
|
|
354
|
+
console.error('[!] 错误:', error);
|
|
345
355
|
}
|
|
346
356
|
process.exit(0);
|
|
347
357
|
}
|
|
@@ -350,13 +360,15 @@ export async function statusCommand() {
|
|
|
350
360
|
*/
|
|
351
361
|
export async function serverCommand(options) {
|
|
352
362
|
const { port, host, tunnelPort, token, timeout } = options;
|
|
353
|
-
|
|
354
|
-
console.log('
|
|
363
|
+
const serverVersion = await getPackageVersion();
|
|
364
|
+
console.log('Mirror HTTP 隧道服务端');
|
|
365
|
+
console.log('========================\n');
|
|
366
|
+
console.log(`[*] 服务端版本: ${serverVersion}\n`);
|
|
355
367
|
// 创建 WebSocket 服务器(用于隧道连接)
|
|
356
368
|
const wss = new WebSocketServer({ port: tunnelPort, host });
|
|
357
|
-
console.log(`[*] WebSocket
|
|
369
|
+
console.log(`[*] WebSocket 隧道服务端监听中 ${host}:${tunnelPort}`);
|
|
358
370
|
if (token) {
|
|
359
|
-
console.log(`[*]
|
|
371
|
+
console.log(`[*] 认证令牌: ${token}`);
|
|
360
372
|
}
|
|
361
373
|
// 创建 HTTP 隧道服务端
|
|
362
374
|
const tunnelServer = new HttpTunnelServer({
|
|
@@ -366,46 +378,44 @@ export async function serverCommand(options) {
|
|
|
366
378
|
});
|
|
367
379
|
// 启动 HTTP 服务器
|
|
368
380
|
await tunnelServer.start();
|
|
369
|
-
console.log(`[*] HTTP
|
|
370
|
-
console.log('[*]
|
|
381
|
+
console.log(`[*] HTTP 服务监听中 http://${host}:${port}\n`);
|
|
382
|
+
console.log('[*] 等待客户端连接...\n');
|
|
371
383
|
// 处理 WebSocket 隧道连接
|
|
372
|
-
wss.on('connection', (ws, req) => {
|
|
373
|
-
// 验证 token(如果配置了)
|
|
384
|
+
wss.on('connection', async (ws, req) => {
|
|
374
385
|
const url = new URL(req.url || '', `http://${req.headers.host}`);
|
|
375
386
|
const clientToken = url.searchParams.get('token');
|
|
376
387
|
if (token && clientToken !== token) {
|
|
377
|
-
console.log('[!]
|
|
388
|
+
console.log('[!] 客户端被拒绝:令牌无效');
|
|
378
389
|
ws.close(1008, 'Invalid token');
|
|
379
390
|
return;
|
|
380
391
|
}
|
|
381
|
-
const clientIp = req.socket.remoteAddress || '
|
|
382
|
-
|
|
383
|
-
|
|
392
|
+
const clientIp = req.socket.remoteAddress || '未知';
|
|
393
|
+
const currentServerVersion = await getPackageVersion();
|
|
394
|
+
console.log(`[✓] 新客户端已连接,来源: ${clientIp}`);
|
|
395
|
+
console.log(`[*] 服务端版本: ${currentServerVersion}\n`);
|
|
384
396
|
tunnelServer.setTunnelConnection(ws);
|
|
385
|
-
console.log('[*] HTTP
|
|
386
|
-
// 处理客户端断开
|
|
397
|
+
console.log('[*] HTTP 隧道已就绪\n');
|
|
387
398
|
ws.on('close', () => {
|
|
388
|
-
console.log('[!]
|
|
389
|
-
console.log('[*] HTTP
|
|
399
|
+
console.log('[!] 客户端已断开');
|
|
400
|
+
console.log('[*] HTTP 隧道未就绪\n');
|
|
390
401
|
});
|
|
391
402
|
ws.on('error', (error) => {
|
|
392
|
-
console.error('[!]
|
|
403
|
+
console.error('[!] 客户端错误:', error);
|
|
393
404
|
});
|
|
394
|
-
// 发送欢迎消息
|
|
395
405
|
ws.send(JSON.stringify({
|
|
396
406
|
type: 'WELCOME',
|
|
397
|
-
message: '
|
|
398
|
-
serverVersion:
|
|
407
|
+
message: '已连接 Mirror HTTP 隧道服务端',
|
|
408
|
+
serverVersion: currentServerVersion,
|
|
399
409
|
}));
|
|
400
410
|
});
|
|
401
411
|
// 处理 WebSocket 服务器错误
|
|
402
412
|
wss.on('error', (error) => {
|
|
403
|
-
console.error('[!] WebSocket
|
|
413
|
+
console.error('[!] WebSocket 服务错误:', error);
|
|
404
414
|
process.exit(1);
|
|
405
415
|
});
|
|
406
416
|
// 处理进程退出
|
|
407
417
|
const cleanup = async () => {
|
|
408
|
-
console.log('\n[*]
|
|
418
|
+
console.log('\n[*] 正在关闭...');
|
|
409
419
|
await tunnelServer.stop();
|
|
410
420
|
wss.close();
|
|
411
421
|
process.exit(0);
|
|
@@ -438,14 +448,15 @@ function handleTunnelMessage(data) {
|
|
|
438
448
|
switch (message.type) {
|
|
439
449
|
case 'WELCOME':
|
|
440
450
|
console.log(`[✓] ${message.message}`);
|
|
441
|
-
console.log(`[*]
|
|
451
|
+
console.log(`[*] 客户端版本: ${linkClientVersion}`);
|
|
452
|
+
console.log(`[*] 服务端版本: ${message.serverVersion ?? '未知'}\n`);
|
|
442
453
|
break;
|
|
443
454
|
case 'RULES_ACK':
|
|
444
455
|
if (message.success) {
|
|
445
|
-
console.log(`[✓]
|
|
456
|
+
console.log(`[✓] 规则已同步: ${message.count} 条\n`);
|
|
446
457
|
}
|
|
447
458
|
else {
|
|
448
|
-
console.error(`[!]
|
|
459
|
+
console.error(`[!] 规则同步失败: ${message.message}\n`);
|
|
449
460
|
}
|
|
450
461
|
break;
|
|
451
462
|
default:
|
|
@@ -454,7 +465,7 @@ function handleTunnelMessage(data) {
|
|
|
454
465
|
}
|
|
455
466
|
}
|
|
456
467
|
catch (error) {
|
|
457
|
-
console.error('[!]
|
|
468
|
+
console.error('[!] 处理消息时出错:', error);
|
|
458
469
|
}
|
|
459
470
|
}
|
|
460
471
|
//# sourceMappingURL=cli-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../../src/cli/cli-commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../../src/cli/cli-commands.ts"],"names":[],"mappings":"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"}
|