一個輕量化、易用且高效)的反向代理和端口轉發工具
- 易用
- 不需花費太多時間就能輕鬆配置
- 支持多個docker節點
- 除錯簡單
- 自動配置 SSL 證書(參見可用的 DNS 供應商)
- 透過 Docker 容器自動配置
- 容器狀態變更時自動熱重載
- idlesleeper 容器閒置時自動暫停/停止,入站時自動喚醒 (可選, 參見 展示)
- HTTP(s) 反向代理
- HTTP middleware
- 自訂 error pages
- TCP/UDP 端口轉發
- Web 面板 (內置App dashboard)
- 支持 linux/amd64、linux/arm64 平台
- 使用 Go 編寫
-
抓取Docker鏡像
docker pull ghcr.io/yusing/go-proxy:latest
-
建立新的目錄,並切換到該目錄,並執行
docker run --rm -v .:/setup ghcr.io/yusing/go-proxy /app/go-proxy setup
-
設置 DNS 記錄,例如:
- A 記錄:
*.y.z
->10.0.10.1
- AAAA 記錄:
*.y.z
->::ffff:a00:a01
- A 記錄:
-
配置
docker-socket-proxy
其他 Docker 節點(如有) (參見 範例) 然後加到config.yml
中 -
大功告成,你可以做一些額外的配置
- 使用文本編輯器 (推薦 Visual Studio Code 參見 VSCode 使用 schema)
- 或通過
http://localhost:3000
使用網頁配置編輯器 - 詳情請參閱 docker.md
參數 | 描述 | 示例 |
---|---|---|
空 | 啟動代理服務器 | |
validate |
驗證配置並退出 | |
reload |
強制刷新配置 | |
ls-config |
列出配置並退出 | go-proxy ls-config | jq |
ls-route |
列出路由並退出 | go-proxy ls-route | jq |
go-proxy ls-route | jq |
||
ls-icons |
列出 dashboard-icons 並退出 | go-proxy ls-icons | grep adguard |
debug-ls-mtrace |
列出middleware追蹤 (僅限於 debug 模式) | go-proxy debug-ls-mtrace | jq |
使用 docker exec go-proxy /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/settings.example.json
到 .vscode/settings.json
並根據需求修改
-
獲取源碼
git clone https://github.com/yusing/go-proxy --depth=1
-
安裝/升級 go 版本 (>=1.22) 和
make
(如果尚未安裝) -
如果之前編譯過(go 版本 < 1.22),請使用
go clean -cache
清除緩存 -
使用
make get
獲取依賴項 -
使用
make build
編譯