$ veluxi
← главная
dev guide · 2026

Claude Code
Обход блокировок,
команды и Git-воркфлоу

Полное руководство для разработчиков из РФ и КЗ: SSH-туннели, команды между сессиями, бэкапы конфигов и правильный Git под Claude Code.

⏱ ~15 мин чтения
уровень: intermediate
OS: Linux / macOS / Windows
// 01

Проблема: блокировки API из РФ и КЗ

Ситуация в России и Казахстане разная, но результат для пользователя Claude Code одинаковый: API не отвечает.

Россия: Anthropic полностью заблокировал доступ к api.anthropic.com для российских IP. Сервис не работает вообще, причём не только API: регистрация аккаунта тоже недоступна с российских адресов. Здесь без обхода блокировки не обойтись никак.

Казахстан: API технически доступен, но Anthropic периодически блокирует аккаунты с активными подписками, если видит вход с казахстанского IP. Особенно это касается платных планов. SSH-туннель решает эту проблему: трафик идёт через зарубежный IP и не вызывает подозрений.

Обычный VPN часто не помогает при работе с терминальными инструментами: они не читают настройки системного прокси. SSH-туннель решает это на уровне переменных окружения: работает надёжно с любым CLI.

Суть подхода: берёшь VPS за пределами РФ/КЗ (Hetzner, DigitalOcean, Vultr: от $3-5/мес), поднимаешь SSH SOCKS5-туннель, и весь трафик Claude Code идёт через него. Никаких специальных клиентов, никакого GUI.

// 02

SSH-туннель: зачем и почему именно он

Преимущества перед обычным VPN

Работает в терминале нативно. CLI-инструменты не читают системный VPN, но читают переменные окружения http_proxy и https_proxy, которые ты сам выставляешь через SSH-туннель.
SOCKS5 — протокол прокси, который поддерживает TCP и UDP. Claude Code использует HTTPS (TCP), поэтому SOCKS5-туннель через SSH перекрывает все запросы к API.
// 03

Пошаговая настройка

Что понадобится

Важно для России: SSH-порт (22) тоже может быть заблокирован провайдером. В таком случае сначала поднимай обычный VPN (Outline, WireGuard, любой работающий), подключайся к нему, и уже потом открывай SSH-туннель поверх. VPN разблокирует доступ к серверу, SSH-туннель проксирует трафик Claude Code.

Подключение по SSH: Linux и macOS

SSH есть из коробки в любом терминале. Для подключения к серверу достаточно одной команды:

bash: Linux / macOS
# Подключение по паролю
$ ssh user@your-vps-ip

# Подключение по ключу
$ ssh -i ~/.ssh/id_rsa user@your-vps-ip

# Если порт нестандартный (не 22)
$ ssh -p 2222 user@your-vps-ip

# Сгенерировать SSH-ключ
$ ssh-keygen -t ed25519 -C "my-vps-key"
$ ssh-copy-id user@your-vps-ip

Подключение по SSH: Windows

На Windows есть несколько вариантов:

PowerShell / CMD: Windows 10/11
# SSH встроен в Windows 10/11
PS> ssh user@your-vps-ip

# Если SSH не найден
PS> winget install Microsoft.OpenSSH.Beta

# Ключи лежат в C:\Users\<username>\.ssh\
PS> ssh-keygen -t ed25519
WSL (Windows Subsystem for Linux)
# WSL — лучший вариант для Windows
PS> wsl --install

# После установки — обычный Linux-терминал
$ ssh user@your-vps-ip
Если не хочется возиться с командной строкой на Windows, используй PuTTY или MobaXterm для первоначального подключения. Но для туннеля всё равно проще PowerShell или WSL.

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

bash / PowerShell
# Базовая команда: SOCKS5 на localhost:1080
$ ssh -D 1080 -N -f user@your-vps-ip

# -D 1080  — локальный SOCKS5 порт
# -N       — не запускать команды (только туннель)
# -f       — уйти в фон

$ ssh -D 1080 -N -f -C -q user@your-vps-ip

Шаг 2: Выставить прокси-переменные

bash: Linux / macOS / WSL
# Временно — только для текущей сессии
export HTTPS_PROXY=socks5://127.0.0.1:1080
export HTTP_PROXY=socks5://127.0.0.1:1080
export ALL_PROXY=socks5://127.0.0.1:1080

# Постоянно — добавь в ~/.bashrc или ~/.zshrc
echo 'export HTTPS_PROXY=socks5://127.0.0.1:1080' >> ~/.zshrc
source ~/.zshrc
PowerShell: Windows
$env:HTTPS_PROXY = "socks5://127.0.0.1:1080"
$env:HTTP_PROXY  = "socks5://127.0.0.1:1080"
$env:ALL_PROXY   = "socks5://127.0.0.1:1080"

Шаг 3: Добавить API-ключ и запустить Claude Code

bash
export ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxx

