Files
vpn-proxy/README.md

301 lines
13 KiB
Markdown
Raw 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.
# 🌐 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 |
| `2412` | **Прокси** — сюда подключаются браузер/приложения | `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`
---
_Создано для простого и безопасного доступа в интернет_ 🛡️