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
43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
#!/bin/zsh
|
|
# Usage: ./client -debug ... 2>&1 | ./scripts/routes-macos.sh
|
|
set -eu
|
|
|
|
default_info="$(route -n get default 2>/dev/null || true)"
|
|
default_if="$(printf '%s\n' "$default_info" | awk '/interface:/{print $2; exit}')"
|
|
gateway="$(printf '%s\n' "$default_info" | awk '/gateway:/{print $2; exit}')"
|
|
|
|
if [[ -n "${default_if:-}" && "$default_if" == utun* ]]; then
|
|
echo "Default route is currently $default_if. Disconnect WireGuard/VPN first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "${gateway:-}" ]]; then
|
|
echo "Could not determine normal default gateway." >&2
|
|
exit 1
|
|
fi
|
|
|
|
while IFS= read -r line; do
|
|
line="${line//$'\r'/}"
|
|
|
|
remote="$(printf '%s\n' "$line" | sed -nE '
|
|
s/.*TURN server IP: (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\1/p
|
|
t done
|
|
s/.*relayed-address=(([0-9]{1,3}\.){3}[0-9]{1,3}):[0-9]+.*/\1/p
|
|
t done
|
|
s/^(([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2})$/\1/p
|
|
t done
|
|
s/^(([0-9]{1,3}\.){3}[0-9]{1,3})$/\1/p
|
|
:done
|
|
')"
|
|
|
|
[[ -z "$remote" ]] && continue
|
|
|
|
if [[ "$remote" == */* ]]; then
|
|
sudo route -n delete -net "$remote" >/dev/null 2>&1 || true
|
|
sudo route -n add -net "$remote" "$gateway" || true
|
|
else
|
|
sudo route -n delete -host "$remote" >/dev/null 2>&1 || true
|
|
sudo route -n add -host "$remote" "$gateway" || true
|
|
fi
|
|
done
|