gemini-proxy-client 1.0.13 → 1.0.14
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/README.md +144 -102
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
## 特性
|
|
6
6
|
|
|
7
|
-
- **反指纹检测**: 使用 Camoufox (基于 Firefox)
|
|
8
|
-
-
|
|
7
|
+
- **反指纹检测**: 使用 Camoufox (基于 Firefox) 防止浏览器指纹识别
|
|
8
|
+
- **随机指纹**: 每个账号自动生成独立的浏览器指纹(分辨率、语言、时区)
|
|
9
|
+
- **多账号支持**: 可同时运行多个客户端连接不同 Google 账号
|
|
10
|
+
- **自动登录管理**: 首次需要手动登录,之后自动切换到无头模式
|
|
9
11
|
- **自动连接**: 自动点击 "Continue to the app" 和 "Connect WS" 按钮
|
|
10
|
-
- **连接验证**: 自动检测 WebSocket
|
|
12
|
+
- **连接验证**: 自动检测 WebSocket 连接是否成功
|
|
11
13
|
- **自动保活**: 每 2 小时检查登录状态,断线自动重连
|
|
12
|
-
- **无头运行**: 登录后可在后台无头运行,节省资源
|
|
13
14
|
|
|
14
|
-
##
|
|
15
|
+
## 快速开始
|
|
16
|
+
|
|
17
|
+
### 1. 安装
|
|
15
18
|
|
|
16
19
|
```bash
|
|
17
20
|
npm install -g gemini-proxy-client
|
|
@@ -23,141 +26,175 @@ npm install -g gemini-proxy-client
|
|
|
23
26
|
npx camoufox-js fetch
|
|
24
27
|
```
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### 启动客户端
|
|
29
|
+
### 2. 启动客户端
|
|
29
30
|
|
|
30
31
|
```bash
|
|
31
|
-
|
|
32
|
-
gemini-client start --server wss://your-server.com/v1/ws
|
|
33
|
-
|
|
34
|
-
# 或使用简写
|
|
35
|
-
gemini-client start -s wss://your-server.com/v1/ws
|
|
32
|
+
gemini-client start --server ws://your-server:5345/v1/ws
|
|
36
33
|
```
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
✅ 点击了连接按钮
|
|
45
|
-
检测按钮文字: "Disconnect WS"
|
|
46
|
-
✅ WebSocket 连接成功!
|
|
47
|
-
```
|
|
35
|
+
**首次运行**会:
|
|
36
|
+
1. 打开浏览器窗口
|
|
37
|
+
2. 等待您登录 Google 账号
|
|
38
|
+
3. 登录成功后自动保存 cookies
|
|
39
|
+
4. 关闭浏览器,以无头模式重新启动
|
|
40
|
+
5. 自动连接到代理服务器
|
|
48
41
|
|
|
49
|
-
|
|
42
|
+
**之后运行**会直接以无头模式启动,无需再登录。
|
|
50
43
|
|
|
51
|
-
|
|
44
|
+
### 3. 后台运行
|
|
52
45
|
|
|
53
46
|
```bash
|
|
54
|
-
|
|
47
|
+
# 使用 nohup 后台运行
|
|
48
|
+
nohup gemini-client start -s ws://your-server:5345/v1/ws > gemini-client.log 2>&1 &
|
|
55
49
|
|
|
56
50
|
# 查看日志
|
|
57
51
|
tail -f gemini-client.log
|
|
58
52
|
|
|
59
53
|
# 停止
|
|
60
|
-
|
|
54
|
+
pkill -f gemini-client
|
|
61
55
|
```
|
|
62
56
|
|
|
63
|
-
|
|
57
|
+
## 多账号配置
|
|
58
|
+
|
|
59
|
+
可以在同一台机器上同时运行多个客户端,连接不同的 Google 账号:
|
|
64
60
|
|
|
65
61
|
```bash
|
|
66
|
-
#
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
# 账号 1 - 首次运行会弹出浏览器登录
|
|
63
|
+
nohup gemini-client start \
|
|
64
|
+
--data-dir ~/.gemini-client/account1 \
|
|
65
|
+
-s ws://your-server:5345/v1/ws \
|
|
66
|
+
> account1.log 2>&1 &
|
|
67
|
+
|
|
68
|
+
# 账号 2 - 使用不同的 data-dir
|
|
69
|
+
nohup gemini-client start \
|
|
70
|
+
--data-dir ~/.gemini-client/account2 \
|
|
71
|
+
-s ws://your-server:5345/v1/ws \
|
|
72
|
+
> account2.log 2>&1 &
|
|
73
|
+
|
|
74
|
+
# 账号 3
|
|
75
|
+
nohup gemini-client start \
|
|
76
|
+
--data-dir ~/.gemini-client/account3 \
|
|
77
|
+
-s ws://your-server:5345/v1/ws \
|
|
78
|
+
> account3.log 2>&1 &
|
|
79
|
+
```
|
|
69
80
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
每个 `--data-dir` 会独立保存:
|
|
82
|
+
- `cookies.json` - Google 登录状态
|
|
83
|
+
- `fingerprint.json` - 浏览器指纹配置
|
|
84
|
+
- `config.json` - 其他配置
|
|
73
85
|
|
|
74
|
-
|
|
75
|
-
# 重新连接: screen -r gemini
|
|
76
|
-
# 查看所有会话: screen -ls
|
|
77
|
-
```
|
|
86
|
+
### 随机指纹
|
|
78
87
|
|
|
79
|
-
|
|
88
|
+
每个账号首次启动时会自动生成随机的浏览器指纹:
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
| 项目 | 随机化范围 |
|
|
91
|
+
|------|-----------|
|
|
92
|
+
| 分辨率 | 1920x1080, 1366x768, 1440x900 等 10 种 |
|
|
93
|
+
| 语言 | en-US, zh-CN, ja-JP 等 10 种 |
|
|
94
|
+
| 时区 | America/New_York, Asia/Shanghai 等 10 种 |
|
|
84
95
|
|
|
85
|
-
|
|
86
|
-
pm2 start "gemini-client start" --name gemini-client
|
|
96
|
+
指纹保存后会保持一致,避免同一账号频繁变化被检测。
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
pm2 logs gemini-client
|
|
98
|
+
## 命令参考
|
|
90
99
|
|
|
91
|
-
|
|
92
|
-
pm2 stop gemini-client
|
|
100
|
+
### start - 启动客户端
|
|
93
101
|
|
|
94
|
-
|
|
95
|
-
|
|
102
|
+
```bash
|
|
103
|
+
gemini-client start [options]
|
|
104
|
+
```
|
|
96
105
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
| 选项 | 说明 | 默认值 |
|
|
107
|
+
|------|------|--------|
|
|
108
|
+
| `-s, --server <url>` | 代理服务器 WebSocket 地址 | `ws://localhost:5345/v1/ws` |
|
|
109
|
+
| `-t, --token <token>` | 客户端认证令牌 | 自动生成 |
|
|
110
|
+
| `-d, --daemon` | 后台运行模式 | false |
|
|
111
|
+
| `--headless` | 强制无头模式 | 自动判断 |
|
|
112
|
+
| `--data-dir <path>` | 数据目录路径 | `~/.gemini-client` |
|
|
113
|
+
|
|
114
|
+
### login - 登录 Google 账号
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
gemini-client login [--data-dir <path>]
|
|
100
118
|
```
|
|
101
119
|
|
|
102
|
-
|
|
120
|
+
单独执行登录操作,会打开浏览器让您登录 Google 账号。
|
|
103
121
|
|
|
104
|
-
|
|
122
|
+
### logout - 清除登录状态
|
|
105
123
|
|
|
106
124
|
```bash
|
|
107
|
-
|
|
108
|
-
|
|
125
|
+
gemini-client logout [--data-dir <path>]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
删除保存的 cookies,下次启动需要重新登录。
|
|
129
|
+
|
|
130
|
+
### status - 查看状态
|
|
109
131
|
|
|
110
|
-
|
|
111
|
-
|
|
132
|
+
```bash
|
|
133
|
+
gemini-client status [--data-dir <path>]
|
|
112
134
|
```
|
|
113
135
|
|
|
114
|
-
|
|
136
|
+
查看当前登录状态和配置信息。
|
|
137
|
+
|
|
138
|
+
## 使用 PM2 管理(推荐)
|
|
139
|
+
|
|
140
|
+
使用 PM2 可以更方便地管理多个客户端:
|
|
115
141
|
|
|
116
142
|
```bash
|
|
117
|
-
#
|
|
118
|
-
|
|
143
|
+
# 安装 PM2
|
|
144
|
+
npm install -g pm2
|
|
145
|
+
|
|
146
|
+
# 启动多个账号
|
|
147
|
+
pm2 start "gemini-client start --data-dir ~/.gemini-client/account1 -s ws://server:5345/v1/ws" --name account1
|
|
148
|
+
pm2 start "gemini-client start --data-dir ~/.gemini-client/account2 -s ws://server:5345/v1/ws" --name account2
|
|
149
|
+
pm2 start "gemini-client start --data-dir ~/.gemini-client/account3 -s ws://server:5345/v1/ws" --name account3
|
|
119
150
|
|
|
120
151
|
# 查看状态
|
|
121
|
-
|
|
152
|
+
pm2 status
|
|
153
|
+
|
|
154
|
+
# 查看日志
|
|
155
|
+
pm2 logs
|
|
122
156
|
|
|
123
|
-
#
|
|
124
|
-
|
|
157
|
+
# 停止所有
|
|
158
|
+
pm2 stop all
|
|
125
159
|
|
|
126
|
-
#
|
|
127
|
-
|
|
160
|
+
# 开机自启
|
|
161
|
+
pm2 startup
|
|
162
|
+
pm2 save
|
|
128
163
|
```
|
|
129
164
|
|
|
130
|
-
##
|
|
165
|
+
## 无图形界面服务器
|
|
131
166
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
| 选项 | 说明 | 默认值 |
|
|
135
|
-
|------|------|--------|
|
|
136
|
-
| `-s, --server <url>` | 代理服务器 WebSocket 地址 | `ws://localhost:5345/v1/ws` |
|
|
137
|
-
| `-t, --token <token>` | 客户端认证令牌 | 自动生成 `gp_client_YYYY_MM_DD_HH_mm_ss` |
|
|
138
|
-
| `-d, --daemon` | 后台运行模式 | false |
|
|
139
|
-
| `--headless` | 强制无头模式 | 自动判断 |
|
|
140
|
-
| `--data-dir <path>` | 数据目录路径 | `~/.gemini-client` |
|
|
167
|
+
如果是纯命令行服务器(无桌面环境),需要安装虚拟显示:
|
|
141
168
|
|
|
142
|
-
|
|
169
|
+
```bash
|
|
170
|
+
# Ubuntu/Debian
|
|
171
|
+
sudo apt-get install xvfb
|
|
143
172
|
|
|
144
|
-
|
|
173
|
+
# 使用 xvfb-run 运行(首次登录时需要)
|
|
174
|
+
xvfb-run gemini-client start --data-dir ~/.gemini-client/account1 -s ws://server:5345/v1/ws
|
|
175
|
+
```
|
|
145
176
|
|
|
146
|
-
|
|
147
|
-
|------|------|
|
|
148
|
-
| `cookies.json` | Google 登录 cookies |
|
|
149
|
-
| `config.json` | 配置信息 |
|
|
177
|
+
注意:首次登录需要在有图形界面的环境中完成(或使用 VNC/远程桌面)。
|
|
150
178
|
|
|
151
179
|
## 工作流程
|
|
152
180
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
181
|
+
```
|
|
182
|
+
首次启动
|
|
183
|
+
↓
|
|
184
|
+
打开浏览器 UI → 用户登录 Google
|
|
185
|
+
↓
|
|
186
|
+
保存 cookies 和 fingerprint
|
|
187
|
+
↓
|
|
188
|
+
关闭浏览器 → 以无头模式重新启动
|
|
189
|
+
↓
|
|
190
|
+
自动点击 "Continue to the app"
|
|
191
|
+
↓
|
|
192
|
+
自动点击 "Connect WS" 按钮
|
|
193
|
+
↓
|
|
194
|
+
验证连接成功 → 后台运行
|
|
195
|
+
↓
|
|
196
|
+
定期检查登录状态(每 2 小时)
|
|
197
|
+
```
|
|
161
198
|
|
|
162
199
|
## 保活机制
|
|
163
200
|
|
|
@@ -170,14 +207,14 @@ gemini-client --help
|
|
|
170
207
|
|
|
171
208
|
- Node.js >= 18.0.0
|
|
172
209
|
- 能够访问 GitHub(下载 Camoufox 浏览器)
|
|
173
|
-
- 能够访问 Google AI Studio
|
|
174
|
-
- 图形界面或 Xvfb
|
|
210
|
+
- 能够访问 Google AI Studio
|
|
211
|
+
- 图形界面或 Xvfb(首次登录需要)
|
|
175
212
|
|
|
176
213
|
## 常见问题
|
|
177
214
|
|
|
178
215
|
### Q: Camoufox 下载失败怎么办?
|
|
179
216
|
|
|
180
|
-
|
|
217
|
+
设置代理后重试:
|
|
181
218
|
|
|
182
219
|
```bash
|
|
183
220
|
export https_proxy=http://127.0.0.1:7890
|
|
@@ -188,18 +225,23 @@ npx camoufox-js fetch
|
|
|
188
225
|
|
|
189
226
|
通常 1-2 周,但可能因 IP 变化、长时间无活动或 Google 安全检测而提前失效。
|
|
190
227
|
|
|
191
|
-
### Q:
|
|
228
|
+
### Q: 多账号会被检测到吗?
|
|
192
229
|
|
|
193
|
-
|
|
230
|
+
Camoufox + 随机指纹可以降低检测风险,但同一 IP 运行过多账号仍有风险。建议:
|
|
231
|
+
- 同一 IP 不超过 2-3 个账号
|
|
232
|
+
- 使用代理让不同账号走不同 IP(效果更好)
|
|
194
233
|
|
|
195
|
-
|
|
196
|
-
gemini-client start -s wss://server.com/v1/ws --data-dir ~/.gemini-client-1
|
|
197
|
-
gemini-client start -s wss://server.com/v1/ws --data-dir ~/.gemini-client-2
|
|
198
|
-
```
|
|
234
|
+
### Q: 如何确认连接成功?
|
|
199
235
|
|
|
200
|
-
|
|
236
|
+
查看日志,成功连接会显示:
|
|
201
237
|
|
|
202
|
-
|
|
238
|
+
```
|
|
239
|
+
✅ 点击了 "Continue to the app" 按钮
|
|
240
|
+
✅ 点击了连接按钮
|
|
241
|
+
检测按钮文字: "Disconnect WS"
|
|
242
|
+
✅ WebSocket 连接成功!
|
|
243
|
+
✅ 客户端已启动 (无头模式)
|
|
244
|
+
```
|
|
203
245
|
|
|
204
246
|
## License
|
|
205
247
|
|
package/dist/cli.js
CHANGED