mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
4.8 KiB
4.8 KiB
go-proxy
一個輕量化、易用且高效的反向代理和端口轉發工具
目錄
重點
- 易用
- 不需花費太多時間就能輕鬆配置
- 除錯簡單
- 自動處理 HTTPS 證書(參見可用的 DNS 供應商)
- 透過 Docker 容器自動配置
- 容器狀態變更時自動熱重載
- 容器閒置時自動暫停/停止,入站時自動喚醒
- HTTP(s)反向代理
- TCP/UDP 端口轉發
- 用於配置和監控的前端 Web 面板(截圖)
- 使用 Go 編寫
入門指南
安裝
-
設置 DNS 記錄,例如:
- A 記錄:
*.y.z
->10.0.10.1
- AAAA 記錄:
*.y.z
->::ffff:a00:a01
- A 記錄:
-
安裝
go-proxy
參見這裡 -
配置
go-proxy
- 使用文本編輯器 (推薦 Visual Studio Code 參見 VSCode 使用 schema)
- 或通過
http://gp.y.z
使用網頁配置編輯器
命令行參數
參數 | 描述 | 示例 |
---|---|---|
空 | 啟動代理服務器 | |
validate |
驗證配置並退出 | |
reload |
強制刷新配置 | |
ls-config |
列出配置並退出 | go-proxy ls-config | jq |
ls-route |
列出路由並退出 | go-proxy ls-route | jq |
使用 docker exec <容器名稱> /app/go-proxy <參數>
運行
環境變量
環境變量 | 描述 | 默認 | 格式 |
---|---|---|---|
GOPROXY_NO_SCHEMA_VALIDATION |
禁用 schema 驗證 | false |
boolean |
GOPROXY_DEBUG |
啟用調試輸出 | false |
boolean |
GOPROXY_HTTP_ADDR |
http 收聽地址 | :80 |
[host]:port |
GOPROXY_HTTPS_ADDR |
https 收聽地址 | :443 |
[host]:port |
GOPROXY_API_ADDR |
api 收聽地址 | 127.0.0.1:8888 |
[host]:port |
VSCode 中使用 JSON Schema
複製 .vscode/settings.example.json
到 .vscode/settings.json
並根據需求修改
配置文件
參見 config.example.yml 了解更多
# autocert 配置
autocert:
email: # ACME 電子郵件
domains: # 域名列表
provider: # DNS 供應商
options: # 供應商個別配置
- ...
# 配置文件 / docker
providers:
include:
- providers.yml
- other_file_1.yml
- ...
docker:
local: $DOCKER_HOST
remote-1: tcp://10.0.2.1:2375
remote-2: ssh://root:1234@10.0.2.2
透過文件配置
參見 Fields
已知問題
autocert
配置不能熱重載
源碼編譯
-
獲取源碼
git clone https://github.com/yusing/go-proxy --depth=1
-
安裝/升級 go 版本 (>=1.22) 和
make
(如果尚未安裝) -
如果之前編譯過(go 版本 < 1.22),請使用
go clean -cache
清除緩存 -
使用
make get
獲取依賴項 -
使用
make build
編譯