An open API service indexing awesome lists of open source software.

https://github.com/vpn-vendor/vpn

Автоматическая настройка сервера для VPN
https://github.com/vpn-vendor/vpn

openvpn server vpn vpn-client vpn-connections vpn-gateway vpn-manager web-cabinet web-panel website wireguard

Last synced: 2 months ago
JSON representation

Автоматическая настройка сервера для VPN

Awesome Lists containing this project

README

          



.^~!!!~. .J:
?5777~!?P7 .. . :: . :: . . ::. . .:. .:.:@~ ::: . :.
Y5.JY7YG ~&.:B! 7G 7BJ?JG~ ~#J?JG~ :B7 7B.~5?7YY. PP??PY 7G??5@~ ~PJ?JP~ ~#YJ7
^&.?# P5 7B. ?#.:&~ J# YB !&: G5 7&::#! &5!7?#^ BY ~@:.@! :&~ &? Y# ~@^
^&:~P??Y5?5^ 5GGJ ?&~.:G5 !&. PP YGGY GP^:^^ #J ^@: #Y.:?@~ GP:.^GY !@.
JP7~~^^~. .J? J#7?J7 ^J. 7! .JJ .7???! ?~ :J. :?J?!?: .7J??! :J.
:~!77!~ 7P :??????J^

VPN Setup Script (v2.5.5)


---

> 🚀 **Автоматический VPN-шлюз "Всё в одном"**
>
> Этот скрипт превращает чистый сервер **Ubuntu 22.04 LTS** в полнофункциональный и безопасный VPN-шлюз с удобным веб-интерфейсом для управления и мониторинга. Идеальное решение для быстрой и стандартизированной настройки.

---

### ⚡️ Quick start ⚡️
```bash
wget https://raw.githubusercontent.com/vpn-vendor/vpn/main/vpn.sh -O vpn.sh && sudo bash vpn.sh
```

---

### 🌟 Ключевые возможности

* 🌐 **Универсальный сетевой шлюз**
- Поддерживает три типа подключения к интернету: **DHCP**, **Статический IP** и **PPPoE**. Автоматически настраивает локальную сеть с собственным **DHCP-сервером**.

* 🛡️ **Непробиваемый Kill Switch**
- Весь трафик из локальной сети принудительно направляется через VPN-туннель. Если VPN-соединение обрывается, доступ в интернет для подключенных устройств блокируется, предотвращая утечки данных.

* 🏳️ **Возможность раздачи белого интернета в локальную сеть**
- Весь трафик из локальной сети можно перенаправлять напрямую через вашего белого интернет провайдера благодаря выбору режима работы скрипта минуя VPN [БЕТА-ФУНКЦИЯ!].

* 📊 **Веб-интерфейс с мониторингом**
- Устанавливается готовая веб-панель для управления VPN-конфигурациями (OpenVPN/WireGuard), мониторинга состояния системы (CPU, RAM, Disk) и отслеживания сетевой активности в реальном времени.

* 🖥️ **Встроенный веб-терминал**
- Благодаря `shellinabox` вы получаете доступ к командной строке сервера прямо из браузера через веб-интерфейс.

* 🤖 **Интеграция с Telegram**
- Настраивается Telegram-бот для получения уведомлений и управления основными службами сервера.

* 🔌 **Автоматизация с USB**
- Скрипт умеет автоматически монтировать USB-накопители и копировать с них новую версию установочного скрипта `vpn.sh` в домашнюю директорию.

* 🗑️ **Полное удаление**
- Встроенная функция для полного и чистого удаления всех установленных компонентов и возвращения системы к исходному состоянию.

---

### ⚠️ Важнейшие требования и предупреждения

> 🚨 **ВНИМАНИЕ!** Перед установкой, пожалуйста, убедитесь, что ваша система соответствует следующим критически важным требованиям:

* **Операционная система**
* Скрипт разработан и протестирован **СТРОГО для Ubuntu 22.04 LTS** (Server или Desktop). Использование на других версиях или дистрибутивах приведет к ошибкам.
* *Известные конфликты:*
* **Ubuntu 20.04:** Отсутствуют необходимые версии Python-библиотек для Telegram-бота.
* **Ubuntu 24.04:** Не совпадают версии Python-библиотек для Telegram-бота из-за чего скрипт падает.
* **Linux Mint:** Возможны серьезные сбои в работе графической оболочки Cinnamon после первого перезапуска системы.

* **Аппаратное обеспечение**
* Требуется как минимум **ДВЕ физические сетевые карты или порты в материнской плате (NIC)**: одна для подключения к интернету (WAN), другая — для локальной сети (LAN).

