Files
local_machine/docs/apps/cursor
ahauimix 1938b7c743 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>
2026-06-01 08:12:19 +03:00
..

Cursor IDE — работа из РФ и обход PING timeout

Проблема: из России Cursor показывает PING timed out, Agent не отвечает.
Временный обход: Disable Http2 в настройках — помогает, но всё сильно замедляется.
Рекомендуемое решение: SOCKS-прокси через SSH-туннель на сервер с нормальным доступом (DO / RU VPS), без отключения HTTP/2.

Связанные гайды: PROXY_GUIDE.md, BUILD_AAB_FROM_RUSSIA_GUIDE.md — тот же паттерн «туннель через прокси-сервер». Выход через DO (как VPN на 209.38.32.21): docs/connectivity/vpn/README.md. Windows: WINDOWS_CURSOR_TUNNEL.md и скрипт scripts/cursor-socks-tunnel.ps1.


Содержание

  1. Симптомы и причина
  2. Обход 1: Disable Http2 (простой, но медленный)
  3. Обход 2: SOCKS через SSH-туннель (рекомендуется)
  4. Проверка и диагностика
  5. Troubleshooting
  6. Ссылки

Симптомы и причина

Что видно в Cursor

  • В чате с Agent: Request ID: … [unavailable] PING timed out, _he: [unavailable] PING timed out.
  • Стек указывает на workbench.desktop.main.js, streamFromAgentBackend / getAgentStreamResponse — обрыв связи с бэкендом агента.

Почему так происходит

  1. HTTP/2 и маршрутизация
    Cursor использует HTTP/2 для стриминга к *.cursor.sh (в т.ч. agent.api5.cursor.sh). В части сетей (в т.ч. из РФ) запросы уходят в CDN (например Cloudflare) с неудачной конфигурацией SSL/HTTP2 или блокировкой по DPI, из‑за чего соединение обрывается или уходит в таймаут.

  2. Disable Http2
    Отключение HTTP/2 переводит трафик на HTTP/1.1 и часто убирает обрывы, но увеличивает нагрузку и задержки — «всё становится медленным», возможны дополнительные таймауты агента.

  3. Идея нормального обхода
    Пропускать только трафик Cursor через сервер с хорошим доступом к Cursor API (VPS в DO, РФ и т.п.). До этого сервера — SSH (обычно не режется). От сервера до *.cursor.sh — уже «нормальный» канал, HTTP/2 работает без костылей.


Обход 1: Disable Http2 (простой, но медленный)

Если нужно быстро восстановить работу без настройки туннеля:

  1. Cursor → Settings (Cmd+, / Ctrl+,).
  2. Поиск: HTTP.
  3. Включить Cursor > General: Disable Http2.

Минус: выше задержки и нагрузка, возможны таймауты агента при длинных ответах. Для постоянной работы из РФ предпочтительно Обход 2.


Обход 2: SOCKS через SSH-туннель (рекомендуется)

Трафик Cursor идёт в интернет через ваш VPS. До VPS — SSH (один порт), с VPS — обычный доступ к Cursor API, HTTP/2 остаётся включённым.

Схема

Cursor  →  SOCKS 127.0.0.1:10809  →  SSH  →  RU hsites-ahau  →  DO 209.38.32.21
                                                              ↓
                                                    HTTPS/HTTP2 → *.cursor.sh

При CURSOR_SOCKS_VIA_DO=1 (по умолчанию) — только цепочка Mac → RU → DO (telegram-socks-via-do). Если hsites-ahau недоступен, скрипт завершается с ошибкой (прямой Mac→DO для SOCKS не поднимается). Публичный IP снаружи — DO (шаблон Host telegram-socks-via-do в PROXY_GUIDE.md).

На стороне DO не нужен отдельный прокси-сервис — только SSH и те же Host, что для Telegram.

Предположения

  • В ~/.ssh/config задан telegram-socks-via-do с ProxyJump hsites-ahau (шаблон в PROXY_GUIDE.md).
  • Локально свободен порт 10809 (не путать с 1081 для Telegram).

Шаг 1: Поднять SOCKS-туннель

Рекомендуется скрипт (выход через DO по умолчанию):

./docs/cursor/scripts/cursor-socks-tunnel.sh start

Переменные: CURSOR_SOCKS_PORT (по умолчанию 10809), CURSOR_SOCKS_VIA_DO=0 — только RU (CURSOR_TUNNEL_HOST, по умолчанию hsites-ahau).

Вручную (выход с DO, как у скрипта):

pkill -f "ssh.*-D 10809" 2>/dev/null
ssh -D 10809 -f -N -o ServerAliveInterval=60 -o ServerAliveCountMax=4 telegram-socks-via-do

Только RU (без DO в цепочке выхода):

CURSOR_SOCKS_VIA_DO=0 ./docs/cursor/scripts/cursor-socks-tunnel.sh start
# или: ssh -D 10809 -f -N hsites-ahau

