Track day metrics/anamnesis HARD rules under .cursor/rules and personal docs so each screening updates days/{KIN}, dynamics, and big-data ledger.
Co-authored-by: Cursor <cursoragent@cursor.com>
4.7 KiB
Emergency: сеть после переподключения хотспота (macOS)
Одна команда (из любой папки)
bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh recover
Запросит пароль sudo, затем: PAC/SOCKS off → DHCP (снять stale Manual) → ifconfig down → route -n flush → DNS → DHCP → Joplin primary *.100 (setmanual с текущим шлюзом).
Диагностика:
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. Stale 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
В prefs оставался шлюз 10.219.227.39, хотспот уже в 10.36.136.x → ping → Host is down, curl мёртв.
Исправлено: recover сначала DHCP, затем joplin-hotspot-alias repair — setmanual *.100 с актуальным gateway (не старый из prefs). См. apps/joplin/STABLE_SETUP.md.
На хотспоте Manual *.100 — норма для Joplin. Опасен только устаревший Manual после смены подсети.
3. PAC / SOCKS (вторично)
PAC на :1089 без сервера усиливает сбои, но не объясняет ping 8.8.8.8 → No route to host.
Отдельно: системный SOCKS на 127.0.0.1:10809 без слушателя (после exit-via-ru) ломает приложения с системным прокси (Thunderbird — все ящики) при живом curl. Это не хотспот — см. PROXY_EMERGENCY.md и vpn/RUNBOOK.md.
Что делает recover сейчас
| Шаг | Действие |
|---|---|
| 1 | PAC off |
| 2 | SOCKS off |
| 3 | networksetup -setdhcp Wi-Fi (снимает stale Manual) |
| 4 | sudo ifconfig en0 down |
| 5 | sudo route -n flush |
| 6 | DNS flush + ifconfig up + ipconfig DHCP |
| 7 | Ждёт gateway (до 30 с) |
| 8 | joplin-hotspot-alias.sh repair → setmanual <subnet>.100 |
Ядерная кнопка (если скрипт недоступен)
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
Перед переходом на домашний Wi‑Fi (без Joplin с телефона):
./docs/apps/joplin/scripts/joplin-hotspot-alias.sh dhcp
Диагностика
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 router ≠ runtime gateway | Stale Joplin static → recover |
No Router MAC в wifi.log |
ARP на шлюз не прошёл |
REJECT в route get gateway |
Нужен route flush |
primary ≠ *.100 на хотспоте |
./joplin-hotspot-alias.sh repair |
Профилактика
- После каждого reconnect хотспота:
recoverилиjoplin-ensure-sync.sh. - Не править Manual Wi‑Fi вручную — только
joplin-hotspot-alias.sh. - PAC on — только если на 1089 слушает сервер.
exit-via-ru-do.sh— после рабочегоcurl https://1.1.1.1.
Связанные документы
| Документ | Зачем |
|---|---|
| apps/joplin/STABLE_SETUP.md | primary *.100, синк |
| PROXY_EMERGENCY.md | SSH / SOCKS |
| README.md | Оглавление |