Files
local_machine/docs/connectivity/HOTSPOT_NETWORK_EMERGENCY.md
ahauimix 0238aa7c02 Add Object B and self-growth canons with Cursor ledger rules; refresh connectivity and VPN runbooks.
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>
2026-07-26 10:22:56 +08:00

4.7 KiB
Raw Permalink Blame History

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 downroute -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 WiFi — недостаточно при ARP REJECT.

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

2. Stale 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

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

Исправлено: recover сначала DHCP, затем joplin-hotspot-alias repairsetmanual *.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

Перед переходом на домашний WiFi (без 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

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

  1. После каждого reconnect хотспота: recover или joplin-ensure-sync.sh.
  2. Не править Manual WiFi вручную — только joplin-hotspot-alias.sh.
  3. PAC on — только если на 1089 слушает сервер.
  4. 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 Оглавление