Обновить 99-tailscale-resume.sh
В Сценарии 2 вместо проверки if [ -f /run/tailscale-suspended ] теперь стоит if ! tailscale status &>/dev/null. Теперь скрипт не просто восстанавливает соединение после сна, а принудительно поднимет Tailscale при переключении на любую сеть (Wi-Fi, провод, мобильный хотспот), если он был выключен, исключая только сеть AirPort
This commit is contained in:
@@ -1,4 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
exec &> /tmp/tailscale-resume.log
|
||||||
|
set -x
|
||||||
|
|
||||||
INTERFACE="$1"
|
INTERFACE="$1"
|
||||||
ACTION="$2"
|
ACTION="$2"
|
||||||
|
|
||||||
@@ -16,6 +19,7 @@ send_notification() {
|
|||||||
ACTIVE_USER=$(id -nu "$USER_ID" 2>/dev/null)
|
ACTIVE_USER=$(id -nu "$USER_ID" 2>/dev/null)
|
||||||
|
|
||||||
if [ -n "$ACTIVE_USER" ]; then
|
if [ -n "$ACTIVE_USER" ]; then
|
||||||
|
# Задержка для готовности DBus
|
||||||
sleep 1
|
sleep 1
|
||||||
systemd-run --machine="${ACTIVE_USER}@.host" --user \
|
systemd-run --machine="${ACTIVE_USER}@.host" --user \
|
||||||
notify-send -i "$icon" "$title" "$message"
|
notify-send -i "$icon" "$title" "$message"
|
||||||
@@ -27,7 +31,7 @@ if [ "$ACTION" = "up" ]; then
|
|||||||
|
|
||||||
CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi 2>/dev/null | grep '^yes:' | cut -d: -f2)
|
CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi 2>/dev/null | grep '^yes:' | cut -d: -f2)
|
||||||
|
|
||||||
# Сценарий 1: Сеть AirPort -> Отключение Tailscale
|
# Сценарий 1: Сеть AirPort -> Принудительное отключение
|
||||||
if [ "$CURRENT_SSID" = "AirPort" ]; then
|
if [ "$CURRENT_SSID" = "AirPort" ]; then
|
||||||
if tailscale status &>/dev/null || [ -f /run/tailscale-suspended ]; then
|
if tailscale status &>/dev/null || [ -f /run/tailscale-suspended ]; then
|
||||||
tailscale down
|
tailscale down
|
||||||
@@ -37,14 +41,14 @@ if [ "$ACTION" = "up" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Сценарий 2: Любая другая сеть -> Гарантированное подключение
|
# Сценарий 2: Любая другая сеть -> Автоматическое подключение
|
||||||
if ! tailscale status &>/dev/null; then
|
if ! tailscale status &>/dev/null; then
|
||||||
if tailscale up; then
|
if tailscale up; then
|
||||||
rm -f /run/tailscale-suspended
|
rm -f /run/tailscale-suspended
|
||||||
send_notification "network-vpn" "Tailscale" "Автоматически подключен"
|
send_notification "network-vpn" "Tailscale" "Автоматически подключен"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Если VPN уже был активен, просто убираем маркер сна
|
# Если Tailscale уже был активен, просто очищаем маркер сна
|
||||||
rm -f /run/tailscale-suspended
|
rm -f /run/tailscale-suspended
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
Reference in New Issue
Block a user