通用 HTTP/HTTPS 转发代理,支持按协议独立开关。可用于 Claude Code、curl、git 等任何支持代理的工具。
本地机器 远程服务器
┌──────────┐ HTTPS_PROXY ┌──────────────────┐
│ 任意工具 ├──────────────────► proxy-server.js ├──► HTTPS 目标(CONNECT 隧道)
│curl/claude│ HTTP_PROXY │ ├──► HTTP 目标(请求转发)
└──────────┘ └──────────────────┘
- HTTPS 代理:通过 HTTP CONNECT 建立隧道,端到端 TLS 加密,代理看不到明文
- HTTP 代理:直接转发 HTTP 请求,代理可见请求内容
两种协议可独立启用/禁用。
# 1. 复制文件到服务器
scp proxy-server.js https-proxy.sh .env.example ubuntu@你的服务器:~/https-proxy/
# 2. 配置
cd ~/https-proxy
cp .env.example .env
# 编辑 .env 设置端口、认证、日志目录、协议开关要求:Node.js 18+(无任何依赖)。
./https-proxy.sh start # 后台启动
./https-proxy.sh stop # 停止
./https-proxy.sh restart # 重启
./https-proxy.sh status # 查看状态
./https-proxy.sh logs # 实时查看日志# 只代理 HTTPS
HTTPS_PROXY=http://user:pass@服务器:8443 claude
# 只代理 HTTP
HTTP_PROXY=http://user:pass@服务器:8443 curl http://example.com
# 同时代理
export HTTPS_PROXY=http://user:pass@服务器:8443
export HTTP_PROXY=http://user:pass@服务器:8443设置代理环境变量不会影响整台电脑,具体取决于你怎么设置:
| 设置方式 | 影响范围 |
|---|---|
HTTPS_PROXY=... claude |
仅这一次命令 |
export HTTPS_PROXY=... 在终端执行 |
当前终端会话里启动的程序 |
写入 ~/.zshrc |
所有新终端里启动的程序 |
| macOS 系统代理设置 | 整台电脑 |
推荐用第一种方式,最精确。
会。 子进程继承父进程的环境变量。所以 Claude Code 通过 Bash 工具执行的 curl、git、npm 等命令,如果它们也读 HTTPS_PROXY,就会走代理。实际影响不大 — 代理只是透传隧道,不改变任何请求内容,本地文件操作(ls、cat 等)不涉及网络,完全不受影响。
Claude Code 支持专用环境变量 CLAUDE_CODE_HTTPS_PROXY,只影响自身的 API 请求,不传递给子进程:
CLAUDE_CODE_HTTPS_PROXY=http://user:pass@服务器:8443 claude这样 Claude Code 的 Bedrock/Anthropic API 调用走代理,而它 spawn 出来的 git、curl 等子命令直连网络。
| 变量 | 默认值 | 说明 |
|---|---|---|
PROXY_PORT |
8443 |
监听端口 |
PROXY_AUTH |
(空) | 用户名:密码,基本认证。为空则不启用 |
PROXY_LOG_DIR |
. |
日志文件存放目录 |
PROXY_ENABLE_HTTPS |
true |
是否启用 HTTPS 代理(CONNECT 隧道) |
PROXY_ENABLE_HTTP |
false |
是否启用 HTTP 代理(请求转发) |
| 变量 | 说明 |
|---|---|
HTTPS_PROXY |
HTTPS 请求走的代理地址 |
HTTP_PROXY |
HTTP 请求走的代理地址 |
CLAUDE_CODE_HTTPS_PROXY |
仅 Claude Code API 请求走代理,不影响子进程 |
# 只代理 HTTPS(默认,适合 Claude Code + Bedrock)
PROXY_ENABLE_HTTPS=true
PROXY_ENABLE_HTTP=false
# 只代理 HTTP
PROXY_ENABLE_HTTPS=false
PROXY_ENABLE_HTTP=true
# 同时代理
PROXY_ENABLE_HTTPS=true
PROXY_ENABLE_HTTP=true日志同时输出到控制台和 $PROXY_LOG_DIR/https-proxy.log,格式:
[2026-04-24T12:30:00.000Z] https-proxy listening on :8443 [HTTPS] (auth enabled)
[2026-04-24T12:30:01.123Z] [https] 1.2.3.4:52301 -> bedrock-runtime.us-east-1.amazonaws.com:443
[2026-04-24T12:30:02.456Z] [http] 1.2.3.4:52302 -> example.com/api/data
[https] 表示 CONNECT 隧道连接,[http] 表示 HTTP 请求转发。
- 生产环境务必设置
PROXY_AUTH,防止被当作开放代理滥用 - 建议配合防火墙规则限制来源 IP
- HTTPS 流量端到端加密,代理只能看到目标主机名
- HTTP 流量代理可见明文,谨慎启用