Files
local_machine/docs/connectivity/vpn/SSH_EXIT_MODES.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

6.7 KiB
Raw Blame History

SSH SOCKS: быстрое переключение выхода в интернет

Операционный ранбук (старт / сброс / из любой папки): RUNBOOK.md.

Три режима без WireGuard/Shadowsocks: локальный IP, RU-прокси, RU → DO (снаружи виден IP прод-сервера DO).

Политика: для выхода с IP DO используется только цепочка Mac → RU (hsites-ahau) → DO (telegram-socks-via-do). Прямой Mac→DO скрипты не поднимают.

На macOS режимы ru / ru-do по умолчанию включают системный SOCKS (networksetup на WiFi → 127.0.0.1:10809), чтобы браузер и приложения выходили с нужным IP. local его выключает. Отключить поведение: SSH_EXIT_SYSTEM_PROXY=0.

Ловушка: если SSH на 10809 умер, а системный SOCKS остался Enabled: Yes, приложения с системным прокси (Thunderbird, Safari/Chrome) перестают ходить в сеть при живом curl. Почта в TB падает со всех ящиков. Мягкий сброс: networksetup -setsocksfirewallproxystate "Wi-Fi" off (не трогает Telegram 1081). Полный: exit-via-local.sh. Ранбук: RUNBOOK.md.


Из‑за рубежа: RUсервисы режут иностранный IP

bash /Users/eternal/code/local_machine/scripts/vpn/exit-via-ru.sh
bash /Users/eternal/code/local_machine/scripts/vpn/ssh-exit-mode.sh verify

Сброс при проблемах с сетью:

bash /Users/eternal/code/local_machine/scripts/vpn/exit-via-local.sh

Полный чеклист: RUNBOOK.md.


Ожидаемые IP (проверка «снаружи»)

Режим Как проверить Ожидаемый публичный IP (на момент настройки репо)
local curl -sS https://ipinfo.io/ip Ваш домашний/мобильный IP
ru curl -sS -x socks5h://127.0.0.1:10809 https://ipinfo.io/ip 149.154.64.19 (RU VPS, ru.hunab.app)
ru-do то же -x socks5h://127.0.0.1:10809 209.38.32.21 (DO, hunab.app)

Если IP у VPS сменился — сверяйте с PROXY_GUIDE.md / PROXY_EMERGENCY.md.

Быстрая проверка одной командой (порт SOCKS по умолчанию 10809):

./scripts/vpn/ssh-exit-mode.sh verify

После ru-do в блоке «Через SOCKS» должно быть 209.38.32.21 (или актуальный IP DO). После ru149.154.64.19.

curl не использует системный SOCKS macOS — для CLI всегда -x socks5h://127.0.0.1:10809 или exit-verify. Браузер с системным прокси проверяйте на ipinfo.io.


Скрипты (из корня репозитория local_machine)

Один вход:

./scripts/vpn/ssh-exit-mode.sh COMMAND

Короткие алиасы (то же самое):

./scripts/vpn/exit-via-local.sh      # стоп туннелей + системный SOCKS off
./scripts/vpn/exit-via-ru.sh         # только RU + системный SOCKS on
./scripts/vpn/exit-via-ru-do.sh      # RU → DO (IP DO снаружи)
./scripts/vpn/install-exit-aliases.sh  # exit-ru / exit-local в ~/.zshrc
Команда Действие
local | off | stop Гасит SSH SOCKS на портах 10809, 1081, 1082; на macOS — системный SOCKS off. Дальше: в Cursor уберите http.proxy / https.proxy при необходимости.
ru Поднимает SOCKS 127.0.0.1:10809 → выход с RU (hsites-ahau) + системный SOCKS. В Cursor: socks5://127.0.0.1:10809.
ru-do Проверка RU (6 с), затем SOCKS на 10809 через telegram-socks-via-do + системный SOCKS. Снаружи — IP DO.
status Кто слушает порты + системный SOCKS.
verify IP без прокси и через SOCKS на SSH_EXIT_MAIN_PORT.

Переменные: SSH_EXIT_MAIN_PORT (по умолчанию 10809), SSH_EXIT_STOP_PORTS, SSH_EXIT_RU_HOST (по умолчанию hsites-ahau), SSH_EXIT_SYSTEM_PROXY (1/0), SSH_EXIT_NET_SERVICE (по умолчанию Wi-Fi).

~/.ssh/config: hsites-ahau, telegram-socks-via-do с ProxyJump hsites-ahau — шаблоны в PROXY_GUIDE.md.


Cursor за 30 секунд

  1. ./scripts/vpn/exit-via-ru-do.sh (или ./scripts/vpn/ssh-exit-mode.sh ru-do).
  2. ./scripts/vpn/ssh-exit-mode.sh verify — убедиться, что через SOCKS IP DO.
  3. В Cursor: Settings → proxysocks5://127.0.0.1:10809, http.proxySupport: override. Disable Http2 — выкл. Порт 10809, не 1090.

На локальный IP: exit-via-local.sh, затем в Cursor обязательно:

"http.proxy": "",
"http.proxySupport": "off"

иначе останется мёртвый SOCKS и Agent/API упадут при живом интернете (типично после смены страны). См. docs/apps/cursor/RUNBOOK.md.


Telegram (порт 1081)

Скрипт local останавливает и 1081. Если нужен Telegram через DO при том же «полном стопе», после local поднимите туннель отдельно: TELEGRAM_GUIDE.md, telegram-socks-tunnel.sh / LaunchAgent.

Если проблема только в мёртвом системном SOCKS (TB/браузер), а Telegram на 1081 жив — не вызывайте local: достаточно networksetup -setsocksfirewallproxystate "Wi-Fi" off.


Схема

flowchart LR
  subgraph off [local]
    A[Приложения без SOCKS] --> NET1[Интернет]
  end
  subgraph r [ru]
    B[SOCKS :10809] --> RU[hsites-ahau]
    RU --> NET2[Интернет]
  end
  subgraph rd [ru-do]
    C[SOCKS :10809] --> RU2[hsites-ahau]
    RU2 --> DO[DO 209.38.32.21]
    DO --> NET3[Интернет]
  end

Обновлено: 2026-07-22