Услуги
Клиентам
Партнерам
База знаний
Простые инструкции по работе с сервисом ProfitServer
Настройка Wireguard VPN на своем сервере

В данной статье будет подробно описано как настроить VPN Wireguard на своем сервере. Это может быть виртуальный или выделенный сервер - не имеет большого значения.

 

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

 

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

 

Предполагаю что у вас уже есть VPS. Если нет, то вы можете его заказать у нас.

На нашем сервере мы установим операционную систему Ubuntu 22.04. Если у вас имеется сервер с другой ОС, то вы можете легко переустановить ее по инструкции.

И так, у нас готов сервер с ОС Ubuntu 22.04, теперь подключаемся к нему по SSH. Если вдруг вы до этого не сталкивались с этим протоколом, то у нас есть статья в которой этот процесс подробно описан. Для ОС Linux второй пункт, для ОС Windows третий пункт в статье.

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

Обновляем список пакетов в репозиториях

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, но может быть и другое название.

результат ip a

 

Также нам понадобятся открытый и закрытый ключи. Для их вывода я использую tail

tail privatekey publickey
 

Выглядит это так:

ключи wireguard

 

Для редактирования вы можете использовать текстовый редактор nano. Чтобы установить его нужно выполнить команду:

apt install -y nano
 

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

nano /etc/wireguard/wg0.conf
 

Примечание:

что бы сохранить файл используем комбинацию клавиш ctrl+o

для выхода ctrl+x

 

Он должен выглядеть следующим образом:

 
[Interface]

PrivateKey = [ ваш приватный ключ ]

Address = 10.30.0.1/24

ListenPort = 51928

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ имя интерфейса ] -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ имя интерфейса ] -j MASQUERADE
 

В моем случае он выглядит вот так:Настройка Wireguard VPN на своем сервере

 

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

Статус должен быть active как на скриншоте:

статус службы wireguard

 

Если вы внимательно следовали нашей инструкции, то на данном этапе, у вас создано все необходимое для того, чтобы серверная часть VPN Wireguard работала.

 

Осталось настроить клиентскую часть. Для примера и простоты я сгенерирую ключи для клиентской части так же на сервере. Но в целях безопасности было бы правильнее генерировать ключи на стороне клиента.

 

Использую команды для генерации:

wg genkey > mypc_privatekey

wg pubkey < mypc_privatekey > mypc_publickey
 

Так же сгенерирую ключи чтобы использовать VPN и на телефоне:

wg genkey > myphone_privatekey

wg pubkey < myphone_privatekey > myphone_publickey
 

Следует заметить что все это требуется производить находясь в каталоге /etc/wireguard/

Можно выполнять и в другом каталоге. Но для простоты инструкции выполняем в /etc/wireguard/

Командой ls выводим список файлов в каталоге. У меня получилось вот так:

список ключей для wireguard

 

Выведем открытые ключи на экран. Они понадобятся нам для того, чтобы добавить узлы в нашу сеть:

tail mypc_publickey myphone_publickey
 

У меня это выглядит так:

ключи для wireguard

 

Отредактируем наш конфигурационный файл:

nano wg0.conf
 

Добавим строки:

 
[Peer]

PublicKey = [ mypc_publickey ]

AllowedIPs = 10.30.0.2/32

 

[Peer]

PublicKey = [ myphone_publickey ]

AllowedIPs = 10.30.0.3/32
 

Теперь конфиг файл выглядит следующим образом:

конфигурационный wireguard файл

 

Сохраним файл и перезапустим нашу службу:

systemctl restart wg-quick@wg0
 

Проверим что все прошло успешно:

systemctl status wg-quick@wg0
 

Статус должен быть active

 

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

 

Далее создадим конфигурации для клиентов (в моем случае мой пк и телефон). Я сделаю это так же на сервере.

nano mypc.conf
 
[Interface]

PrivateKey = [ приватный ключ mypc_privatekey ]

Address = 10.30.0.2/32

DNS = 8.8.8.8

 

[Peer]

PublicKey = [ публичный ключ сервера publickey ]

Endpoint =[ ip адрес сервера ]:51928

AllowedIPs = 0.0.0.0/0

PersistentKeepalive = 20
 

В поле Endpoint можно увидеть IP- адрес сервера - это IP-адрес, по которому мы подключались по SSH. Чтобы увидеть интерфейсы и адреса можно использовать команду ip a

 

Аналогичную конфигурацию создаем для нашего телефона. Только требуется изменить адрес. Для пк был 10.30.0.2/32, а в конфигурации для телефона сделаем 10.30.0.3/32. Так же если захотим использовать VPN на других устройствах то при создании конфигураций следует добавлять другие адреса в поле Address в конфигурационных файлах и файле конфигурации сервера wg0.conf поле AllowedIPs

 

У меня файлы выглядят вот так:

mypc.conf

конфигурация wireguard для клиента 1

myphone.conf

конфигурация wireguard для клиента 2

 

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

В приложении на Windows добавляем новый тоннель и вписываем конфигурацию которую создали в файле mypc.conf

windows gui wireguard

Запускаем туннель и переходим в браузер на сайт который отображает наш адрес

проверка ip адреса

 

Чтобы удобно добавить VPN на телефон, на сервере установим программу для генерации qr кодов:

apt install -y qrencode

Находясь в каталоге с конфигурацией выполним:

qrencode -t ansiutf8 -r myphone.conf

qr wireguard

 

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

wireguard на телефонепроверка ip адреса

Пожалуйста, оцените эту статью:
Задайте вопрос
Мы всегда готовы ответить на Ваши вопросы в любое время суток.
Пожалуйста, проверьте нашу Базу Знаний, скорее всего ответ на ваш вопрос там уже есть!