Files
local_machine/docs/connectivity/HOTSPOT_NETWORK_EMERGENCY.md

4.1 KiB
Raw Blame History

Emergency: сеть после переподключения хотспота (macOS)


Одна команда (из любой папки)

bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh recover

Запросит пароль sudo, затем: PAC/SOCKS off → DHCPifconfig downroute -n flush → DNS → DHCP → Joplin alias *.100.

Диагностика:

bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh status

RCA (почему старый recover не помогал)

1. Ядерный сброс не выполнялся

Скрипт проверял sudo -n (passwordless). Без NOPASSWD в sudoers он пропускал route flush и делал только toggle WiFi — недостаточно при ARP REJECT.

Ручная «ядерная кнопка» работала, потому что вы вводили пароль и реально сбрасывали маршруты.

Исправлено: recover всегда вызывает sudo с запросом пароля.

2. Manual IPv4 на WiFi (Joplin) ломал маршрут

/var/log/wifi.log при reconnect:

IP Address: 10.219.227.100
Default Gateway IP Address: 10.219.227.39
No Router MAC Address
ROUTER_MAC_ADDR = 0x000000000000

В prefs оставался шлюз 10.219.227.39, хотспот уже в 10.36.136.xpingHost is down, curl мёртв.

Исправлено: WiFi только DHCP; Joplin — alias <подсеть>.100 на en0 (не трогает default route). См. apps/joplin/STABLE_SETUP.md.

3. PAC / SOCKS (вторично)

PAC на :1089 без сервера усиливает сбои, но не объясняет ping 8.8.8.8 → No route to host.


Что делает recover сейчас

Шаг Действие
1 PAC off
2 SOCKS off
3 networksetup -setdhcp Wi-Fi (снимает Manual)
4 sudo ifconfig en0 down
5 sudo route -n flush
6 DNS flush + ifconfig up + ipconfig DHCP
7 Ждёт gateway (до 30 с)
8 ifconfig en0 alias <subnet>.100 для Joplin

Ядерная кнопка (если скрипт недоступен)

sudo networksetup -setdhcp "Wi-Fi"
sudo ifconfig en0 down
sudo route -n flush
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
sudo ifconfig en0 up
sudo ipconfig set en0 DHCP
bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh recover

Диагностика

networksetup -getinfo "Wi-Fi"
ifconfig en0 | grep inet
route -n get default
bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh status
./docs/apps/joplin/scripts/joplin-webdav-status.sh
grep -E 'Router MAC|No Router' /var/log/wifi.log | tail -5
Признак Причина
Manual + другая подсеть в gateway Старый Joplin static
No Router MAC в wifi.log ARP на шлюз не прошёл
REJECT в route get gateway Нужен route flush
Primary DHCP OK, нет *.100 alias Запустить recover

Профилактика

  1. Не использовать Manual WiFi для Joplin — только DHCP + alias.
  2. После каждого reconnect: одна команда recover выше.
  3. PAC on — только если на 1089 слушает сервер.
  4. exit-via-ru-do.shпосле рабочего curl https://1.1.1.1.

Связанные документы

Документ Зачем
apps/joplin/STABLE_SETUP.md DHCP + alias
PROXY_EMERGENCY.md SSH / SOCKS
README.md Оглавление