Скрипт за инсталиране на WireGuard, генериране на ключове и настройка

Все по често ми се налага да инсталирам VPN и в частност WireGuard. Реших, че ще е по добре, да напиша пълен автоматизиран скрипт за инсталиране на WireGuard, генериране на ключове и настройка на клиенти.
Създадох пълнофункционален Bash скрипт за автоматична инсталация и управление на WireGuard на Proxmox Ubuntu контейнер. Рзабира се може да се използва на всякакъв Ubuntu сървър.
🧠 Какво е VPN и защо ви е нужен?
VPN е услуга, която криптира интернет връзката ви. Това прави данните ви невидими за хакери, интернет доставчици и дори правителствени агенции. 🤫
Собственият VPN сървър ви осигурява:
- 🔐 Пълна сигурност и контрол
- 🌍 Достъп до домашната ви мрежа отвсякъде
- 📶 Без ограничения от доставчици
- 💰 Без месечни такси към трети страни
А с помощта на скрипта и Proxmox, всичко това може да бъде постигнато само за няколко минути.
Защо WireGuard, а не OpenVPN?
🟦 OpenVPN (стабилен и добре поддържан)
OpenVPN е класика. Работи навсякъде и е тестван във времето.
🟩 WireGuard (по-нов, по-бърз и по-лек)
WireGuard е съвременен, по-лек и лесен за настройка. Препоръчвам го за повечето потребители.
Ще използвам WireGuard, защото е бърз, модерен и поддържан от ядрото на Linux.
🔧 Основни функции:
Автоматична инсталация:
- Инсталира WireGuard и всички необходими инструменти
- Настройва IP forwarding
- Създава сървърски ключове и конфигурация
Управление на IP адреса:
- Автоматично открива външното IP
- Предлага възможност да въведете свой IP
- По подразбиране използва примерно IP:
95.42.103.123
Генериране на клиенти:
- Създава уникални ключове за всеки клиент
- Генерира
.conf
файлове - Автоматично добавя клиентите в
wg0.conf
- Създава QR кодове за сканиране с телефона
📱 Как да използвате скрипта:
Първо изтеглете скрипта
wget https://gist.fedia.eu/urocibg/179de4146abb46f79d7d33d85e9e397c/raw/HEAD/wireguard_setup.sh
# Направете файла изпълним
chmod +x wireguard_setup.sh
# Стартирайте като root
sudo ./wireguard_setup.sh
🎯 Интерактивно меню:
- Добави нов клиент – Създава нов клиент с QR код
- Покажи статус – Проверява състоянието на WireGuard
- Покажи QR код – Показва QR код за съществуващ клиент
- Покажи конфигурация – Показва конфигурационен файл
- Изход – Затваря скрипта
📂 Структура на файловете:
/etc/wireguard/wg0.conf
– Основна сървърска конфигурация/etc/wireguard/clients/
– Папка с клиентските конфигурации- QR кодове се запазват като PNG файлове
Скриптът е готов за използване и включва всички функции.
Вжно: В Proxmox VE, контейнерите (LXC) по подразбиране нямат достъп до TUN/TAP устройства, които са необходими за създаване на виртуални мрежови интерфейси (например за OpenVPN, WireGuard и др.). За да разрешите TUN/TAP в контейнер, трябва да направите следните стъпки:
Влезте в Proxmox през SSH и спрете контейнера:
pct stop <ID_на_контейнера>
Редактирайте конфигурационния файл на контейнера:
nano /etc/pve/lxc/<ID_на_контейнера>.conf
Добавете следното в края на файла:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
Стартирайте контейнера отново:
pct start <ID_на_контейнера>
Влезте в контейнера и проверете дали TUN е активен:
ls -l /dev/net/tun
Ако всичко е наред, ще видите нещо като:
crw-rw-rw- 1 nobody nogroup 10, 200 Jul 17 18:39 /dev/net/tun
Скриптът е разработен с фокус върху българската IT общност и е изцяло локализиран за лесно използване.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut