Налаштування сервера WireGuard у Linux (wg0, NAT, Peers)

12 хв читання - 22 червня 2026 р.

hero section cover
Зміст
  • Коли використовувати сервер WireGuard
  • Налаштування сервера
  • Додавання та видалення пірів
  • Усунення несправностей
  • Ротація ключів та попередньо узгоджені ключі
Поділитися

Практичне налаштування сервера 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 р.

Більше статей
background image

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

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання