# 代理配置

netabrowser-cli 通过 patchright `launchPersistentContext({proxy})` 注入代理。

## 推荐：完整代理 URL

```bash
# HTTP 代理
bash scripts/nb.sh open https://example.com --session=acc1 \
  --proxy=http://user:pass@host:port

# SOCKS5 代理（注意协议头是 socks5:// 不是 http://）
bash scripts/nb.sh open https://example.com --session=acc1 \
  --proxy=socks5://user:pass@host:port
```

CLI 会自动解析为：
```
{ server: "socks5://host:port", username: "user", password: "pass" }
```

## ⚠️ 协议必须匹配

| 代理类型 | URL 格式 | 错误写法 |
|---|---|---|
| HTTP 代理 | `http://user:pass@host:port` | |
| SOCKS5 代理 | `socks5://user:pass@host:port` | ❌ `http://user:pass@host:port`（协议不对会 400/ECONNRESET）|

**如何判断代理类型**：看代理提供商给的配置。如果写了 `socks5://` 或端口是 1080/10000 等常见 SOCKS 端口，大概率是 SOCKS5。如果不确定，先用 SOCKS5 试，失败再换 HTTP。

## 出口 IP 验证

```bash
bash scripts/nb.sh open https://httpbin.org/ip --session=test --proxy=socks5://user:pass@host:port
bash scripts/nb.sh snapshot --session=test
# 看页面内容，origin 应为代理 IP
bash scripts/nb.sh close --session=test
```

## 一账号一独立 IP（养号红线）

每个 session 必须配独立代理，否则同 IP 多账号会被平台风控连坐识别。
养号矩阵建议：100 个账号 = 100 个独立固定住宅 IP。
