Налаштування сервера WireGuard у Linux (wg0, NAT, Peers)
12 хв читання - 22 червня 2026 р.

Практичне налаштування сервера WireGuard для Linux: ключі, файл wg0.conf, NAT, управління пірами за допомогою syncconf та команди для усунення несправностей, якими насправді користуються системні адміністратори.
Запустіть сервер WireGuard, якщо вам потрібен приватний доступ до розміщеної інфраструктури без відкриття адміністративних портів для публічного Інтернету. Він використовує аутентифікацію з відкритим ключем, працює в ядрі Linux, починаючи з версії 5.6, і не заважає роботі системи після запуску. У цій публікації розглядається, коли слід використовувати сервер WireGuard, як його запустити wg0та як підтримувати щоденну роботу пірів.
Коли використовувати сервер WireGuard
Більшість сценаріїв можна розділити на три основні категорії: віддалений доступ, з’єднання «сервер-сервер» та маршрутизація «сайт-сайт».
Для віддаленого доступу запустіть сервер на VPS або виділеному хості та маршрутизуйте адміністративний трафік через тунель. Налаштуйте AllowedIPs на кожному вузлі приватну підмережу управління (наприклад, 10.0.0.0/24), щоб тунель використовувався лише для трафіку внутрішніх систем. Усе інше залишається на локальному з’єднанні користувача. Якщо користувачі підключаються з дому або через мобільні мережі, додайте PersistentKeepalive = 25 на стороні клієнта, щоб запобігти розриву сеансів NAT.
Для з’єднань «сервер-сервер» використовуйте параметр AllowedIPs вузьким. Зазвичай достатньо однієї /32 або невелика підмережа бекенду. Це дозволяє уникнути потрапляння до тунелю стороннього трафіку та забезпечує передбачуваність маршрутизації.
Зв’язки «сайт-сайт» відрізняються. Хост WireGuard діє як шлюз між підмережами, тому переадресація IP-адрес має бути увімкнена, а правила NAT повинні направляти зворотний трафік через правильний інтерфейс.
| Шаблон | AllowedIPs діапазон | Найкраще підходить | Складність налаштування |
|---|---|---|---|
| Віддалений доступ | Приватні підмережі, наприклад 10.0.0.0/24 | Доступ адміністратора та розробника | Низький |
| З сервера на сервер | Конкретні IP-адреси або підмережа бекенду | Зв'язки між хостами «точка-точка» | Від низького до середнього |
| Між майданчиками | Вся віддалена локальна мережа, наприклад /24 | Маршрутизація «шлюз-шлюз» | Від середнього до високого |
| Доступ до приватних послуг | Тільки внутрішня підмережа (розділений тунель) | Ізоляція сервісів бекенду | Середня |
Налаштування сервера
Сервер зберігає приватний ключ, за замовчуванням прослуховує порт UDP 51820 за замовчуванням та завершує тунель. Одна й та сама базова конфігурація працює для всіх трьох вищезазначених схем.
Ключі та файл wg0.conf
Створіть пару ключів сервера:
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.keyЗахистіть приватний ключ:
sudo chmod 600 /etc/wireguard/server_private.keyПриватний ключ залишається на сервері. Публічний ключ — це те, що ви передаєте партнерам.
Створіть /etc/wireguard/wg0.conf:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32Знайдіть вихідний інтерфейс, до якого потрібно підключити <PUBLIC_IFACE> за допомогою:
ip -o -4 route show to default | awk '{print $5}'Переадресація, брандмауер та NAT
Відкрийте порт прослуховування:
sudo ufw allow 51820/udpУвімкніть переадресацію IP, додавши цей рядок до файлу /etc/sysctl.conf:
net.ipv4.ip_forward = 1Застосуйте без перезавантаження:
sudo sysctl -pФайл PostUp та PostDown рядки у wg0.conf додають та видаляють правило маскування NAT під час запуску або вимкнення інтерфейсу. Без них зворотний трафік із локальної мережі ніколи не повернеться до партнера.
Увімкнення тунелю
wg-quick забезпечує роботу інтерфейсу, маршрутизацію та PostUp/PostDown хуки:
sudo wg-quick up wg0Для автоматичного запуску після перезавантаження увімкніть модуль systemd:
sudo systemctl enable --now wg-quick@wg0Перевірте стан за допомогою:
sudo wg showОстанній latest handshake підтверджує, що тунель працює. Якщо вона виглядає застарілою або порожньою, перевірте брандмауер, ключі з обох боків та AllowedIPs.
Додавання та видалення пірів
Кожному партнеру потрібна власна пара ключів. Створіть її на клієнті, а потім додайте відкритий ключ партнера до wg0.conf у новий [Peer] блок із AllowedIPs записом, що призначає його IP-адресу тунелю.
Використовуйте /32 для одного пристрою:
AllowedIPs = 10.8.0.3/32Це запобігає тому, щоб один вузол претендував на адреси, призначені іншому. Для доступу з розділеним тунелем вкажіть лише ті приватні підмережі, які повинні проходити через тунель, наприклад AllowedIPs = 10.8.0.0/24.
Застосуйте зміни конфігурації, не розриваючи активних сесій:
sudo wg syncconf wg0 <(wg-quick strip wg0)Видалення вузла відбувається таким самим чином. Видаліть його [Peer] блок із wg0.conf та запустіть syncconf заново.
Усунення несправностей
Якщо вузол підключається, але не може встановити зв’язок із будь-яким об’єктом на протилежному боці, причиною зазвичай є одна з чотирьох:
- Вимкнено переадресацію IP
- Відсутнє правило маскування NAT
- Неправильно вказано вихідний інтерфейс у правилі NAT
AllowedIPsне містить адресу призначення
Перевірте переадресацію:
cat /proc/sys/net/ipv4/ip_forwardПовинно повернути 1. Якщо повертає 0, зміна sysctl не застосована або не збережена.
Перевірте правило NAT та вихідний інтерфейс:
sudo iptables -t nat -L POSTROUTING
ip route get 1.1.1.1Друга команда показує фактичну назву вихідного інтерфейсу, наприклад ens3, enp1s0, або eth0. Воно має збігатися з інтерфейсом у правилі MASQUERADE.
Якщо сам хендшейк відсутній, перевірте, чи 51820 відкритий у брандмауері та у будь-якого провайдера, що знаходиться вище за ланцюгом, а також чи обидві сторони мають правильний публічний ключ один для одного.
Для однорангових вузлів, що знаходяться за побутовим або мобільним NAT, який розриває неактивні UDP-сесії, встановіть PersistentKeepalive = 25 на клієнті.
Ротація ключів та попередньо узгоджені ключі
Для тунелів, що залишаються активними протягом місяців, слід здійснювати ротацію ключів приблизно раз на рік. Створіть нову пару ключів, оновіть обидва кінці та застосуйте за допомогою wg syncconf. Не використовуйте один і той самий приватний ключ для двох вузлів. Це створює конфлікти маршрутизації та порушує передачу даних між ними.
Щоб додати додатковий рівень безпеки до аутентифікації за допомогою відкритого ключа, додайте попередньо узгоджений ключ для кожного вузла:
wg genpskДодайте результат як PresharedKey = <PSK> у [Peer] блоку з обох боків. WireGuard вбудовує PSK у процес встановлення з’єднання, тому зловмисник, який якимось чином отримає доступ до одного з асиметричних ключів, все одно не зможе розшифрувати трафік без нього.
Корисні команди для щоденного використання:
| Команда | Призначення |
|---|---|
wg show | Партнери, процедури встановлення з’єднання, лічильники трафіку |
wg show wg0 transfer | Лічильники байтів для wg0 |
wg show all dump | Вихідні дані, що обробляються машиною, для скриптів моніторингу |
wg syncconf wg0 <(wg-quick strip wg0) | Застосування змін конфігурації без розриву сеансів |
wg genpsk | Генерування попередньо узгодженого ключа |
Якщо вам потрібен стабільний, загальнодоступний хост для завершення тунелів WireGuard та маршрутизації приватного трафіку у вашу інфраструктуру, ознайомтеся з безлімітними тарифами VPS від FDC.

Цифрова втома очей: як захистити зір у світі, де ми проводимо багато часу перед екранами
Цілий день дивитеся в екран? Дізнайтеся, як зменшити цифрове перенапруження очей за допомогою перевірених методів та інструментів. Цей посібник є незамінним для віддалених працівників, розробників та всіх, хто працює у сфері технологій.
4 хв читання - 21 травня 2025 р.
Чому важливо мати потужний VPS без обмежень трафіку
8 хв читання - 9 травня 2025 р.

Маєте запитання або потребуєте індивідуального рішення?
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання