4.1 KiB
Emergency: сеть после переподключения хотспота (macOS)
Одна команда (из любой папки)
bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh recover
Запросит пароль sudo, затем: PAC/SOCKS off → DHCP → ifconfig down → route -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 Wi‑Fi — недостаточно при ARP REJECT.
Ручная «ядерная кнопка» работала, потому что вы вводили пароль и реально сбрасывали маршруты.
Исправлено: recover всегда вызывает sudo с запросом пароля.
2. Manual IPv4 на Wi‑Fi (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.x → ping → Host is down, curl мёртв.
Исправлено: Wi‑Fi только 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 |
Профилактика
- Не использовать Manual Wi‑Fi для Joplin — только DHCP + alias.
- После каждого reconnect: одна команда
recoverвыше. - PAC on — только если на 1089 слушает сервер.
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 | Оглавление |