Найти тему
The Codeby

Свой WireGuard VPN за 10 минут на ПК и Android

Оглавление

Источник codeby.net

Настройка WireGuard VPN-сервера

Добавляем unstable репозиторий в пакетный менеджер apt. Меняем приоритет для unstable пакетов. Делаем обновления ОС и устанавливаем пакет wireguard.

Но могут возникнуть проблемы типу не хватает открытого pgp ключа:

-2

Не паникуем и просто импортируем его командой:

И как мы видим, ошибка ушла:

-3

Если нет модуля ядра, ставим и его

apt-get install wireguard-dkms wireguard-tools linux-headers-$(uname -r)

Как только все будет готово, проверяем, что модуль загружен:

modprobe wireguard && lsmod | grep wireguard
wireguard 225280 0
ip6_udp_tunnel 16384 1 wireguard
udp_tunnel 16384 1 wireguard

Создаем открытый и закрытый ключи для сервера и для клиента.

mkdir ~/wireguard
cd ~/wireguard
umask 077
wg genkey | tee server_private_key | wg pubkey > server_public_key
wg genkey | tee client_private_key | wg pubkey > client_public_key

В результате, у нас будет создано четыре файла:

Включаємо форвардинг в sysctl.conf:

nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

Создаем директорию / etc / wireguard, а в ней конфигурационный файл /etc/wireguard/wg0.conf следующего содержания:

Разумеется, вместо SERVER_PRIVATE_KEY и CLIENT_PUBLIC_KEY мы прописываем ключи, которые были созданы ранее файлов. Далее, комментарии по конфиге:
Address - адрес виртуального интерфейса wg0 на сервере.
PostUp и PostDown - команды, которые будут выполнены при включении и отключении интерфейса.
ListenPort - порт, на котором будет работать VPN.
AllowedIPs - виртуальные IP клиентов, которые будут подключаться к нашему серверу.

Сохраняем изменения, делаем файл доступен только для root, включаем и запускаем сервис:

chmod 600 /etc/wireguard/wg0.conf
systemctl enable wg-quick@wg0.service
systemctl restart wg-quick@wg0.service

Настройка wireguard клиента

Добавьте репозиторий Wireguard в ваш список источников. Затем Apt автоматически обновит кэш пакета.

sudo add-apt-repository ppa:wireguard/wireguard

Установите Wireguard. Пакет установит всю необходимую зависимость.
Bash:

sudo apt install wireguard

Переходим в директорию / etc / wireguard, а в ней создаем конфигурационный файл /etc/wireguard/wg0-client.conf следующего содержания:

В данном случае, вместо CLIENT_PRIVATE_KEY и SERVER_PUBLIC_KEY мы опять же, подставляем ключи, сгенерированные ранее, а вместо SERVER_REAL_IP прописываем IP адрес нашего сервера, на котором установлен VPN.

Сохраняем файл, и пробуем подключиться командой wg-quick up wg0-client:

Проверяем подключение, и если все сделано правильно, то весь наш трафик теперь будет проходить через VPN сервер.

Для отключения от VPN просто выполняем команду wg-quick down wg0-client:

При необходимости, мы можем управлять сервисом через systemd:

systemctl restart wg-quick@wg0-client.service