适用于 Linux 与 Windows 的高性能 HTTP / SOCKS5 代理网关。五种启动模式,可选外部验证与流量 API。
从 GitHub 下载 Linux 与 Windows 预编译包,无需编译。
joyproxy-gui.exe 提供可视化界面,可设置监听端口、验证模式、启停控制与实时日志,无需命令行。
在同一界面设置监听端口、本机 IP、代理类型及开放/白名单/密码模式。
启动、停止、保存设置,执行状态一目了然。
无需另外开启终端即可实时查看代理日志。
执行 ./joyproxy sps -h 查看所有参数。常用选项:
| 参数 | 必填 | 说明 |
|---|---|---|
-S | 否 | 上游中继类型:http 或 socks5(默认 http) |
-p | 是 | 监听端口,如 :8080 或 :5001-5999 |
-g | 建议 | 本机公网 IP;调用验证 API 时作为 local_addr |
-parent | 否 | 验证 API 未返回 upstream 时的默认上级代理 |
--auth-url | 否 | 外部验证 API URL(可选) |
--auth-nouser | 否 | 客户端无需密码;由 API 按连接决定 |
--auth-cache | 否 | 验证成功缓存 TTL(秒) |
--auth-fail-cache | 否 | 验证失败缓存 TTL(秒) |
--traffic-url | 否 | 外部流量上报 API URL(可选) |
--daemon | 否 | 后台运行(shell 立即返回) |
--forever | 否 | 配合 --daemon:崩溃后自动重启 |
--no-detach | 否 | 配合 --daemon:不脱离终端(systemd 使用) |
--verbose | 否 | 完整日志 |
--quiet | 否 | 仅错误日志 |
--max-conns-rate | 否 | 全局每秒最大新建连接数(0 不限制) |
--sniff-domain | 否 | 对 HTTP CONNECT 嗅探 TLS SNI |
./joyproxy sps -h
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP"
适用于您基础设施的生产级代理网关
可在可配置的单一端口或端口范围上提供 HTTP 与 SOCKS5。
开放代理、白名单 API、用户名/密码或完整外部验证 API。
连接结束时可选异步流量上报。
按用户的连接限制、带宽上限与全局连接速率限制。
后台运行并支持崩溃后自动重启,适合生产部署。
可选在 HTTP CONNECT 上嗅探网域。
选择适合您部署的模式
无 --auth-url。任何能连到该端口的用户均可无凭证使用代理。
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP"
使用 --auth-nouser + --auth-url。客户端无需密码;您的 API 按连接决定允许或拒绝。
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP" \
--auth-nouser --auth-url "https://your-api.example.com/auth"
不要使用 --auth-nouser。客户端必须发送 Proxy-Authorization 或 SOCKS5 凭证。缺少时返回 407。
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP"
可选 --auth-url 对每条连接向您的端点发起 HTTP GET。
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP" \
--auth-url "https://your-api.example.com/auth"
可选 --traffic-url 在连接结束时异步回报。您的 API 应返回 204 No Content。
./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP" \
--auth-nouser --traffic-url "https://your-api.example.com/traffic"
设置 --auth-url 后,每条连接会附带以下查询参数:
| 参数 | 说明 |
|---|---|
user | 客户端用户名(--auth-nouser 时可为空) |
pass | 客户端密码 |
client_addr | 客户端地址 IP:端口 |
local_addr | 代理监听地址 IP:端口 |
target | 目标:HTTP URL 或 host:port |
service | http 或 socks |
sps | 固定为 1 |
您的 API 应返回 200 或 204,并附 upstream 标头以放行;返回 upstream: ERR 或非 200/204 则拒绝(客户端收到 503,或通过 X-Joyproxy-Reject-Status / X-Joyproxy-Deny 返回 407/429)。
| 响应标头 | 说明 |
|---|---|
upstream | 本连接使用的上级代理 URL |
outgoing | 出站源 IP 绑定提示 |
userconns / ipconns | 最大并发连接数(按用户) |
userrate / iprate | 单连接带宽字节/秒(按用户) |
userqps / ipqps | 每秒最大新建连接数(按用户) |
设置 --traffic-url 后,每条连接结束时会异步发起 HTTP GET。您的 API 应返回 204 No Content。
| 参数 | 说明 |
|---|---|
act | 流量 |
bytes | 传输字节总数(上行 + 下行) |
client_addr | 客户端 IP:端口 |
server_addr | 代理服务地址 IP:端口 |
target_addr | 目标主机或 IP:端口 |
username | 代理认证用户名(如有) |
upstream | 实际使用的上级 URL(如有) |
out_local_addr | 出站 TCP 本地地址 |
out_remote_addr | 出站 TCP 远程地址 |
id | http 或 socks |
sniff_domain | TLS SNI(仅启用 --sniff-domain 时) |
生产环境使用 --daemon --forever。使用 systemd 时请加 --no-detach,避免主程序立即退出。
./joyproxy sps -S http -p ":5001-5999" -g "YOUR_PUBLIC_IP" \
--auth-nouser --daemon --forever
# systemd unit: add --no-detach
客户端连接至 joyproxy-server;服务器在转发流量前可选调用您的验证 API。
近期版本说明,完整记录见 GitHub。
鉴权 API 对 SOCKS/UDP 须返回 socks5://(不能仅 http://)。