В данной статье будет подробно описано как настроить 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/
Нам потребуется открытый и закрытый ключ для нашего сервера. Сгенерируем их, предварительно выставив правильные права при создании файлов и каталогов командами:
Перед созданием конфигурационного файла нам потребуется наименование нашего сетевого интерфейса. Для того что бы его узнать используем команду:
ip a
Нас интересует интерфейс с IP-адресом, Который используется для текущего подключения. Вероятно, у вас он будет называться ens3, но может быть и другое название.
Также нам понадобятся открытый и закрытый ключи. Для их вывода я использую tail
tail privatekey publickey
Выглядит это так:
Для редактирования вы можете использовать текстовый редактор nano. Чтобы установить его нужно выполнить команду:
apt install -y nano
Редактируем конфигурационный файл:
nano /etc/wireguard/wg0.conf
Примечание:
что бы сохранить файл используем комбинацию клавиш ctrl+o
Если вы внимательно следовали нашей инструкции, то на данном этапе, у вас создано все необходимое для того, чтобы серверная часть VPN Wireguard работала.
Осталось настроить клиентскую часть. Для примера и простоты я сгенерирую ключи для клиентской части так же на сервере. Но в целях безопасности было бы правильнее генерировать ключи на стороне клиента.
Использую команды для генерации:
wg genkey > mypc_privatekeywg pubkey < mypc_privatekey > mypc_publickey
Так же сгенерирую ключи чтобы использовать VPN и на телефоне:
wg genkey > myphone_privatekeywg pubkey < myphone_privatekey > myphone_publickey
Следует заметить что все это требуется производить находясь в каталоге /etc/wireguard/
Можно выполнять и в другом каталоге. Но для простоты инструкции выполняем в /etc/wireguard/
Командой ls выводим список файлов в каталоге. У меня получилось вот так:
Выведем открытые ключи на экран. Они понадобятся нам для того, чтобы добавить узлы в нашу сеть:
В поле Endpoint можно увидеть IP- адрес сервера - это IP-адрес, по которому мы подключались по SSH. Чтобы увидеть интерфейсы и адреса можно использовать команду ip a
Аналогичную конфигурацию создаем для нашего телефона. Только требуется изменить адрес. Для пк был 10.30.0.2/32, а в конфигурации для телефона сделаем 10.30.0.3/32. Так же если захотим использовать VPN на других устройствах то при создании конфигураций следует добавлять другие адреса в поле Address в конфигурационных файлах и файле конфигурации сервера wg0.conf поле AllowedIPs
В приложении на Windows добавляем новый тоннель и вписываем конфигурацию которую создали в файле mypc.conf
Запускаем туннель и переходим в браузер на сайт который отображает наш адрес
Чтобы удобно добавить VPN на телефон, на сервере установим программу для генерации qr кодов:
apt install -y qrencode
Находясь в каталоге с конфигурацией выполним:
qrencode -t ansiutf8 -r myphone.conf
Перейдем в приложение Wireguard на телефоне, нажмем + для создания нового тоннеля, выберем сканировать QR-код, отсканируем его, включим VPN. Далее проверим с помощью любого ресурса, отображающего выходной IP-адрес, что у нас отображается адрес нашего сервера.
В данной статье будет подробно описано как настроить VPN Wireguard на своем сервере. Это может быть виртуальный или выделенный сервер - не имеет большого значения.
Эта инструкция по настройке VPN Wireguard рассчитана на пользователей которые не имеют большого опыта, поэтому все шаги будут достаточно подробными и сопровождаются скриншотами.
Трафик, проходя по нашему тоннелю, будет шифроваться, и в интернете будет отображаться не адрес провайдера, через который мы выходим в сеть, а IP-адрес нашего VPN-сервера.
Предполагаю что у вас уже есть VPS. Если нет, то вы можете его заказать у нас.
На нашем сервере мы установим операционную систему Ubuntu 22.04. Если у вас имеется сервер с другой ОС, то вы можете легко переустановить ее по инструкции.
И так, у нас готов сервер с ОС Ubuntu 22.04, теперь подключаемся к нему по SSH. Если вдруг вы до этого не сталкивались с этим протоколом, то у нас есть статья в которой этот процесс подробно описан. Для ОС Linux второй пункт, для ОС Windows третий пункт в статье.
После успешного подключения я напишу несколько команд и описание того что они производят для понимания процесса:
Обновляем список пакетов в репозиториях
Обновим сами пакеты
Установим пакет wireguard
Наша конфигурация будет хранится в каталоге /etc/wireguard/ перейдем в каталог:
cd /etc/wireguard/
Нам потребуется открытый и закрытый ключ для нашего сервера. Сгенерируем их, предварительно выставив правильные права при создании файлов и каталогов командами:
Выставим права на приватный ключ:
Перед созданием конфигурационного файла нам потребуется наименование нашего сетевого интерфейса. Для того что бы его узнать используем команду:
ip a
Нас интересует интерфейс с IP-адресом, Который используется для текущего подключения. Вероятно, у вас он будет называться ens3, но может быть и другое название.
Также нам понадобятся открытый и закрытый ключи. Для их вывода я использую tail
Выглядит это так:
Для редактирования вы можете использовать текстовый редактор nano. Чтобы установить его нужно выполнить команду:
Редактируем конфигурационный файл:
Примечание:
что бы сохранить файл используем комбинацию клавиш ctrl+o
для выхода ctrl+x
Он должен выглядеть следующим образом:
В моем случае он выглядит вот так:
Включаем ip forwarding
Запускаем wireguard службу:
Если мы хотим чтобы служба запускалась после перезагрузки сервера то выполняем:
Для того чтобы посмотреть состояние службы:
Статус должен быть active как на скриншоте:
Если вы внимательно следовали нашей инструкции, то на данном этапе, у вас создано все необходимое для того, чтобы серверная часть VPN Wireguard работала.
Осталось настроить клиентскую часть. Для примера и простоты я сгенерирую ключи для клиентской части так же на сервере. Но в целях безопасности было бы правильнее генерировать ключи на стороне клиента.
Использую команды для генерации:
Так же сгенерирую ключи чтобы использовать VPN и на телефоне:
Следует заметить что все это требуется производить находясь в каталоге /etc/wireguard/
Можно выполнять и в другом каталоге. Но для простоты инструкции выполняем в /etc/wireguard/
Командой ls выводим список файлов в каталоге. У меня получилось вот так:
Выведем открытые ключи на экран. Они понадобятся нам для того, чтобы добавить узлы в нашу сеть:
У меня это выглядит так:
Отредактируем наш конфигурационный файл:
nano wg0.conf
Добавим строки:
Теперь конфиг файл выглядит следующим образом:
Сохраним файл и перезапустим нашу службу:
Проверим что все прошло успешно:
Статус должен быть active
Перезагрузку службы требуется делать каждый раз после редактирования файла конфигурации сервера (wg0.conf)
Далее создадим конфигурации для клиентов (в моем случае мой пк и телефон). Я сделаю это так же на сервере.
В поле Endpoint можно увидеть IP- адрес сервера - это IP-адрес, по которому мы подключались по SSH. Чтобы увидеть интерфейсы и адреса можно использовать команду ip a
Аналогичную конфигурацию создаем для нашего телефона. Только требуется изменить адрес. Для пк был 10.30.0.2/32, а в конфигурации для телефона сделаем 10.30.0.3/32. Так же если захотим использовать VPN на других устройствах то при создании конфигураций следует добавлять другие адреса в поле Address в конфигурационных файлах и файле конфигурации сервера wg0.conf поле AllowedIPs
У меня файлы выглядят вот так:
mypc.conf
myphone.conf
Для подключения устанавливаем клиент wireguard https://www.wireguard.com/install/
В приложении на Windows добавляем новый тоннель и вписываем конфигурацию которую создали в файле mypc.conf
Запускаем туннель и переходим в браузер на сайт который отображает наш адрес
Чтобы удобно добавить VPN на телефон, на сервере установим программу для генерации qr кодов:
Находясь в каталоге с конфигурацией выполним:
Перейдем в приложение Wireguard на телефоне, нажмем + для создания нового тоннеля, выберем сканировать QR-код, отсканируем его, включим VPN. Далее проверим с помощью любого ресурса, отображающего выходной IP-адрес, что у нас отображается адрес нашего сервера.