# Запуск Claude Code
$ claude

# Проверить что туннель работает
$ curl --socks5 127.0.0.1:1080 https://api.anthropic.com/v1/models

Шаг 4: Автозапуск туннеля через autossh

Чтобы туннель автоматически поднимался при разрыве соединения:

bash
# Установка autossh
$ sudo apt install autossh
$ brew install autossh

$ autossh -M 0 -D 1080 -N -f \
    -o "ServerAliveInterval 30" \
    -o "ServerAliveCountMax 3" \
    user@your-vps-ip

Шаг 5: Systemd unit (Linux)

systemd unit: ~/.config/systemd/user/claude-tunnel.service
[Unit]
Description=Claude Code SSH Tunnel
After=network.target

[Service]
ExecStart=/usr/bin/autossh -M 0 -N \
    -D 1080 \
    -o "ServerAliveInterval 30" \
    -o "ServerAliveCountMax 3" \
    user@your-vps-ip
Restart=always
RestartSec=5

[Install]
WantedBy=default.target
bash
$ systemctl --user enable claude-tunnel
$ systemctl --user start claude-tunnel
$ systemctl --user status claude-tunnel
// 04

Команды Claude Code: полная шпаргалка

Claude Code запускается командой claude в папке проекта. Внутри интерактивной сессии доступны slash-команды:

КомандаОписание
/help
Показать список всех доступных команд
Незаменимо при старте: покажет актуальный список для текущей версии
/resume
Продолжить одну из предыдущих сессий
Показывает список последних сессий с датой и кратким описанием контекста
/clear
Очистить контекст текущей сессии
Полезно когда контекст разросся и начал мешать
/compact
Сжать контекст, сохранив суть
Claude суммаризирует диалог: экономит токены при длинных сессиях
/status
Текущий статус: модель, использование токенов, конфиг
Удобно следить за расходом контекстного окна
/cost
Показать стоимость текущей сессии в USD
Полезно для контроля расходов при работе с большими проектами
/config
Открыть и изменить конфигурацию Claude Code
Настройка модели, поведения, разрешений на выполнение команд
/init
Инициализировать проект: создать CLAUDE.md
Claude изучит структуру проекта и запишет контекст в CLAUDE.md
/memory
Просмотр и редактирование сохранённой памяти проекта
Управление тем, что Claude помнит между сессиями через CLAUDE.md
/permissions
Управление разрешениями на выполнение команд
Можно разрешить/запретить конкретные bash-команды
/pr_comments
Просмотр комментариев к PR прямо в сессии
Работает если Claude Code интегрирован с GitHub
/exit
Завершить сессию
Сессия сохраняется автоматически, её можно открыть через /resume

Запуск из терминала (CLI-флаги)

bash
# Запустить в конкретной папке
$ claude --dir ~/projects/myapp

# Запустить с конкретной моделью
$ claude --model claude-opus-4-5

# Передать задачу сразу (headless)
$ claude -p "Напиши тесты для файла auth.ts"

# Продолжить последнюю сессию
$ claude --continue

# Продолжить конкретную сессию по ID
$ claude --resume abc123def456
// 05

Работа между сессиями: /resume и память

Одна из ключевых проблем Claude Code: каждая сессия начинается с чистого листа. Вот как правильно сохранять контекст между запусками.

Как работает /resume

Claude Code сохраняет все сессии локально:

bash
# Расположение сессий
~/.claude/projects/      # сессии по проектам
~/.claude/conversations/ # все диалоги

$ ls ~/.claude/projects/

Команда /resume внутри Claude Code показывает интерактивный список последних сессий с датой и фрагментом контекста. Выбираешь нужную — и продолжаешь с того места, где остановился.

CLAUDE.md: постоянная память проекта

CLAUDE.md — файл в корне проекта, который Claude читает при каждом запуске автоматически. Это твоя «постоянная память» между сессиями.

markdown: CLAUDE.md
# Project: MyApp

## Stack
- Next.js 14, TypeScript, Prisma, PostgreSQL

## Архитектура
- Страницы в /app (App Router)
- API Routes в /app/api
- Бизнес-логика в /lib

## Соглашения
- Именование файлов: kebab-case
- Компоненты: PascalCase
- Commits: Conventional Commits

## Текущие задачи
- [ ] Рефакторинг auth модуля
- [ ] Добавить rate limiting
+
Команда /init автоматически создаст базовый CLAUDE.md, изучив твой проект. После этого дополни его вручную: это сэкономит токены и время на каждой сессии.

Стратегия переключения между задачами

  1. 1Перед завершением сессии попроси Claude: «Напиши summary текущего прогресса в CLAUDE.md»
  2. 2/compact перед длинными задачами: экономит контекстное окно
  3. 3Для разных фич используй разные рабочие директории: сессии хранятся per-project
  4. 4Для параллельных задач открывай несколько терминалов с разными экземплярами claude
