# Cursor IDE — сеть, прокси, Agent

> **Смена страны / «Cursor не подключается», а интернет живой:** почти всегда мёртвый SOCKS в `settings.json` (`127.0.0.1:1090` + `http.proxySupport: override`).  
> **Фикс:** снять proxy → Cmd+Q. Подробно: **[RUNBOOK.md](./RUNBOOK.md)** (логи 2026-07, диагностика).

> **Из РФ / DPI:** SOCKS через SSH на **10809** (не 1090). Disable Http2 — только временный костыль.

**Связанные:** [PROXY_GUIDE.md](../../connectivity/PROXY_GUIDE.md), [SSH_EXIT_MODES.md](../../connectivity/vpn/SSH_EXIT_MODES.md), [WINDOWS_CURSOR_TUNNEL.md](../../connectivity/WINDOWS_CURSOR_TUNNEL.md).

---

## Содержание

1. [Показательный инцидент: SOCKS 1090](#показательный-инцидент-socks-1090)
2. [Симптомы из РФ (PING timeout)](#симптомы-из-рф-ping-timeout)
3. [Обход 1: Disable Http2](#обход-1-disable-http2)
4. [Обход 2: SOCKS 10809](#обход-2-socks-10809)
5. [Проверка и troubleshooting](#проверка-и-troubleshooting)
6. [Ссылки](#ссылки)

---

## Показательный инцидент: SOCKS 1090

**Контекст:** после смены страны Cursor «не подключался». Интернет, DNS и HTTP/2 — **исправны**.

**Ошибка в логах / Network Diagnostics (единственная настоящая причина):**

```
Failed to establish a socket connection to proxies: SOCKS 127.0.0.1:1090
```

**Источник** — не macOS и не Cursor API:

```json
"http.proxy": "socks5://127.0.0.1:1090",
"http.proxySupport": "override"
```

`override` заставляет Cursor **всегда** ходить через локальный SOCKS, даже когда порт **1090 никто не слушает**.

**Что помогло:** отключение прокси в Cursor (`http.proxySupport: "off"`, убрать `http.proxy`) + полный перезапуск.

**Правило:** при прямом интернете — **без** жёсткого proxy в settings. Прокси включать только пока жив туннель на **10809**.

Полный чеклист команд и выдержки из логов за 2 суток: [RUNBOOK.md](./RUNBOOK.md).

---

## Симптомы из РФ (PING timeout)

- Chat / Agent: `PING timed out`, Request ID unavailable.
- Часто помогает временный **Disable Http2**, но всё тормозит.
- Нормальный путь: SOCKS **10809** через RU→DO (см. ниже).

---

## Обход 1: Disable Http2

1. Settings → поиск **HTTP** → **Disable Http2** = on.
2. Минус: медленнее, больше таймаутов агента.

Если Diagnostics показывает **HTTP/2: Success** (как вне РФ) — параметр лучше **выключить** (`false` / удалить ключ).

---

## Обход 2: SOCKS 10809

```
Cursor → socks5://127.0.0.1:10809 → SSH → RU (hsites-ahau) → DO → *.cursor.sh
```

### Поднять туннель

```bash
./docs/apps/cursor/scripts/cursor-socks-tunnel.sh start
./docs/apps/cursor/scripts/cursor-socks-tunnel.sh status
```

Или: `./scripts/vpn/exit-via-ru-do.sh` (см. [SSH_EXIT_MODES.md](../../connectivity/vpn/SSH_EXIT_MODES.md)).

Порт по умолчанию: **10809**. Не путать с **1081** (Telegram) и устаревшим **1090**.

### Настройки Cursor (только пока туннель жив)

```json
{
  "http.proxy": "socks5://127.0.0.1:10809",
  "http.proxySupport": "override",
  "http.disableHttp2": false
}
```

### Вернуться на локальный IP

```bash
./scripts/vpn/exit-via-local.sh
```

Затем в settings:

```json
{
  "http.proxy": "",
  "http.proxySupport": "off"
}
```

Cmd+Q → снова открыть Cursor.

---

## Проверка и troubleshooting

```bash
# Кто слушает SOCKS
lsof -nP -iTCP:10809 -sTCP:LISTEN
lsof -nP -iTCP:1090 -sTCP:LISTEN || echo "1090 free (ожидаемо без старого прокси)"

# API через туннель
curl -x socks5h://127.0.0.1:10809 -sI --max-time 15 https://agent.api5.cursor.sh | head -5

# Мёртвый 1090 в профиле
grep -n 'http.proxy\|1090\|proxySupport' ~/Library/Application\ Support/Cursor/User/settings.json

# Логи
grep -R "SOCKS 127.0.0.1" ~/Library/Application\ Support/Cursor/logs --include='*.log' 2>/dev/null | tail -10
```

| Симптом | Действие |
|---------|----------|
| `SOCKS 127.0.0.1:1090` / API FAIL при живом интернете | [RUNBOOK.md](./RUNBOOK.md) — снять proxy |
| Proxy на 10809, но Cursor мёртв | `cursor-socks-tunnel.sh status` / `exit-via-ru-do.sh` |
| PING timeout из РФ без прокси | Туннель 10809 или временно Disable Http2 |

---

## Ссылки

| Документ | Назначение |
|----------|------------|
| **[RUNBOOK.md](./RUNBOOK.md)** | RCA SOCKS 1090, чеклист, логи |
| [SSH_EXIT_MODES.md](../../connectivity/vpn/SSH_EXIT_MODES.md) | local / ru / ru-do |
| [PROXY_EMERGENCY.md](../../connectivity/PROXY_EMERGENCY.md) | Экстренный SSH / SOCKS |
| [WINDOWS_CURSOR_TUNNEL.md](../../connectivity/WINDOWS_CURSOR_TUNNEL.md) | Windows |
| [scripts/cursor-socks-tunnel.sh](./scripts/cursor-socks-tunnel.sh) | Туннель macOS |

---

*Обновлено: 2026-07-12 — инцидент смены страны / SOCKS 1090.*
