mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
8b2e028f99
Критичное: - go.mod: версия 1.25.5→1.25.0 (go mod tidy); Dockerfile: тег 1.25 - release.yml: go-version 1.25.5 → stable - удалён temp-файл types.go.tmp.18500.1c9f4278a15a - udprelay/loop.go: defer conn1/conn2.Close() при сбое Dial; лог write-error Безопасность/код: - browserprofile: пермиссии 0644→0600 - bondserver: once.Do перед go readLane (ordering fix) - cmd/server: err= → err:= (shadow fix в AfterFunc) - vkauth/client: vkDelayRandom ctx-aware (возвращает error) - captcha/manual: whitelist хостов в /generic_proxy (SSRF mitigation) Инфра: - .dockerignore: исключить .git/.github/notes/dist из build context - docker-compose.yml: env_file .env для OBF_KEY - entrypoint.sh: позиционные аргументы вместо unquoted vars; валидация host:port CI: - ci.yml: исправлен путь go module cache (~/go/pkg/mod); добавлен -race - .gitignore: добавлены /dist/, *.test, coverage.out, .env, *.tmp - .golangci.yml: добавлены gosec и staticcheck - routes-macos.sh: set -eu вместо set -u Код: - bondclient/bondserver: errors.Is(err, io.EOF) вместо err != io.EOF - cmd/client: константа dtlsHandshakeConcurrency для HandshakeSem Доки: - quickstart.md: добавлен Intel Mac (darwin-amd64) - build.md: версия Go, Windows/macOS cross-compile инструкции - flags.md: уточнено описание -bond
2.6 KiB
2.6 KiB
Сборка
Нужен Go 1.24.x.
go build -o client ./cmd/client
go build -o server ./cmd/server
go test ./...
Кросс-Сборка
Linux amd64:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o server-linux-amd64 ./cmd/server
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o client-linux-amd64 ./cmd/client
Android arm64 как .so (упаковка в приложение, PowerShell):
$env:GOOS="android"; $env:GOARCH="arm64"; $env:CGO_ENABLED="0"
go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so .\cmd\client
Bash:
GOOS=android GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so ./cmd/client
Linux arm64 как .so (в обход NDK, ABI совпадает):
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so ./cmd/client
Linux amd64 как .so:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn-client.so ./cmd/client
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn-server.so ./cmd/server
Все
.soвыше — обычные ELF под.so-именем (CGO_ENABLED=0, не настоящий shared library). Настоящийc-shared—CGO_ENABLED=1+ NDK toolchain (см..github/workflows/release.yml).
Windows amd64:
$env:GOOS="windows"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"
go build -ldflags="-s -w -checklinkname=0" -trimpath -o client-windows-amd64.exe ./cmd/client
go build -ldflags="-s -w -checklinkname=0" -trimpath -o server-windows-amd64.exe ./cmd/server
Windows arm64:
$env:GOOS="windows"; $env:GOARCH="arm64"; $env:CGO_ENABLED="0"
go build -ldflags="-s -w -checklinkname=0" -trimpath -o client-windows-arm64.exe ./cmd/client
go build -ldflags="-s -w -checklinkname=0" -trimpath -o server-windows-arm64.exe ./cmd/server
macOS amd64 (Intel):
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o client-darwin-amd64 ./cmd/client
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o server-darwin-amd64 ./cmd/server
macOS arm64 (Apple Silicon):
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o client-darwin-arm64 ./cmd/client
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o server-darwin-arm64 ./cmd/server