Skip to content

ancanglee/https-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

https-proxy

通用 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 工具执行的 curlgitnpm 等命令,如果它们也读 HTTPS_PROXY,就会走代理。实际影响不大 — 代理只是透传隧道,不改变任何请求内容,本地文件操作(lscat 等)不涉及网络,完全不受影响。

只让 Claude Code API 请求走代理

Claude Code 支持专用环境变量 CLAUDE_CODE_HTTPS_PROXY,只影响自身的 API 请求,不传递给子进程:

CLAUDE_CODE_HTTPS_PROXY=http://user:pass@服务器:8443 claude

这样 Claude Code 的 Bedrock/Anthropic API 调用走代理,而它 spawn 出来的 gitcurl 等子命令直连网络。

环境变量

服务端(通过 .env 文件配置)

变量 默认值 说明
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 流量代理可见明文,谨慎启用

About

this is a transparent https proxy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors