Expand local_machine docs and automation for connectivity, games, and ops.
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>
This commit is contained in:
172
docs/connectivity/PROXY_EMERGENCY.md
Normal file
172
docs/connectivity/PROXY_EMERGENCY.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# Экстренное восстановление: прокси ru.hunab.app и SSH
|
||||
|
||||
Одна страница на случай, когда «всё слетело». Полная схема, безопасность и нюансы `~/.ssh/config`: [PROXY_GUIDE.md](./PROXY_GUIDE.md).
|
||||
|
||||
**Сеть / хотспот (интернет есть только после перезагрузки):** чаще всего системный **PAC на localhost:1089** без живого сервера или системный SOCKS на **1080**. Пошагово: **[HOTSPOT_NETWORK_EMERGENCY.md](./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 минуты)
|
||||
|
||||
1. **Интернет и DNS:** открыть в браузере `https://ru.hunab.app/proxy-health` и `https://ru.hunab.app/api/health`.
|
||||
2. **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"`
|
||||
3. **Прод через RU:** `ssh -o ConnectTimeout=15 hunab-prod "echo PROD_OK"`
|
||||
4. **Прод напрямую** (если 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`.
|
||||
|
||||
```sshconfig
|
||||
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](./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):**
|
||||
|
||||
```bash
|
||||
ssh -D 1081 -N ahau@149.154.64.19
|
||||
```
|
||||
|
||||
**RU → прод → интернет** (когда с RU до Telegram не проходит):
|
||||
|
||||
```bash
|
||||
ssh -D 1081 -N -J hsites-ahau -i ~/.ssh/hunab_deploy_key -p 2222 hunab@209.38.32.21
|
||||
```
|
||||
|
||||
**Без RU, только DO:**
|
||||
|
||||
```bash
|
||||
ssh -D 1081 -N -i ~/.ssh/hunab_deploy_key -p 2222 hunab@209.38.32.21
|
||||
```
|
||||
|
||||
Проверка (второй терминал):
|
||||
|
||||
```bash
|
||||
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](./launchd/README.md), [scripts/telegram-socks-tunnel.sh](./scripts/telegram-socks-tunnel.sh).
|
||||
|
||||
---
|
||||
|
||||
## scp на прод через RU (если нужен файл «прямо сейчас»)
|
||||
|
||||
```bash
|
||||
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](../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](./scripts/ssh-hunab-prod.sh)
|
||||
- `HUNAB_PROD_FORCE_VIA=1` — сразу через RU
|
||||
- `HUNAB_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` и лог выше.*
|
||||
Reference in New Issue
Block a user