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

Скрипт за инсталиране на 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

🎯 Интерактивно меню:

  1. Добави нов клиент – Създава нов клиент с QR код
  2. Покажи статус – Проверява състоянието на WireGuard
  3. Покажи QR код – Показва QR код за съществуващ клиент
  4. Покажи конфигурация – Показва конфигурационен файл
  5. Изход – Затваря скрипта

📂 Структура на файловете:

  • /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 общност и е изцяло локализиран за лесно използване.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: