refactor: реорганизация структуры проекта на логические папки
- Созданы директории: docker/, scripts/, config/ - Перемещены файлы Docker (Dockerfile, entrypoint.sh) в docker/ - Перемещены утилитарные скрипты в scripts/ - Шаблон конфигурации перенесен в config/ - Веб-сервер перемещен в web/ и переименован в server.py - Обновлены пути в docker-compose.yml, Dockerfile и entrypoint.sh
This commit is contained in:
330
README.md
330
README.md
@@ -1,2 +1,330 @@
|
||||
# vpn-proxy
|
||||
# 🌐 VPN Proxy — Домашний VPN в одной программе
|
||||
|
||||
> **Простыми словами:** ваш компьютер подключается к удалённому VPN-серверу, и весь интернет-трафик идёт через него. Это нужно для доступа к заблокированным сайтам или для защиты данных в публичных Wi-Fi сетях.
|
||||
|
||||
---
|
||||
|
||||
## 📖 Что это такое?
|
||||
|
||||
Это набор инструментов, который позволяет:
|
||||
|
||||
1. **Запустить VPN-прокси** на вашем компьютере
|
||||
2. **Управлять через веб-интерфейс** — открываете в браузере, вставляете ссылку, готово!
|
||||
3. **Подключить браузер или приложения** (например, VS Code) через этот прокси
|
||||
4. **Автоматически обновлять конфигурацию** с вашего VPN-провайдера
|
||||
|
||||
### 🎯 Для кого это?
|
||||
|
||||
- Пользователи, которым нужен VPN для работы или доступа к заблокированным ресурсам
|
||||
- Разработчики, которые хотят направить трафик VS Code или других программ через VPN
|
||||
- Люди, которые получили "ссылку подписки" от VPN-провайдера
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Как это работает?
|
||||
|
||||
```
|
||||
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||
│ Ваш браузер │────▶│ VPN Proxy │────▶│ VPN Сервер │────▶ Интернет
|
||||
│ или VS Code │ │ (порт 8082) │ │ (в другой стране)│
|
||||
└─────────────────┘ └──────────────────┘ └──────────────────┘
|
||||
▲
|
||||
│
|
||||
┌──────────────┐
|
||||
│ Веб-интерфейс│
|
||||
│ (порт 3456) │
|
||||
└──────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Что внутри?
|
||||
|
||||
| Файл | Описание простыми словами |
|
||||
| ------------------------ | ------------------------------------------------------------------------ |
|
||||
| `web_server.py` | Веб-интерфейс для управления через браузер |
|
||||
| `web/index.html` | Страница с красивым интерфейсом |
|
||||
| `client.template.json` | Шаблон настроек — как "бланк анкеты", который заполняется вашими данными |
|
||||
| `gen-client-from-url.sh` | Скрипт, который берёт вашу VPN-ссылку и заполняет "анкету" |
|
||||
| `menu.sh` | Интерактивное меню для выбора сервера из списка (консольная версия) |
|
||||
| `entrypoint.sh` | Главный скрипт запуска с функцией авто-обновления |
|
||||
| `Dockerfile.singbox` | Инструкция для создания изолированного VPN-приложения (контейнера) |
|
||||
| `docker-compose.yml` | Файл для удобного запуска одной командой |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### Что вам понадобится
|
||||
|
||||
1. **VPN-ссылка** — получите её от вашего VPN-провайдера. Бывает двух видов:
|
||||
- **Прямая ссылка**: начинается с `vless://...`
|
||||
- **Ссылка подписки**: обычный URL (начинается с `https://...`), который содержит список серверов
|
||||
|
||||
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. **Вставьте вашу VPN-ссылку** (vless:// или https://)
|
||||
3. **Нажмите "Применить"**
|
||||
4. Готово! Прокси работает на порту **8082**
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Обновление (если уже была установлена старая версия)
|
||||
|
||||
Если вы обновили код из репозитория, нужно пересобрать контейнер:
|
||||
|
||||
```bash
|
||||
# 1. Перейдите в папку с проектом
|
||||
cd путь/к/папке/vpn-proxy
|
||||
|
||||
# 2. Остановите текущий контейнер
|
||||
docker compose down
|
||||
|
||||
# 3. Пересоберите контейнер с новыми изменениями
|
||||
docker compose build --no-cache
|
||||
|
||||
# 4. Запустите заново
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
> 💡 **Примечание:** после пересборки нужно снова применить VPN-ссылку через веб-интерфейс 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. Вставьте новую ссылку
|
||||
3. Нажмите "Применить"
|
||||
|
||||
### Через консоль (если нужен выбор из списка)
|
||||
|
||||
Если у вас ссылка подписки с несколькими серверами:
|
||||
|
||||
```bash
|
||||
docker exec -it sing-proxy ./menu.sh "https://ваша-ссылка-подписки..."
|
||||
```
|
||||
|
||||
Появится список серверов для выбора.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Управление контейнером
|
||||
|
||||
| Действие | Команда |
|
||||
| ----------------------- | ---------------------------------- |
|
||||
| Посмотреть статус | `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-сервера.
|
||||
|
||||
**Решение**:
|
||||
|
||||
- Попробуйте другой сервер — вставьте другую ссылку в веб-интерфейсе
|
||||
- Проверьте, что ссылка подписки актуальна
|
||||
|
||||
### Как узнать, работает ли VPN?
|
||||
|
||||
```bash
|
||||
# Без прокси — покажет ваш домашний IP
|
||||
curl https://ipinfo.io/json
|
||||
|
||||
# Через прокси — должен показать IP VPN-сервера
|
||||
curl -x http://127.0.0.1:8082 https://ipinfo.io/json
|
||||
```
|
||||
|
||||
Если IP-адреса разные — VPN работает! 🎉
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Для продвинутых пользователей
|
||||
|
||||
### Запуск с VPN-ссылкой при старте
|
||||
|
||||
Если хотите сразу применить ссылку при запуске (без веб-интерфейса):
|
||||
|
||||
```bash
|
||||
VLESS_URL="vless://..." docker compose up -d
|
||||
```
|
||||
|
||||
### Запуск без Docker
|
||||
|
||||
Если вы не хотите использовать Docker:
|
||||
|
||||
1. Установите [sing-box](https://sing-box.sagernet.org/)
|
||||
2. Сгенерируйте конфигурацию:
|
||||
```bash
|
||||
./gen-client-from-url.sh "vless://..." client.json
|
||||
```
|
||||
3. Запустите:
|
||||
```bash
|
||||
sing-box run -c client.json
|
||||
```
|
||||
|
||||
### Автоматическое обновление конфигурации
|
||||
|
||||
Контейнер автоматически обновляет конфигурацию каждые 60 минут. Чтобы изменить интервал, добавьте в `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
UPDATE_INTERVAL: 120 # обновлять каждые 120 минут
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Словарь терминов
|
||||
|
||||
| Термин | Объяснение |
|
||||
| ------------------- | ----------------------------------------------------------------------------- |
|
||||
| **Прокси** | Программа-посредник, которая передаёт ваши запросы в интернет от своего имени |
|
||||
| **VPN** | Зашифрованный туннель между вашим компьютером и удалённым сервером |
|
||||
| **Docker** | Программа для запуска приложений в изолированных "контейнерах" |
|
||||
| **Контейнер** | Изолированное приложение со всеми необходимыми компонентами |
|
||||
| **VLESS** | Современный протокол VPN-соединения |
|
||||
| **Reality** | Технология маскировки VPN-трафика под обычный интернет-трафик |
|
||||
| **Ссылка подписки** | URL, который содержит список 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`
|
||||
|
||||
---
|
||||
|
||||
_Создано для простого и безопасного доступа в интернет_ 🛡️
|
||||
|
||||
Reference in New Issue
Block a user