Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs; document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/. Co-authored-by: Cursor <cursoragent@cursor.com>
8.9 KiB
Экстренное восстановление: прокси ru.hunab.app и SSH
Одна страница на случай, когда «всё слетело». Полная схема, безопасность и нюансы ~/.ssh/config: PROXY_GUIDE.md.
Сеть / хотспот (интернет есть только после перезагрузки): чаще всего системный PAC на localhost:1089 без живого сервера или системный SOCKS на 1080. Пошагово: HOTSPOT_NETWORK_EMERGENCY.md.
Константы (запомнить / вставить в заметки)
| Что | Значение |
|---|---|
| RU-прокси (SSH) | 149.154.64.19, пользователь ahau, порт 22 |
| Домен прокси | ru.hunab.app |
| Прод (DO) | 209.38.32.21, SSH 2222, пользователь hunab (или root) |
| Прод (веб) | hunab.app |
Ключи (типично):
- RU (ahau):
~/.ssh/id_ed25519 - RU root:
~/.ssh/hsites_new_deploy_key→ хостhsites-new - Прод:
~/.ssh/hunab_deploy_key
Порядок проверки (2 минуты)
- Интернет и DNS: открыть в браузере
https://ru.hunab.app/proxy-healthиhttps://ru.hunab.app/api/health. - RU SSH:
ssh -o ConnectTimeout=10 hsites-ahau "echo RU_OK"
Без алиаса:ssh -o ConnectTimeout=10 -i ~/.ssh/id_ed25519 ahau@149.154.64.19 "echo RU_OK" - Прод через RU:
ssh -o ConnectTimeout=15 hunab-prod "echo PROD_OK" - Прод напрямую (если RU мёртв):
ssh -o ConnectTimeout=15 hunab-prod-direct "echo PROD_DIRECT_OK"
Если шаг 2 падает — цепочка через прокси недоступна; используйте прямой доступ к DO (шаг 4) и SOCKS «через DO» (ниже).
Минимальные блоки ~/.ssh/config (восстановить вручную)
Важно: hunab-prod и hunab-prod-root — разные блоки Host (разный User). Не объединять в одну строку Host.
Host hsites-ahau
HostName 149.154.64.19
User ahau
IdentityFile ~/.ssh/id_ed25519
StrictHostKeyChecking accept-new
ServerAliveInterval 30
ServerAliveCountMax 8
Host hunab-prod hunab-prod-via-ahau
HostName 209.38.32.21
User hunab
Port 2222
IdentityFile ~/.ssh/hunab_deploy_key
ProxyJump hsites-ahau
StrictHostKeyChecking accept-new
IdentitiesOnly yes
ServerAliveInterval 30
ServerAliveCountMax 8
Host hunab-prod-direct
HostName 209.38.32.21
User hunab
Port 2222
IdentityFile ~/.ssh/hunab_deploy_key
StrictHostKeyChecking accept-new
IdentitiesOnly yes
ServerAliveInterval 30
ServerAliveCountMax 8
При необходимости root на проде — отдельный блок Host hunab-prod-root / hunab-prod-root-direct с User root (см. PROXY_GUIDE.md).
Зависший master-сокет:
ssh -O exit hunab-prod 2>/dev/null; ssh -O exit hunab-prod-direct 2>/dev/null; rm -f ~/.ssh/cm-hunab-*
SOCKS для Telegram (порт 1081)
Только RU (если достаточно выхода с 149.154.64.19):
ssh -D 1081 -N ahau@149.154.64.19
RU → прод → интернет (когда с RU до Telegram не проходит):
ssh -D 1081 -N -J hsites-ahau -i ~/.ssh/hunab_deploy_key -p 2222 hunab@209.38.32.21
Без RU, только DO:
ssh -D 1081 -N -i ~/.ssh/hunab_deploy_key -p 2222 hunab@209.38.32.21
Проверка (второй терминал):
curl -x socks5h://127.0.0.1:1081 -sI https://api.telegram.org | head -3
В Telegram: SOCKS5, 127.0.0.1, 1081.
Скрипты и launchd: launchd/README.md, scripts/telegram-socks-tunnel.sh.
scp на прод через RU (если нужен файл «прямо сейчас»)
PROXY_CMD="ssh -i $HOME/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new -W %h:%p hsites-ahau"
scp -i ~/.ssh/hunab_deploy_key -o ProxyCommand="$PROXY_CMD" -o ServerAliveInterval=15 \
/path/to/file hunab@209.38.32.21:/home/hunab/
Cursor / PING timeout из РФ
SOCKS для IDE: docs/cursor/README.md, порт 10809. Скрипт docs/cursor/scripts/cursor-socks-tunnel.sh при CURSOR_SOCKS_VIA_DO=1 — только Mac→RU→DO (telegram-socks-via-do); CURSOR_SOCKS_VIA_DO=0 — выход с RU. Не путать с 1081 (Telegram).
Скрипт выбора маршрута к проду
Из репозитория: scripts/ssh-hunab-prod.sh
HUNAB_PROD_FORCE_VIA=1— сразу через RUHUNAB_PROD_FORCE_DIRECT=1— только прямой DO
Краткая версия от PROXY_GUIDE; при расхождении правьте сначала основной гайд.
Как сейчас на этой машине (проверено: 2026-04-07)
Среда: macOS, пользователь eternal, имя хоста Eternals.local.
~/.ssh/config
- В начале файла:
Include ~/.colima/ssh_config(Colima). - RU → прод (основной путь):
hunab-prodиhunab-prod-via-ahau→209.38.32.21:2222, пользовательhunab, ключ~/.ssh/hunab_deploy_key,ProxyJump hsites-ahau, плюс ControlMaster /ControlPath ~/.ssh/cm-hunab-prod-%C, ControlPersist 30m, keepalive, UseKeychain. - Прод без RU:
hunab-prod-direct, root-вариантhunab-prod-root-direct— те же порт/ключ, безProxyJump, свойControlPath(cm-hunab-direct-*/cm-hunab-direct-root-*). - Root через RU:
hunab-prod-root,hunab-prod-root-via-ahau— какhunab-prod, ноUser rootиcm-hunab-prod-root-%C. - RU SSH (ahau):
hsites-ahau→149.154.64.19,~/.ssh/id_ed25519, keepalive, UseKeychain / AddKeysToAgent. - RU SSH (root):
hsites-new→ тот же IP,~/.ssh/hsites_new_deploy_key. - Альтернатива через root на RU:
prod-ru,hunab-prod-via-ru—ProxyJump hsites-new(неhsites-ahau). В конфиге блокHost prod-ruпродублирован дважды — лишнее можно схлопнуть при правке. - Туннель через локальный SOCKS 1090:
prod-tunnel—ProxyCommand nc -X 5 -x 127.0.0.1:1090 %h %p. - SOCKS для Telegram: только
telegram-socks-via-do(Mac→RU→DO).telegram-socks-direct-do— опционально для ручного SSH к DO без RU, не для автозамены SOCKS. - Дополнительно в файле: старые хосты
hsites/hsites.hunab,ahau@ru.hunab, ботыhunab-bot/hunab.bots, алиасtunnelна149.154.64.19.
Ключи на диске (есть): ~/.ssh/id_ed25519, ~/.ssh/hunab_deploy_key, ~/.ssh/hsites_new_deploy_key.
Автозапуск SOCKS 1081 (Telegram)
- LaunchAgent:
~/Library/LaunchAgents/com.hunab.telegram-socks-via-do.plist— RunAtLoad, KeepAlive, лог/tmp/telegram-socks-tunnel-via-do.log. - Скрипт:
~/Library/Application Support/hunab/telegram-socks-launch.sh— всегдаssh -D 1081 -N telegram-socks-via-do(Mac→RU→DO). - Состояние на момент проверки: задание в launchctl в статусе running; при обрыве цепочки SSH в логе сыплются ошибки до следующего успешного подключения (смотреть хвост лога).
Ручной запуск из репозитория
- Скрипт:
docs/connectivity/scripts/telegram-socks-tunnel.sh— порт 1081; безTELEGRAM_SOCKS_VIA_DO— только RU; сTELEGRAM_SOCKS_VIA_DO=1— только Mac→RU→DO (telegram-socks-via-do), как LaunchAgent.
Прочее на машине
- В launchctl также видны Shadowsocks (
com.shadowsocks.local,com.qiuyuzhou.shadowsocksX-NG.local) — к hunab-прокси не относятся, но могут влиять на маршрутизацию, если включены.
Порт 1081 и SSH в момент автоматической проверки из среды агента могли быть пустыми или с ошибками сети; ориентируйтесь на lsof -i :1081 и лог выше.