// 06

Бэкапы: конфиги, плагины и чаты

Что и где хранится

bash
~/.claude/
├── claude.json           # основной конфиг
├── projects/             # сессии по папкам проектов
│   └── *.jsonl           # история диалогов
├── conversations/        # все разговоры
└── mcp/                  # MCP настройки

Бэкап конфига и плагинов

bash
# Полный бэкап
$ tar czf ~/claude-backup-$(date +%Y%m%d).tar.gz ~/.claude/

# Восстановить из бэкапа
$ tar xzf ~/claude-backup-20250115.tar.gz -C ~/

MCP-плагины: что это и как бэкапить

MCP (Model Context Protocol) — это плагины для Claude Code: подключение к базам данных, Figma, браузеру, файловой системе и т.д. Конфиг MCP-серверов хранится в claude.json.

json: claude.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "DATABASE_URL": "postgresql://user:pass@localhost/mydb" }
    }
  }
}
В claude.json могут храниться API-ключи и строки подключения к БД. Никогда не коммить этот файл в публичный репозиторий. Добавь его в .gitignore.

Автоматический бэкап через cron

bash: crontab -e
# Бэкап каждый день в 23:00
0 23 * * * tar czf ~/backups/claude-$(date +\%Y\%m\%d).tar.gz ~/.claude/claude.json ~/.claude/mcp/

# Удалять бэкапы старше 30 дней
0 23 * * * find ~/backups/ -name "claude-*.tar.gz" -mtime +30 -delete
// 07

Git как основа воркфлоу с Claude Code

Claude Code + Git — это не просто удобство. Это страховочная сетка: Claude может изменить десятки файлов за одну сессию, и без версионирования легко потерять рабочее состояние.

Правило №1: всегда начинай с чистого состояния

bash
# Перед каждой сессией Claude Code
$ git status
$ git stash

$ git checkout -b feature/auth-refactor
$ claude

Работа по ветке на каждую задачу

bash
$ git checkout -b fix/rate-limit

# Проверить что изменилось
$ git diff

# Коммит
$ git add -A
$ git commit -m "fix: add rate limiting to /api/chat endpoint"

# Откат
$ git checkout .

Коммиты через Claude Code

Claude Code умеет сам писать коммиты. Попроси его:

Claude Code prompt
"Сделай git commit с понятным сообщением по Conventional Commits"

# feat:, fix:, refactor:, docs:, test: ...

Контрольные точки внутри сессии

bash
$ git commit -m "wip: auth middleware skeleton"
$ git commit -m "wip: add token validation"
$ git commit -m "feat: complete auth middleware with tests"

# Склеить wip-коммиты перед пушем
$ git rebase -i HEAD~3

.gitignore для проекта с Claude Code

.gitignore
# Claude Code — можно коммитить
# CLAUDE.md

# Claude Code — НЕ коммитить
.claude/

.env
.env.local
node_modules/
dist/
+
CLAUDE.md коммить в репо: тогда все участники команды будут иметь единый контекст проекта для своих сессий Claude Code. Это как общая документация, но живая и постоянно обновляемая.

Алиасы для быстрой работы

bash: ~/.zshrc
alias cc='HTTPS_PROXY=socks5://127.0.0.1:1080 claude'

claude-branch() {
  git checkout -b "$1" && HTTPS_PROXY=socks5://127.0.0.1:1080 claude
}

alias gca='git add -A && git commit'

# Использование
$ cc
$ claude-branch feature/login
// 08

Итоговые советы

Туннель + переменные в .zshrc: сделай один раз, забудь про проблему навсегда. autossh через systemd поднимет туннель после ребута автоматически.
+
CLAUDE. Обновляй его в конце каждой значимой сессии. Через месяц ты поймёшь, что это важнее любых комментариев в коде.
+
Ветка на каждую задачу. Claude может уйти не туда: с веткой ты всегда откатишься одной командой. Без ветки придётся разбираться с git reflog.
Не давай Claude сразу много свободы. Используй --dangerously-skip-permissions только в изолированных окружениях: контейнерах, devcontainer, ветках без прода.

Минимальный чеклист на каждый день

  1. 1Проверить что SSH-туннель активен: curl --socks5 127.0.0.1:1080 https://api.anthropic.com/v1/models
  2. 2Создать/переключиться на нужную ветку Git перед началом работы
  3. 3Открыть сессию через claude --continue или /resume
  4. 4Делать коммиты каждые 30–60 минут работы
  5. 5В конце сессии обновить CLAUDE.md с прогрессом

Это базовый, но полный воркфлоу: SSH-туннель снимает блокировку, команды дают контроль над сессиями, CLAUDE.md решает проблему памяти, а Git страхует от любых ошибок. Начни с туннеля и CLAUDE.md — остальное придёт само в процессе.

Claude Code Guide · РФ/КЗ Edition
SSH · /resume · Git · MCP