* **Сетевое окружение**
* Для корректной работы DHCP-сервера (`isc-dhcp-server`) на момент установки к LAN-интерфейсу должен быть подключен хотя бы один клиент (ПК, ноутбук) или сетевой свитч. **Подключение только роутера к LAN-порту недостаточно** и вызовет ошибку.

---

### 🚀 Установка и Первый запуск

1. **Загрузка и запуск**
Подключитесь к вашему серверу по SSH и выполните следующую команду. Она скачает скрипт и запустит его с правами администратора:
```bash
wget https://raw.githubusercontent.com/vpn-vendor/vpn/main/vpn.sh -O vpn.sh && sudo bash vpn.sh
```
> **Возможная проблема:** Если `wget` выдает ошибку, связанную с `HSTS`, выполните `rm -f ~/.wget-hsts` и повторите команду.

2. **Следуйте инструкциям**
* В главном меню выберите **"1) Установить/Обновить/Починить VPN-сервер"**.
* Скрипт предложит настроить сетевые интерфейсы. Выберите входящий (WAN) и выходящий (LAN) интерфейсы из списка.
* Укажите тип вашего интернет-подключения (DHCP, статика или PPPoE) и введите необходимые данные, если потребуется.

3. **Доступ к веб-интерфейсу**
* После успешной установки веб-интерфейс будет доступен в вашей **локальной сети** по IP-адресу сервера, например: `http://192.168.69.1/`
* **Логин и пароль** для доступа к сайту совпадают с логином и паролем пользователя от вашего сервера.

---

### ⚙️ Архитектура и Компоненты

Скрипт устанавливает и настраивает комплекс программного обеспечения для создания полноценного шлюза.

| Компонент | Назначение | Статус |
| ---------------------- | ------------------------------------------------------ | --------------- |
| `OpenVPN / WireGuard` | Клиенты для подключения к VPN-сервисам | Устанавливается |
| `isc-dhcp-server` | DHCP-сервер для раздачи IP-адресов в локальной сети | Устанавливается |
| `iptables-persistent` | Файрвол для реализации Kill Switch и NAT | Устанавливается |
| `Apache2` + `PHP` | Веб-сервер для работы панели управления | Устанавливается |
| `shellinabox` | Веб-терминал, доступный через панель управления | Устанавливается |
| `Python3` + `pip` | Основа для демонов мониторинга и Telegram-бота | Устанавливается |
| `net-tools`, `nload` | Утилиты для диагностики и мониторинга сети | Устанавливается |
| `dnsmasq` | Потенциально конфликтующий DNS/DHCP-сервер | **Удаляется** |
| `openvswitch-switch` | Потенциально конфликтующий виртуальный коммутатор | **Удаляется** |

---

### 🛠️ Устранение неполадок

* **Проблема:** При установке возникает ошибка **"isc-dhcp-server не запущен"**.
* **Решение:** Убедитесь, что к вашему LAN-интерфейсу подключено активное устройство (ПК, ноутбук) или свитч. Перезапустите скрипт или перезагрузите сервер (`sudo reboot`) после подключения устройства к сети.

* **Проблема:** После ручной настройки статического IP в Netplan пропал интернет.
* **Решение:** Убедитесь, что вы указали маску подсети в формате CIDR (например, `/24`), а не в виде `255.255.255.0`. Перезапустите скрипт и выполните настройку сети заново введя правильные данные.

* **Проблема:** Веб-панель не может подключить загруженный `.ovpn` конфиг.
* **Решение:** Веб-интерфейс может быть несовместим с некоторыми сложными или нестандартными конфигурациями. Попробуйте использовать другой, более простой конфиг от вашего VPN-провайдера.

---

### 🗑️ Удаление

Скрипт предусматривает полное и чистое удаление всех установленных пакетов, конфигураций и служб.

Для удаления запустите скрипт повторно и выберите опцию **"3) Удалить все настройки (Сброс до заводских)"**.
```bash
sudo bash vpn.sh
```

---

### 📄 История версий и Контакты

Версия 2.5.5 (Текущая)

[+] Исправлено множество мелких багов почти в каждом методе.
[+] Исправлены ошибки в комментариях.
[+] Изменено главное меню до улучшенной версии.
[+] Решена проблема с переполнением таблиц из-за которой каждые 3-4 часа появлялось "кваканье".
[+] Каждый метод был оптимизирован под работу с VoIP, а так же изменено ядро.
[+] Скрипт стал более отказоустойчивым за счет реагирования на ошибки.
[+] Внедрен автовалидатор для ввода данных netplan.
[+] Был внедрен FallbackDNS для надежности на случай проблем с провайдером.
[+] Добавлена очистка дублей при повторных запусках скрипта.


**Есть вопросы, предложения или требуется помощь?**
Свяжитесь с нами в Telegram: [@vpn_vendor](https://t.me/vpn_vendor)