服務器端

JoyProxy 服務器端

適用於 Linux 與 Windows 的高性能 HTTP / SOCKS5 代理網關。五種啓動模式,可選外部驗證與流量 API。

預編譯安裝包

從 GitHub 下載 Linux 與 Windows 預編譯包,無需編譯。

Linux

從 GitHub Releases 取得 Linux amd64 二進位(v2.3)及可選 CentOS 7 壓縮包。

Windows

joyproxy-gui.exe 爲圖形界面版,joyproxy.exe 爲命令行版。

桌面代理管理器

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。

📊

流量 API

連接結束時可選異步流量上報。

⚡

速率限制

按用戶的連接限制、帶寬上限與全局連接速率限制。

🔄

守護程式模式

後臺運行並支援崩潰後自動重啓,適合生產部署。

🔍

TLS SNI 嗅探

可選在 HTTP CONNECT 上嗅探網域。

五種授權模式

選擇適合您部署的模式

1. 開放代理(無密碼)

無 --auth-url。任何能連到該埠的用戶均可無憑證使用代理。

./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP"

2. 白名單授權

使用 --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"

3. 用戶名 / 密碼

不要使用 --auth-nouser。客戶端必須發送 Proxy-Authorization 或 SOCKS5 憑證。缺少時返回 407。

./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP"

4. 外部驗證 API

可選 --auth-url 對每條連接向您的端點發起 HTTP GET。

./joyproxy sps -S http -p ":8080" -g "YOUR_PUBLIC_IP" \
  --auth-url "https://your-api.example.com/auth"

5. 外部流量 API

可選 --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"

外部驗證 API 參考

設置 --auth-url 後,每條連接會附帶以下查詢參數:

參數說明
user客戶端用戶名(--auth-nouser 時可爲空)
pass客戶端密碼
client_addr客戶端地址 IP:埠
local_addr代理監聽地址 IP:埠
target目標:HTTP URL 或 host:port
servicehttp 或 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每秒最大新建連接數(按用戶)

外部流量 API 參考

設置 --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 遠程地址
idhttp 或 socks
sniff_domainTLS SNI(僅啓用 --sniff-domain 時)

守護程式與 systemd

生產環境使用 --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。

v2.3(目前推薦)

  • SOCKS5 UDP 經 socks5:// 上級轉發:UDP 與 TCP 一樣走驗證回傳的上級線路。
  • 修復上級 UDP ASSOCIATE 回 0.0.0.0/回環時中繼位址取錯(改用控制 TCP 對端位址)。
  • 包含 v2.2:UDP ASSOCIATE 回報位址優先 -g 公網 IP,外網用戶端可存取中繼埠。

驗證 API 對 SOCKS/UDP 須回傳 socks5://(不能僅 http://)。

v2.2

  • UDP ASSOCIATE 回報位址優先 -g 公網 IP,不再用網卡內網 IP。

v2.1

  • SOCKS5 UDP 可經 socks5:// 上級轉發,與 HTTP/SOCKS5 TCP 共用監聽埠。

部署到您的服務器

下載安裝包、設置啓動模式,即可開始接受連接。

下載安裝包