mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
f3166c0bae
- routes.{sh,ps1,macos.sh} → scripts/; старые файлы из корня удалены
- унифицирован парсинг: TURN server IP, relayed-address=, CIDR, plain IP
- исправлен баг доки: логи клиента идут в stderr, пайп требует -debug 2>&1
- quickstart.md переписан: секция маршрутов, команды трёх платформ
- troubleshooting.md: обновлены пути и примечание про -debug
35 lines
945 B
Bash
35 lines
945 B
Bash
#!/bin/bash
|
|
# Usage: ./client -debug ... 2>&1 | ./scripts/routes.sh
|
|
set -euo pipefail
|
|
|
|
gateway="$(ip -o -4 route show to default | awk '/via/ {print $3}' | head -1)"
|
|
if [[ -z "${gateway}" ]]; then
|
|
echo "Could not determine default gateway" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ip_cmd=(ip)
|
|
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
|
ip_cmd=(sudo ip)
|
|
fi
|
|
|
|
while IFS= read -r line; do
|
|
line="${line%$'\r'}"
|
|
|
|
remote=""
|
|
if [[ "$line" =~ TURN\ server\ IP:\ (([0-9]{1,3}\.){3}[0-9]{1,3}) ]]; then
|
|
remote="${BASH_REMATCH[1]}"
|
|
elif [[ "$line" =~ relayed-address=(([0-9]{1,3}\.){3}[0-9]{1,3}):[0-9]+ ]]; then
|
|
remote="${BASH_REMATCH[1]}"
|
|
elif [[ "$line" =~ ^(([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2})$ ]]; then
|
|
remote="$line"
|
|
elif [[ "$line" =~ ^(([0-9]{1,3}\.){3}[0-9]{1,3})$ ]]; then
|
|
remote="$line"
|
|
fi
|
|
|
|
[[ -z "$remote" ]] && continue
|
|
|
|
echo "Ensuring route to $remote via $gateway"
|
|
"${ip_cmd[@]}" route replace "$remote" via "$gateway"
|
|
done
|