Files
local_machine/docs/connectivity/WINDOWS_CURSOR_TUNNEL.md
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

270 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cursor из РФ на Windows — туннель через прокси ru.hunab.app
Пошаговая инструкция для тех, кто впервые настраивает Cursor за пределами «обычного» интернета. Все действия выполняются на компьютере Windows.
---
## Зачем это нужно
В России Cursor иногда выдаёт ошибку **PING timed out**: связь с серверами Cursor обрывается или не устанавливается. Чтобы обойти это, трафик Cursor пускают через **прокси-сервер** ru.hunab.app (149.154.64.19). С вашего Windows до этого сервера создаётся зашифрованный **туннель** по SSH. Cursor тогда подключается к интернету не напрямую, а через этот туннель — и ошибка пропадает.
**Что вы сделаете по шагам:**
1) проверите/установите программу для туннеля (OpenSSH) и ключ доступа к прокси;
2) запустите туннель (одна команда или скрипт);
3) настроите Cursor так, чтобы он использовал этот туннель;
4) при желании настроите автозапуск туннеля при входе в Windows.
---
## Небольшой словарик
| Термин | По-простому |
|--------|-------------|
| **Туннель (SOCKS)** | Канал «ваш компьютер → прокси-сервер». Весь трафик Cursor к интернету идёт через этот канал. |
| **Порт 10809** | Номер «входа» на вашем же компьютере. Cursor подключается к `127.0.0.1:10809` — то есть к себе же, но к программе туннеля, которая пересылает данные на прокси. |
| **PowerShell** | Программа в Windows для ввода текстовых команд. Открыть: поиск в Пуске «PowerShell» или Win+X → «Windows PowerShell». |
| **%USERPROFILE%** | Папка вашего пользователя Windows, например `C:\Users\Иван`. В PowerShell то же: `$env:USERPROFILE`. |
| **Корень репо** | Папка, в которой лежит проект local_machine (внутри есть папки `docs`, `scripts` и т.д.). |
---
## Что нужно до начала
- **SSH-ключ** уже установлен на Windows и проверен (подключение к ahau@149.154.64.19 без пароля). Если ещё нет — сначала сделайте по инструкции [WINDOWS_SSH_KEY_INSTALL.md](./WINDOWS_SSH_KEY_INSTALL.md).
- **Cursor** установлен на Windows.
- Настроено **подключение к интернету** (туннель будет идти через него до прокси).
---
## Содержание
1. [Шаг 1: Проверить OpenSSH и ключ](#-шаг-1-проверить-openssh-и-ключ)
2. [Шаг 2: Запустить туннель](#-шаг-2-запустить-туннель)
3. [Шаг 3: Настроить Cursor](#-шаг-3-настроить-cursor)
4. [Порядок работы каждый раз](#-порядок-работы-каждый-раз)
5. [Автозапуск туннеля при входе в Windows](#-автозапуск-туннеля-при-входе-в-windows)
6. [Если что-то не работает](#-если-что-то-не-работает)
---
## Шаг 1: Проверить OpenSSH и ключ
### 1.1 Открыть PowerShell
- Нажмите клавишу **Win** (или кнопку «Пуск») и начните вводить **PowerShell**.
- Выберите **Windows PowerShell** (лучше не «от имени администратора», если не требуется).
Откроется синее окно с текстом вроде `PS C:\Users\ВашеИмя>`. В нём вы будете вводить команды.
### 1.2 Проверить, установлен ли OpenSSH
Введите команду и нажмите Enter:
```powershell
ssh -V
```
**Хороший результат:** появляется строка с версией, например `OpenSSH_for_Windows_8.1` или похоже.
**Если пишет «не распознано» или «command not found»:**
Нужно установить клиент OpenSSH:
1. Откройте **Параметры Windows** (Win+I).
2. Зайдите в **Приложения****Дополнительные компоненты** (или «Опциональные компоненты»).
3. Нажмите **Добавить компонент**.
4. Найдите в списке **OpenSSH-клиент** и нажмите **Установить**.
После установки закройте и снова откройте PowerShell и снова выполните `ssh -V`.
### 1.3 Убедиться, что ключ на месте и работает
Ключ должен лежать в папке вашего пользователя, в подпапке `.ssh`, с именем `id_ed25519`. То есть полный путь:
`C:\Users\**ВашеИмя**\.ssh\id_ed25519`
Проверка одной командой (скопируйте целиком и вставьте в PowerShell):
```powershell
ssh -i $env:USERPROFILE\.ssh\id_ed25519 ahau@149.154.64.19 "echo OK"
```
При первом запуске может спросить про доверие хосту — введите **yes**.
**Ожидаемый результат:** в следующей строке выводится **OK**, пароль не запрашивается.
Если получили **OK** — переходите к [Шагу 2](#-шаг-2-запустить-туннель).
Если ошибка (например, «Permission denied», «No such file») — вернитесь к [WINDOWS_SSH_KEY_INSTALL.md](./WINDOWS_SSH_KEY_INSTALL.md) и доведите установку ключа до конца.
---
## Шаг 2: Запустить туннель
Туннель — это программа, которая держит соединение с прокси и «слушает» на вашем компьютере порт 10809. Cursor потом будет подключаться к этому порту. Окно, в котором запущен туннель, **лучше не закрывать** (можно свернуть).
### Вариант A: Запуск скриптом (если у вас есть папка с репо local_machine)
1. Откройте PowerShell.
2. Перейдите в **корень репо** (папка, где лежат `docs`, `scripts`). Пример:
```powershell
cd C:\Users\ВашеИмя\code\local_machine
```
Подставьте свой путь к папке проекта.
3. Разрешить выполнение скриптов (достаточно один раз):
```powershell
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
```
На вопрос ответьте **Y**.
4. Запустите туннель:
```powershell
.\docs\cursor\scripts\cursor-socks-tunnel.ps1 start
```
5. **Ожидаемый вывод:** `... -> telegram-socks-via-do (DO exit)` — только цепочка **Mac→RU→DO**; если **hsites-ahau** недоступен, скрипт завершится с ошибкой (прямой Mac→DO не поднимается). Нужен `Host telegram-socks-via-do` в `~/.ssh/config`, см. [PROXY_GUIDE.md](./PROXY_GUIDE.md). Только выход с RU: `$env:CURSOR_SOCKS_VIA_DO="0"; .\docs\cursor\scripts\cursor-socks-tunnel.ps1 start`. Окно можно свернуть.
Проверить, что туннель работает: в **другом** окне PowerShell выполните:
```powershell
.\docs\cursor\scripts\cursor-socks-tunnel.ps1 status
```
Должно написать, что SOCKS слушает на порту 10809.
Остановить туннель (когда не нужен):
```powershell
.\docs\cursor\scripts\cursor-socks-tunnel.ps1 stop
```
### Вариант B: Запуск одной командой (без скрипта)
1. Откройте PowerShell.
2. Выход через **DO** (как скрипт по умолчанию):
```powershell
ssh -D 10809 -o ServerAliveInterval=60 -o ServerAliveCountMax=4 telegram-socks-via-do
```
Только **RU** (без DO в цепочке выхода):
```powershell
ssh -D 10809 -o ServerAliveInterval=30 -o ServerAliveCountMax=6 ahau@149.154.64.19
```
3. При первом запуске может спросить про доверие хосту — введите **yes**. Пароль спрашивать не должно (работает ключ).
4. **Окно не закрывайте** — пока оно открыто, туннель работает. В заголовке окна может ничего не меняться — это нормально. Можно свернуть окно.
Проверка: откройте **второе** окно PowerShell и выполните:
```powershell
netstat -an | findstr "10809"
```
Должна появиться строка, где есть `127.0.0.1` и `10809` и состояние **LISTENING**.
Чтобы остановить туннель — закройте то окно PowerShell, в котором была запущена команда `ssh -D 10809 ...`.
---
## Шаг 3: Настроить Cursor
Нужно один раз сказать Cursor использовать туннель как прокси.
1. Откройте **Cursor**.
2. Откройте настройки:
- либо меню **File** → **Preferences** → **Settings** (или **Файл** → **Параметры** → **Настройки**);
- либо нажмите **Ctrl+,** (запятая).
3. Вверху в поиске настроек введите: **proxy**.
4. Найдите пункт **Http: Proxy** (или **Http: Proxy Support** и т.п.) и в поле значения введите **ровно**:
```text
socks5://127.0.0.1:10809
```
5. Если есть отдельное поле **Https: Proxy** — введите туда то же самое: `socks5://127.0.0.1:10809`.
6. Убедитесь, что **Cursor > General: Disable Http2** выключен (галочка снята). HTTP/2 должен быть включён — так Cursor будет стабильнее работать через туннель.
**Альтернатива через JSON-настройки:**
- В Cursor откройте палитру команд: **Ctrl+Shift+P**.
- Введите: **Open User Settings (JSON)** и выберите этот пункт.
- В открывшийся файл добавьте (или допишите к существующему объекту) строки:
```json
"http.proxy": "socks5://127.0.0.1:10809",
"https.proxy": "socks5://127.0.0.1:10809"
```
Сохраните файл. Настройки применятся автоматически.
---
## Порядок работы каждый раз
1. **Сначала** запустите туннель (скриптом или командой `ssh -D 10809 ...`). Дождитесь, что он поднялся (проверка через `status` или `netstat`).
2. **Потом** откройте Cursor и работайте как обычно. Cursor будет отправлять трафик через туннель на порт 10809.
Если туннель не запущен, Cursor может снова показывать PING timeout или не подключаться к серверам.
---
## Автозапуск туннеля при входе в Windows
Чтобы не запускать туннель вручную каждый раз, можно настроить его старт при входе в систему.
### Способ 1: Планировщик заданий
1. Нажмите **Win+R**, введите **taskschd.msc** и нажмите Enter. Откроется **Планировщик заданий**.
2. Справа нажмите **Создать задачу…** (не «Создать простую задачу»).
3. Вкладка **Общие**:
- Имя: например **Cursor SOCKS tunnel**.
- Отметьте «Выполнять для всех пользователей» при необходимости; «Выполнять с наивысшими правами» можно не ставить.
4. Вкладка **Триггеры** → **Создать**:
- Начать задачу: **При входе в систему**.
- Пользователь: ваш пользователь Windows. ОК.
5. Вкладка **Действия** → **Создать**:
- Действие: **Запуск программы**.
- Программа или сценарий: **powershell.exe**.
- Добавить аргументы:
- Если используете скрипт из репо (подставьте свой путь к папке local_machine):
```text
-NoProfile -WindowStyle Hidden -File "C:\Users\ВашеИмя\путь\к\local_machine\docs\cursor\scripts\cursor-socks-tunnel.ps1" start
```
- Или без скрипта (фон; только Mac→RU→DO, нужен доступ к RU):
```text
-NoProfile -WindowStyle Minimized -Command "ssh -D 10809 -o ServerAliveInterval=60 -o ServerAliveCountMax=4 telegram-socks-via-do"
```
Нажмите ОК.
6. ОК по задаче. При следующем входе в Windows туннель должен запускаться сам.
### Способ 2: Ярлык в папке «Автозагрузка»
1. Нажмите **Win+R**, введите **shell:startup** и нажмите Enter. Откроется папка автозагрузки вашего пользователя.
2. В этой папке создайте ярлык (правый клик → Создать → Ярлык).
3. В качестве расположения объекта укажите, например (подставьте свой путь к репо):
```text
powershell.exe -NoProfile -WindowStyle Normal -File "C:\Users\ВашеИмя\code\local_machine\docs\cursor\scripts\cursor-socks-tunnel.ps1" start
```
4. Имя ярлыка: например **Cursor tunnel**. Готово. При каждом входе в Windows будет запускаться PowerShell и подниматься туннель.
---
## Если что-то не работает
| Ситуация | Что проверить и сделать |
|----------|-------------------------|
| **Cursor не подключается, ошибки в чате** | 1) Туннель действительно запущен: в PowerShell `.\docs\cursor\scripts\cursor-socks-tunnel.ps1 status` или `netstat -an \| findstr 10809`. 2) В настройках Cursor указано ровно `socks5://127.0.0.1:10809`. 3) Перезапустите Cursor (полностью закрыть и открыть снова). |
| **Всё ещё PING timed out** | Убедитесь, что в настройках Cursor **Disable Http2** выключен (HTTP/2 включён). Перезапустите туннель и Cursor. |
| **Порт 10809 занят** | Другой программой уже занят. Можно сменить порт: например 10810. Тогда в команде туннеля замените 10809 на 10810 и в Cursor укажите `socks5://127.0.0.1:10810`. |
| **Туннель обрывается через время** | В команде SSH должны быть параметры `ServerAliveInterval=30` и `ServerAliveCountMax=6` — в скрипте они уже есть; при ручном запуске используйте команду из Варианта B. |
| **Ошибка при запуске скрипта .ps1** | Выполните один раз: `Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned` и ответьте Y. |
| **SSH просит пароль** | Ключ не подхватывается. Проверьте, что файл лежит по пути `C:\Users\ВашеИмя\.ssh\id_ed25519` и в команде указан `-i $env:USERPROFILE\.ssh\id_ed25519`. При необходимости заново установите ключ по [WINDOWS_SSH_KEY_INSTALL.md](./WINDOWS_SSH_KEY_INSTALL.md). |
Логи Cursor на Windows лежат в папке:
`%APPDATA%\Cursor\logs\` (файл `main.log`). В проблемных местах ищите слова ERROR, PING, timeout, ECONNREFUSED, ETIMEDOUT.
---
## Ссылки
| Документ | Для чего |
|----------|----------|
| [WINDOWS_SSH_KEY_INSTALL.md](./WINDOWS_SSH_KEY_INSTALL.md) | Установка SSH-ключа на Windows (если ещё не сделано). |
| [PROXY_GUIDE.md](./PROXY_GUIDE.md) | Общее описание прокси ru.hunab.app. |
| [README.md](./README.md) | Содержимое папки connectivity. |