301 lines
13 KiB
Markdown
301 lines
13 KiB
Markdown
# 🌐 VPN Proxy — Домашний VPN в одной программе
|
||
|
||
> **Простыми словами:** ваш компьютер подключается к удалённому VPN-серверу, и весь интернет-трафик идёт через него. Это нужно для доступа к заблокированным сайтам или для защиты данных в публичных Wi-Fi сетях.
|
||
|
||
---
|
||
|
||
## 📖 Что это такое?
|
||
|
||
Это набор инструментов, который позволяет:
|
||
|
||
1. **Запустить VPN-прокси** на вашем компьютере
|
||
2. **Управлять через веб-интерфейс** — открываете в браузере, вставляете ссылку, готово!
|
||
3. **Подключить браузер или приложения** (например, VS Code) через этот прокси
|
||
4. **Автоматически обновлять конфигурацию** с вашего VPN-провайдера
|
||
|
||
### 🎯 Для кого это?
|
||
|
||
- Пользователи, которым нужен VPN для работы или доступа к заблокированным ресурсам
|
||
- Разработчики, которые хотят направить трафик VS Code или других программ через VPN
|
||
- Люди, которые получили VLESS ссылку от VPN-провайдера
|
||
|
||
---
|
||
|
||
## 🧩 Как это работает?
|
||
|
||
```
|
||
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||
│ Ваш браузер │────▶│ VPN Proxy │────▶│ VPN Сервер │────▶ Интернет
|
||
│ или VS Code │ │ (порт 8082) │ │ (в другой стране)│
|
||
└─────────────────┘ └──────────────────┘ └──────────────────┘
|
||
▲
|
||
│
|
||
┌──────────────┐
|
||
│ Веб-интерфейс│
|
||
│ (порт 3456) │
|
||
└──────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 📦 Что внутри?
|
||
|
||
| Файл | Описание простыми словами |
|
||
| ----------------------- | ------------------------------------------------------------------ |
|
||
| `web/server.py` | Веб-интерфейс для управления через браузер |
|
||
| `web/index.html` | Страница с красивым интерфейсом |
|
||
| `docker/entrypoint.sh` | Главный скрипт запуска контейнера |
|
||
| `docker/Dockerfile` | Инструкция для создания изолированного VPN-приложения (контейнера) |
|
||
| `docker-compose.yml` | Файл для удобного запуска одной командой |
|
||
|
||
---
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Что вам понадобится
|
||
|
||
1. **URL подписки** или **VLESS-ссылка** — получите её от вашего VPN-провайдера
|
||
- Подписка: формат sing-box
|
||
- VLESS: начинается с `vless://...`
|
||
|
||
2. **Docker** — программа для запуска изолированных приложений
|
||
- [Скачать Docker Desktop](https://www.docker.com/products/docker-desktop/) (бесплатно)
|
||
- После установки убедитесь, что Docker запущен (иконка 🐳 в трее)
|
||
|
||
---
|
||
|
||
## 📥 Первый запуск (установка с нуля)
|
||
|
||
Откройте терминал (Терминал на Mac, PowerShell на Windows) и выполните:
|
||
|
||
```bash
|
||
# 1. Перейдите в папку с проектом
|
||
cd путь/к/папке/vpn-proxy
|
||
|
||
# 2. Соберите контейнер (это нужно сделать только один раз)
|
||
docker compose build
|
||
|
||
# 3. Запустите контейнер
|
||
docker compose up -d
|
||
```
|
||
|
||
> 💡 **Что происходит:**
|
||
>
|
||
> - `docker compose build` — создаёт образ контейнера со всеми необходимыми программами
|
||
> - `docker compose up -d` — запускает контейнер в фоновом режиме
|
||
|
||
### После запуска
|
||
|
||
1. **Откройте веб-интерфейс**: http://localhost:3456
|
||
2. **Выберите режим**:
|
||
- **📡 Подписка**: вставьте URL подписки, нажмите «Загрузить серверы», выберите сервер и нажмите «Применить»
|
||
- **🔑 VLESS Ключ**: вставьте VLESS-ссылку и нажмите «Применить»
|
||
3. Готово! Прокси работает на порту **8082**
|
||
|
||
> 💡 **Подписка сохраняется** между перезагрузками контейнера — URL и выбранный сервер хранятся в папке `data/`
|
||
|
||
---
|
||
|
||
## 🔄 Обновление (если уже была установлена старая версия)
|
||
|
||
Если вы обновили код из репозитория, нужно пересобрать контейнер:
|
||
|
||
```bash
|
||
# 1. Перейдите в папку с проектом
|
||
cd путь/к/папке/vpn-proxy
|
||
|
||
# 2. Остановите текущий контейнер
|
||
docker compose down
|
||
|
||
# 3. Пересоберите контейнер с новыми изменениями
|
||
docker compose build --no-cache
|
||
|
||
# 4. Запустите заново
|
||
docker compose up -d
|
||
```
|
||
|
||
> 💡 **Примечание:** подписка сохраняется и будет автоматически загружена при открытии веб-интерфейса http://localhost:3456
|
||
|
||
---
|
||
|
||
## 🌐 Порты
|
||
|
||
| Порт | Для чего | URL |
|
||
| ------ | ------------------------------------------------- | ----------------------- |
|
||
| `3456` | **Веб-интерфейс** — управление через браузер | http://localhost:3456 |
|
||
| `8082` | **Прокси** — сюда подключаются браузер/приложения | `http://127.0.0.1:8082` |
|
||
| `9090` | Внутренний порт управления (обычно не нужен) | — |
|
||
|
||
---
|
||
|
||
## ✅ Проверка работы
|
||
|
||
### Через веб-интерфейс
|
||
|
||
Откройте http://localhost:3456 — если видите зелёный индикатор "Активен", значит прокси работает.
|
||
|
||
### Через терминал
|
||
|
||
```bash
|
||
# Через прокси — должен показать IP VPN-сервера
|
||
curl -x http://127.0.0.1:8082 https://ipinfo.io/json
|
||
```
|
||
|
||
Если показывает IP другой страны — VPN работает! 🎉
|
||
|
||
---
|
||
|
||
## ⚙️ Настройка приложений
|
||
|
||
### Для VS Code
|
||
|
||
Откройте настройки (Cmd+, на Mac или Ctrl+, на Windows), найдите "proxy" и добавьте:
|
||
|
||
```
|
||
http.proxy: http://127.0.0.1:8082
|
||
```
|
||
|
||
Или добавьте в `settings.json`:
|
||
|
||
```json
|
||
{
|
||
"http.proxy": "http://127.0.0.1:8082",
|
||
"http.proxyStrictSSL": true
|
||
}
|
||
```
|
||
|
||
### Для браузера
|
||
|
||
В настройках прокси вашего браузера укажите:
|
||
|
||
- **Тип**: HTTP или SOCKS5
|
||
- **Адрес**: `127.0.0.1`
|
||
- **Порт**: `8082`
|
||
|
||
---
|
||
|
||
|
||
|
||
### Через веб-интерфейс
|
||
|
||
1. Откройте http://localhost:3456
|
||
2. Вставьте новую VLESS ссылку
|
||
3. Нажмите "Применить"
|
||
|
||
---
|
||
|
||
## 📋 Управление контейнером
|
||
|
||
| Действие | Команда |
|
||
| ----------------------- | ---------------------------------- |
|
||
| Посмотреть статус | `docker ps` |
|
||
| Посмотреть логи | `docker logs --tail 50 sing-proxy` |
|
||
| Остановить | `docker compose stop` |
|
||
| Запустить снова | `docker compose start` |
|
||
| Перезапустить | `docker compose restart` |
|
||
| Полностью удалить | `docker compose down` |
|
||
| Пересобрать и запустить | `docker compose up -d --build` |
|
||
|
||
---
|
||
|
||
## ❓ Часто задаваемые вопросы
|
||
|
||
### Страница localhost:3456 не открывается
|
||
|
||
**Причина**: Контейнер не запущен.
|
||
|
||
**Решение**:
|
||
|
||
```bash
|
||
# Проверьте статус
|
||
docker ps
|
||
|
||
# Если контейнера нет в списке — запустите
|
||
docker compose up -d
|
||
```
|
||
|
||
### "Connection refused" — соединение отклонено
|
||
|
||
**Причина**: Контейнер не запущен или VPN-ссылка не применена.
|
||
|
||
**Решение**:
|
||
|
||
1. Проверьте, запущен ли контейнер: `docker ps`
|
||
2. Откройте http://localhost:3456 и примените VPN-ссылку
|
||
|
||
### VS Code не подключается / очень медленно
|
||
|
||
**Причина**: Системный VPN или прокси мешает.
|
||
|
||
**Решение**:
|
||
|
||
1. Выключите системный VPN
|
||
2. Удалите переменные окружения `HTTP_PROXY` и `HTTPS_PROXY` (если есть)
|
||
3. Перезапустите VS Code
|
||
|
||
### Не открываются сайты / SSL ошибки
|
||
|
||
**Причина**: Проблемы с настройками VPN-сервера.
|
||
|
||
**Решение**:
|
||
|
||
- Попробуйте другой сервер — вставьте другую ссылку в веб-интерфейсе
|
||
- Проверьте, что VLESS ссылка актуальна
|
||
|
||
### Как узнать, работает ли VPN?
|
||
|
||
```bash
|
||
# Без прокси — покажет ваш домашний IP
|
||
curl https://ipinfo.io/json
|
||
|
||
# Через прокси — должен показать IP VPN-сервера
|
||
curl -x http://127.0.0.1:8082 https://ipinfo.io/json
|
||
```
|
||
|
||
Если IP-адреса разные — VPN работает! 🎉
|
||
|
||
---
|
||
|
||
## 🔧 Для продвинутых пользователей
|
||
|
||
### Запуск без Docker
|
||
|
||
Если вы не хотите использовать Docker:
|
||
|
||
1. Установите [sing-box](https://sing-box.sagernet.org/)
|
||
2. Скопируйте конфигурацию из веб-интерфейса подписки и сохраните в `client.json`
|
||
3. Запустите:
|
||
```bash
|
||
sing-box run -c client.json
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 Словарь терминов
|
||
|
||
| Термин | Объяснение |
|
||
| ------------------- | ----------------------------------------------------------------------------- |
|
||
| **Прокси** | Программа-посредник, которая передаёт ваши запросы в интернет от своего имени |
|
||
| **VPN** | Зашифрованный туннель между вашим компьютером и удалённым сервером |
|
||
| **Docker** | Программа для запуска приложений в изолированных "контейнерах" |
|
||
| **Контейнер** | Изолированное приложение со всеми необходимыми компонентами |
|
||
| **VLESS** | Современный протокол VPN-соединения |
|
||
| **Reality** | Технология маскировки VPN-трафика под обычный интернет-трафик |
|
||
|
||
| **Порт** | "Номер двери" для сетевых соединений. Прокси: 8082, Веб-интерфейс: 3456 |
|
||
|
||
---
|
||
|
||
## 🆘 Нужна помощь?
|
||
|
||
Если что-то не работает:
|
||
|
||
1. Проверьте статус: `docker ps`
|
||
2. Проверьте логи: `docker logs --tail 100 sing-proxy`
|
||
3. Убедитесь, что VPN-ссылка актуальна
|
||
4. Попробуйте пересобрать: `docker compose down && docker compose build --no-cache && docker compose up -d`
|
||
|
||
---
|
||
|
||
_Создано для простого и безопасного доступа в интернет_ 🛡️
|