База знань Проста інструкція по роботі з сервісом Профітсервер
головний База знань Як налаштувати Wireguard VPN на вашому сервері

Як налаштувати Wireguard VPN на вашому сервері


У цій статті буде детально описано, як налаштувати Wireguard VPN на вашому сервері. Це може бути віртуальний або приватний сервер - не має такого великого значення.

Цей посібник із налаштування VPN Wireguard розроблений для користувачів, які не мають великого досвіду, тому всі кроки будуть досить детальними та супроводжуються знімками екрана.

Трафік, що проходить через наш тунель, буде зашифрований, а в Інтернеті відображатиметься IP-адреса нашого VPN-сервера, а не адреса провайдера, через якого ми отримуємо доступ до мережі.

Передбачається, що у вас вже є VPS. Якщо ні, ви можете порядок це від нас.

Ми встановимо операційну систему Ubuntu 22.04 на наш сервер. Якщо у вас є сервер з іншою ОС, ви можете легко перевстановити його, дотримуючись інструкцій інструкції.

Отже, сервер з ОС Ubuntu 22.04 готовий, тепер підключаємося до нього по SSH. Якщо раптом ви раніше не стикалися з цим протоколом, то вам допоможе стаття, в якій цей процес детально описаний. Абзац другий ст стаття для ОС Linux, третє для ОС Windows.

Налаштуйте сервер Wireguard

Після успішного підключення я напишу кілька команд і опис того, що вони виробляють, щоб зрозуміти процес:

Ми оновлюємо список пакетів у репозиторіях

apt update

Поновлення самих пакетів

apt upgrade -y

Встановіть пакет Wireguard

apt install -y wireguard

Наша конфігурація буде зберігатися в каталозі /etc/wireguard/, нам потрібно увійти в каталог:

cd /etc/wireguard/

Нам знадобляться відкритий і закритий ключ для нашого сервера. Ми згенеруємо їх після встановлення правильних прав під час створення файлів і каталогів за допомогою команд:

umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey

Тепер встановлюємо права для закритого ключа:

chmod 600 privatekey

Перш ніж створити файл конфігурації, нам потрібна назва нашого мережевого інтерфейсу. Щоб виявити його, використовуйте команду:

ip a

Нам потрібен інтерфейс з IP-адресою, яка використовується для поточного підключення. Ймовірно, у вашому випадку він називатиметься ens3, але може бути й інша назва.

Налаштуйте Wireguard - нам знадобляться відкритий і закритий ключ для нашого сервера

Нам також знадобляться відкритий і закритий ключі. Щоб відобразити їх, я використовую хвіст

tail privatekey publickey

Це виглядає наступним чином:

Нам також знадобляться відкритий і закритий ключі. Щоб відобразити їх, я використовую хвіст

Для редагування можна використовувати будь-який Текстовий редактор Linux. Я буду використовувати нано. Щоб встановити його, потрібно виконати команду:

apt install -y nano

Редагуємо конфігураційний файл:

nano /etc/wireguard/wg0.conf

Примітка:

щоб зберегти файл, ми використовуємо комбінацію кнопок ctrl+o

для виходу - ctrl+x

Це має виглядати так:

[Interface]
PrivateKey = [ your private key ]
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ interface name ] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ interface name ] -j MASQUERADE

У моєму випадку це виглядає так

Редагуємо конфігураційний файл

Включаємо ip forwarding

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

Запуск служби Wireguard:

systemctl start [email protected]

Якщо ми хочемо, щоб служба запускалася після перезапуску сервера, ми робимо наступне:

systemctl enable [email protected]

Для перегляду статусу послуги:

systemctl status [email protected]

Статус має бути активним, як на скріншоті:

Статус має бути активним, як на скріншоті

Якщо ви уважно слідували нашим інструкціям, то на цьому етапі у вас є все необхідне для роботи серверної частини VPN Wireguard.

Налаштування клієнта Wireguard

Залишилося лише налаштувати клієнтську частину. Для прикладу та простоти я буду генерувати ключі для клієнтської частини також на сервері. Але в цілях безпеки було б правильніше генерувати ключі на стороні клієнта. Я використовую команди для генерації:

wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey

Я також згенерую ключі для використання VPN на телефоні:

wg genkey > myphone_private
keywg pubkey < myphone_privatekey > myphone_publickey

Слід зазначити, що все це потрібно робити, перебуваючи в каталозі

