База знань Проста інструкція по роботі з сервісом Профітсервер
головний База знань Як налаштувати 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, але може бути й інша назва.

nastroyka-wireguard-vpn-na-svoem-servere_1_ru

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

tail privatekey publickey

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

nastroyka-wireguard-vpn-na-svoem-servere_2_ru

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

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

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

nastroyka-wireguard-vpn-na-svoem-servere_3_ru

Включаємо 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]

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

nastroyka-wireguard-vpn-na-svoem-servere_4_ru

Якщо ви уважно слідували нашим інструкціям, то на цьому етапі у вас є все необхідне для роботи серверної частини 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, щоб отримати список файлів у каталозі. Я отримав це так:

nastroyka-wireguard-vpn-na-svoem-servere_5_ru

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

tail mypc_publickey myphone_publickey

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

nastroyka-wireguard-vpn-na-svoem-servere_6_ru

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

nano wg0.conf

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

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

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

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

nastroyka-wireguard-vpn-na-svoem-servere_7_ru

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

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

nastroyka-wireguard-vpn-na-svoem-servere_8_ru

myphone.conf

nastroyka-wireguard-vpn-na-svoem-servere_9_ru

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

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

nastroyka-wireguard-vpn-na-svoem-servere_10_ru

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

nastroyka-wireguard-vpn-na-svoem-servere_11_ru

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

apt install -y qrencode

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

qrencode -t ansiutf8 -r myphone.conf
nastroyka-wireguard-vpn-na-svoem-servere_12_ru

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

nastroyka-wireguard-vpn-na-svoem-servere_13_ru nastroyka-wireguard-vpn-na-svoem-servere_14_ru

Ти зробив це!


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

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