# curl 代理接入示例

使用占位凭据分别演示 HTTP/HTTPS CONNECT 和 SOCKS5 TCP 请求。

curl 示例适合最小验证和服务器健康检查。真实值只通过受控环境变量或密钥注入。

## HTTP/HTTPS

```bash
curl --connect-timeout 10 --max-time 30 \
  --proxy "http://<proxy-username>:<proxy-password>@<gateway-host>:<gateway-port>" \
  "https://<public-test-host>/ip"
```

## SOCKS5 TCP

```bash
curl --connect-timeout 10 --max-time 30 \
  --proxy "socks5h://<proxy-username>:<proxy-password>@<gateway-host>:<gateway-port>" \
  "https://<public-test-host>/ip"
```

## 准备

- 从控制台取得当前有效账密配置。
- 避免在 shell 历史和 CI 输出中回显密码。

## 执行

- HTTP 代理可以访问 HTTP 或 HTTPS 目标。
- SOCKS5 域名请求使用 `socks5h`。

## 验证步骤

1. 将真实配置放入受控环境变量或临时凭据存储，不把完整代理 URL 写进脚本仓库。
2. 分别运行 HTTP/HTTPS 与 `socks5h` 示例，保留连接超时和整体超时。
3. 检查 HTTP 状态码、返回的公网出口与地区，并与未使用代理时的出口对比。

## 预期结果

- 命令在 30 秒整体超时内返回成功状态，响应中的出口 IP 与本地公网 IP 不同。
- `socks5h` 由代理侧解析目标域名，避免把该域名先交给本地 DNS。

## 失败边界

- curl 在解析命令或代理 URL 时退出，说明请求尚未到达网关；`407` 才表示已到认证阶段。
- 检测地址成功不保证任意目标均可访问，目标 `403`、`429` 和业务内容需独立判断。

## 安全

- 调试输出需要删除 Proxy-Authorization。
- 不要把带密码的完整命令粘贴到工单。

html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}
