27 lines
1.5 KiB
Bash
Executable File
27 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# montana-vpn-proxy — системный прокси-toggle узла Montana.
|
|
# Запускается под root через NOPASSWD-правило /etc/sudoers.d/montana-vpn,
|
|
# установленное приложением Montana при первом подключении ВПН.
|
|
# Production main net. Никаких внешних зависимостей кроме networksetup.
|
|
set -e
|
|
ACTION="${1:-off}"
|
|
SOCKS_PORT="${2:-10808}"
|
|
HTTP_PORT="${3:-10809}"
|
|
|
|
while IFS= read -r svc; do
|
|
[ -z "$svc" ] && continue
|
|
case "$svc" in \**) continue;; esac
|
|
if [ "$ACTION" = "on" ]; then
|
|
/usr/sbin/networksetup -setsocksfirewallproxy "$svc" 127.0.0.1 "$SOCKS_PORT" 2>/dev/null || true
|
|
/usr/sbin/networksetup -setsocksfirewallproxystate "$svc" on 2>/dev/null || true
|
|
/usr/sbin/networksetup -setwebproxy "$svc" 127.0.0.1 "$HTTP_PORT" 2>/dev/null || true
|
|
/usr/sbin/networksetup -setwebproxystate "$svc" on 2>/dev/null || true
|
|
/usr/sbin/networksetup -setsecurewebproxy "$svc" 127.0.0.1 "$HTTP_PORT" 2>/dev/null || true
|
|
/usr/sbin/networksetup -setsecurewebproxystate "$svc" on 2>/dev/null || true
|
|
else
|
|
/usr/sbin/networksetup -setsocksfirewallproxystate "$svc" off 2>/dev/null || true
|
|
/usr/sbin/networksetup -setwebproxystate "$svc" off 2>/dev/null || true
|
|
/usr/sbin/networksetup -setsecurewebproxystate "$svc" off 2>/dev/null || true
|
|
fi
|
|
done < <(/usr/sbin/networksetup -listallnetworkservices | tail -n +2)
|