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.
Files changed (3) hide show
  1. package/README.md +144 -102
  2. package/dist/cli.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -4,14 +4,17 @@
4
4
 
5
5
  ## 特性
6
6
 
7
- - **反指纹检测**: 使用 Camoufox (基于 Firefox) 防止 Google 检测多账号
8
- - **自动登录管理**: 首次需要手动登录,之后自动保持登录状态
7
+ - **反指纹检测**: 使用 Camoufox (基于 Firefox) 防止浏览器指纹识别
8
+ - **随机指纹**: 每个账号自动生成独立的浏览器指纹(分辨率、语言、时区)
9
+ - **多账号支持**: 可同时运行多个客户端连接不同 Google 账号
10
+ - **自动登录管理**: 首次需要手动登录,之后自动切换到无头模式
9
11
  - **自动连接**: 自动点击 "Continue to the app" 和 "Connect WS" 按钮
10
- - **连接验证**: 自动检测 WebSocket 连接是否成功(按钮文字变为 "Disconnect WS")
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
- **首次运行**会打开浏览器窗口,请登录您的 Google 账号。登录成功后,cookies 会自动保存,之后运行将使用无头模式。
39
-
40
- **成功启动**后会显示:
41
-
42
- ```
43
- 点击了 "Continue to the app" 按钮
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
- #### 方式 1: 使用 nohup(简单)
44
+ ### 3. 后台运行
52
45
 
53
46
  ```bash
54
- nohup gemini-client start -s wss://your-server.com/v1/ws > gemini-client.log 2>&1 &
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
- kill $(ps aux | grep 'gemini-client start' | grep -v grep | awk '{print $2}')
54
+ pkill -f gemini-client
61
55
  ```
62
56
 
63
- #### 方式 2: 使用 screen
57
+ ## 多账号配置
58
+
59
+ 可以在同一台机器上同时运行多个客户端,连接不同的 Google 账号:
64
60
 
65
61
  ```bash
66
- # 安装 screen
67
- sudo apt-get install screen # Ubuntu/Debian
68
- sudo yum install screen # CentOS/RHEL
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
- screen -S gemini
72
- gemini-client start
81
+ 每个 `--data-dir` 会独立保存:
82
+ - `cookies.json` - Google 登录状态
83
+ - `fingerprint.json` - 浏览器指纹配置
84
+ - `config.json` - 其他配置
73
85
 
74
- # 按 Ctrl+A 然后按 D 分离会话
75
- # 重新连接: screen -r gemini
76
- # 查看所有会话: screen -ls
77
- ```
86
+ ### 随机指纹
78
87
 
79
- #### 方式 3: 使用 pm2(推荐)
88
+ 每个账号首次启动时会自动生成随机的浏览器指纹:
80
89
 
81
- ```bash
82
- # 安装 pm2
83
- npm install -g pm2
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
- pm2 restart gemini-client
102
+ ```bash
103
+ gemini-client start [options]
104
+ ```
96
105
 
97
- # 开机自启
98
- pm2 startup
99
- pm2 save
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
- #### 方式 4: 使用 Xvfb(无图形界面服务器)
120
+ 单独执行登录操作,会打开浏览器让您登录 Google 账号。
103
121
 
104
- 如果是纯命令行服务器,需要安装虚拟显示:
122
+ ### logout - 清除登录状态
105
123
 
106
124
  ```bash
107
- # Ubuntu/Debian
108
- sudo apt-get install xvfb
125
+ gemini-client logout [--data-dir <path>]
126
+ ```
127
+
128
+ 删除保存的 cookies,下次启动需要重新登录。
129
+
130
+ ### status - 查看状态
109
131
 
110
- # 使用 xvfb-run 运行
111
- nohup xvfb-run gemini-client start -s wss://your-server.com/v1/ws > gemini-client.log 2>&1 &
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
- # 单独登录 Google 账号
118
- gemini-client login
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
- gemini-client status
152
+ pm2 status
153
+
154
+ # 查看日志
155
+ pm2 logs
122
156
 
123
- # 清除登录状态
124
- gemini-client logout
157
+ # 停止所有
158
+ pm2 stop all
125
159
 
126
- # 查看帮助
127
- gemini-client --help
160
+ # 开机自启
161
+ pm2 startup
162
+ pm2 save
128
163
  ```
129
164
 
130
- ## 命令参考
165
+ ## 无图形界面服务器
131
166
 
132
- ### start - 启动客户端
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
- 默认数据目录: `~/.gemini-client/`
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
- 1. 启动 Camoufox 浏览器
154
- 2. 打开 Build App 页面
155
- 3. 检查 Google 登录状态,未登录则等待用户手动登录
156
- 4. 点击 "Continue to the app" 按钮(如果存在)
157
- 5. 关闭可能遮挡的模态框
158
- 6. Build App iframe 中点击 "Connect WS" 按钮
159
- 7. 验证连接成功(按钮文字变为 "Disconnect WS")
160
- 8. 启动保活机制(每 2 小时检查登录状态)
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(非中国大陆 IP)
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
- 可以,使用不同的 `--data-dir` 参数:
230
+ Camoufox + 随机指纹可以降低检测风险,但同一 IP 运行过多账号仍有风险。建议:
231
+ - 同一 IP 不超过 2-3 个账号
232
+ - 使用代理让不同账号走不同 IP(效果更好)
194
233
 
195
- ```bash
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
- ### Q: 如何查看客户端是否连接成功?
236
+ 查看日志,成功连接会显示:
201
237
 
202
- 启动后查看日志,如果看到 `✅ WebSocket 连接成功!` 和 `检测按钮文字: "Disconnect WS"`,说明连接成功。
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
@@ -12,7 +12,7 @@ const program = new Command();
12
12
  program
13
13
  .name('gemini-client')
14
14
  .description('Gemini Proxy Build App 客户端 - 使用 Camoufox 自动保持连接')
15
- .version('1.0.13');
15
+ .version('1.0.14');
16
16
  program
17
17
  .command('start')
18
18
  .description('启动客户端,连接到代理服务器')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemini-proxy-client",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Gemini Proxy Build App 客户端 - 使用 Camoufox 自动保持连接",
5
5
  "main": "dist/index.js",
6
6
  "bin": {