/etc/wireguard/

Ви також можете запустити в іншому каталозі. Але для простоти ми виконуємо інструкції в /etc/wireguard/

Ми використовуємо команду ls, щоб отримати список файлів у каталозі. Я отримав це так:

Я згенерую ключі для клієнтської частини Wireguard також на сервері

Виведемо відкритий ключ на екран. Вони нам знадобляться, щоб додати вузли в нашу мережу:

tail mypc_publickey myphone_publickey

Для мене це виглядає так:

Виведемо відкритий ключ на екран

Давайте відредагуємо наш конфігураційний файл:

nano wg0.conf

Додайте наступні рядки:

[Peer]
PublicKey = [ mypc_publickey ]
AllowedIPs = 10.30.0.2/32 

[Peer]
PublicKey = [ myphone_publickey ]
AllowedIPs = 10.30.0.3/32

Тепер конфігураційний файл виглядає так:

Давайте відредагуємо наш конфігураційний файл

Збережіть файл і перезапустіть наш сервіс:

systemctl restart wg-quick@wg0

Перевіримо, чи все пройшло успішно:

systemctl status wg-quick@wg0

Статус має бути активним

Кожного разу після редагування файлу конфігурації сервера (wg0.conf) потрібно перезавантажувати службу.

Далі ми створимо конфігурації для клієнтів (у моєму випадку, комп’ютера та телефону). Я зроблю те саме на сервері.

nano mypc.conf
[Interface] 
PrivateKey = [mypc_privatekey private key] 
Address = 10.30.0.2/32 
DNS = 8.8.8.8 

[Peer] 
PublicKey = [publickey server publc key] 
Endpoint =[ server ip address]:51928 
AllowedIPs = 0.0.0.0/0 
PersistentKeepalive = 20

У полі Endpoint ви можете побачити IP-адресу сервера - це IP-адреса, яку ми використовували для підключення через SSH. Щоб переглянути інтерфейси та адреси, ви можете скористатися командою ip a.

Налаштуйте Wireguard для мобільного

Створюємо аналогічну конфігурацію для нашого телефону. Просто потрібно змінити адресу. Для ПК це була 10.30.0.2/32, а в конфігурації для телефону зробимо 10.30.0.3/32. Крім того, якщо ми хочемо використовувати VPN на інших пристроях, ми повинні додати інші адреси в поле Address у файлах конфігурації та у файл конфігурації сервера wg0.conf, поле AllowedIPs під час створення конфігурацій

У моєму випадку файли виглядають так:

mypc.conf

ми повинні додати інші адреси в поле Address у файлах конфігурації

myphone.conf

myphone.conf

Для підключення встановлюємо клієнт wireguard https://www.wireguard.com/install/

У програмі Windows ми додаємо новий тунель і вводимо конфігурацію, створену у файлі mypc.conf

У програмі Windows ми додаємо новий тунель і вводимо конфігурацію, створену у файлі mypc.conf

Ми запускаємо тунель і переходимо в браузер на сайт, де відображається наша адреса

Ми запускаємо тунель і переходимо в браузер на сайт, де відображається наша адреса

Щоб було зручно додати VPN на свій телефон, встановіть на сервер програму для генерації qr-кодів:

apt install -y qrencode

Перебуваючи в каталозі конфігурації, виконайте наступний крок:

qrencode -t ansiutf8 -r myphone.conf
Щоб було зручно додати VPN на телефон, встановіть на сервер програму для генерації qr-кодів

Потім входимо в програму Wireguard на телефоні, натискаємо +, щоб створити новий тунель, вибираємо сканувати QR-код, сканувати його, увімкнути VPN. Далі ми перевіримо, чи відображається адреса нашого сервера, використовуючи будь-який ресурс, який відображає вихідну IP-адресу.

Потім входимо в програму Wireguard на телефоні, натискаємо +, щоб створити новий тунель перевірте, чи ми відображаємо адресу нашого сервера, використовуючи будь-який ресурс, який відображає вихідну IP-адресу

Ти зробив це!

❮ Попередня стаття Як підключитися до сервера Windows за допомогою RDP (Remote Desktop) зі смартфона на iOS або Android
Наступна стаття ❯ Налаштування VPN-сервера в Linux: PPTP чи OpenVPN?

Запитайте нас про VPS

Ми завжди готові відповісти на ваші запитання в будь-який час дня і ночі.