WireGuard
Работа с соединениями через консоль
sudo dnf install wireguard-tools
Редактировать соединение через GUI (в gnome 40+ нет поддержки WireGuard)
nm-connection-editor
Посмотреть все соединения
nmcli
Импортировать соединение из конфига
nmcli con import type wireguard file /home/seryak/peer2/peer2.conf
Выключить \ включить соединение
# nmcli connection up 'WireGuard connection 1'
# nmcli connection down 'WireGuard connection 1'
Установка GUI для gnome
sudo apt install wireguard git dh-autoreconf libglib2.0-dev intltool build-essential libgtk-3-dev libnma-dev libsecret-1-dev network-manager-dev resolvconf
git clone https://github.com/max-moser/network-manager-wireguard
cd network-manager-wireguard
./autogen.sh --without-libnm-glib
./configure --without-libnm-glib --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/NetworkManager --localstatedir=/var
make
sudo make install
Установка сервера
Docker-compose yaml
version: "2.1"
services:
wireguard:
image: ghcr.io/linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1001
- PGID=1001
- TZ=Europe/Netherlands
- SERVERURL=auto #optional
- SERVERPORT=51820 #optional
- PEERS=1 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
- ALLOWEDIPS=0.0.0.0/0 #optional
volumes:
- /app/vpn/wireguard/config:/config
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: always
Рассмотрим основные параметры:
- PUID=1000 - ID пользователя от которого запускаем контейнер. Если вы создавали пользователя с айдишником 1337 то вписываем сюда 1337
- PGID=1000 - ID группы от которой запускаем контейнер. Если вы создавали пользователя с айдишником 1337 то вписываем сюда 1337
- TZ=Europe/London - Таймзона например Europe/Netherlands
- SERVERURL=auto - Если у нас есть домен можем вписать его сюда для удобства либо оставляем значение по умолчанию
- SERVERPORT=51820 - Порт на котором будет висеть wireguard. Не забываем разрешить в фаерволле
- PEERS=1 - Количество создаваемых конфигов. Хорошая практика 1 конфиг = 1 клиент, а не сажать 10 клиентов на 1 конфиг. При подключении каждый клиент будет иметь уникальный ip в виртуальной подсети
- PEERDNS=auto - Можно вписать кастомные днс или например 1.1.1.1 или оставить значение auto
- INTERNAL_SUBNET=10.13.13.0 - Внутренняя виртуальная сеть
- ALLOWEDIPS=0.0.0.0/0 - Диапазоны ip к которым пиры могут обращаться через VPN тунель. По стандарту все ip
- /app/vpn/wireguard/config:/config - Место для хранения данных докер контейнера
Управление сервером
sudo docker exec -it wireguard wg - статистика
sudo docker-compose up -d --force-recreate - для изменения конфига
sudo docker exec -it wireguard /app/show-peer НОМЕР-ПИРА - показать qr код