Проверка: туннель держится, пока сессия не разорвана; см. Проверка и диагностика.

Шаг 2: Настроить Cursor на использование SOCKS

  1. Cursor → Settings (Cmd+, / Ctrl+,), поиск: proxy.
  2. Заполнить:
    • Http: Proxysocks5://127.0.0.1:10809
    • Http: Proxy Strict SSL — при необходимости отключить только если заведомо знаете, что за прокси (для одного своего VPS обычно не требуется).

Или в settings.json (Cursor: Open User Settings (JSON)):

{
  "http.proxy": "socks5://127.0.0.1:10809",
  "https.proxy": "socks5://127.0.0.1:10809"
}

Шаг 3: Не отключать HTTP/2

Cursor > General: Disable Http2 — выключить (оставить HTTP/2 включённым). Трафик к Cursor API идёт с DO (или с RU, если включён только RU-туннель).

Шаг 4: Запуск Cursor при уже поднятом туннеле

Порядок каждый раз:

  1. В терминале: ./docs/cursor/scripts/cursor-socks-tunnel.sh start (или ручная команда из шага 1).
  2. Запуск Cursor как обычно.

Чтобы не забывать туннель, можно завести скрипт запуска (см. Скрипт запуска с туннелем).


Проверка и диагностика

Туннель поднят

# Должен слушать 10809
lsof -i :10809
# или
nc -z 127.0.0.1 10809 && echo "OK"

Доступ к Cursor API через SOCKS (curl)

curl -x socks5h://127.0.0.1:10809 -sI https://agent.api5.cursor.sh 2>&1 | head -5

Успех: в ответе есть HTTP/2 или заголовки от сервера. Ошибка соединения или таймаут — туннель не работает или порт занят.

Логи Cursor

При проблемах с подключением:

  • macOS: ~/Library/Application Support/Cursor/logs/main.log
  • Искать по ERROR, PING, timeout, HTTP2, ECONNREFUSED, ETIMEDOUT.

Troubleshooting

После включения прокси Cursor вообще не подключается

  • Убедиться, что туннель запущен: lsof -i :10809.
  • Проверить доступ через SOCKS: curl -x socks5h://127.0.0.1:10809 -sI https://agent.api5.cursor.sh.
  • Временно в настройках Cursor убрать http.proxy / https.proxy и проверить без прокси (например, с Disable Http2) — если так работает, проблема в туннеле или порте.

PING timed out остаётся даже через прокси

  • Перезапустить туннель и Cursor (полностью закрыть приложение и открыть снова).
  • В настройках Cursor убедиться, что Disable Http2 выключен (HTTP/2 включён).
  • Проверить, что в настройках указан именно socks5://127.0.0.1:10809 (без опечаток, порт совпадает с -D 10809).

Порт 10809 занят

Выбрать другой порт, например 10810:

ssh -D 10810 -f -N hsites-ahau

И в настройках Cursor указать socks5://127.0.0.1:10810.

Туннель рвётся при долгой неактивности

Поддерживать соединение помогут опции SSH:

ssh -D 10809 -f -N -o ServerAliveInterval=30 -o ServerAliveCountMax=6 hsites-ahau

При необходимости можно вынести эту команду в скрипт или systemd/supervisor на стороне клиента.


Скрипт запуска туннеля

В репозитории есть скрипт для поднятия/остановки SOCKS-туннеля:

# Из корня репо
./docs/cursor/scripts/cursor-socks-tunnel.sh start   # поднять туннель
./docs/cursor/scripts/cursor-socks-tunnel.sh status   # проверить
./docs/cursor/scripts/cursor-socks-tunnel.sh stop      # остановить

Переменные окружения: CURSOR_SOCKS_PORT (10809), CURSOR_SOCKS_VIA_DO (по умолчанию 1 — выход через DO), при CURSOR_SOCKS_VIA_DO=0CURSOR_TUNNEL_HOST (по умолчанию hsites-ahau).

Запуск Cursor после туннеля (macOS): после ./docs/cursor/scripts/cursor-socks-tunnel.sh start откройте Cursor как обычно; при настроенных http.proxy/https.proxy трафик пойдёт через SOCKS.


Ссылки

Документ Назначение
PROXY_GUIDE.md Прокси ru.hunab.app, SSH ProxyCommand для scp/ssh на прод
WINDOWS_CURSOR_TUNNEL.md Cursor из РФ на Windows: туннель, скрипт .ps1, автозапуск
BUILD_AAB_FROM_RUSSIA_GUIDE.md Сборка AAB из РФ через Maven proxy + SSH-туннель
Cursor Forum — HTTP/2 network error Обсуждение ошибок HTTP/2 и региональной маршрутизации
Cursor Forum — Agent timeouts when HTTP2 disabled Таймауты агента при отключённом HTTP/2

Последнее обновление: 2026-04-08