-
Обновляем сервер:
apt update && apt upgrade -y -
Ставим WireGuard:
apt install -y wireguard -
Генерируем ключи сервера:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey -
Проставляем права на приватный ключ:
chmod 600 /etc/wireguard/privatekey -
Проверим, как у вас называется сетевой интерфейс:
ip a
Скорее всего сетевой интерфейс будет eth0, но возможно и другой, например, ens3 или как-то иначе. Это название интерфейса используется далее в конфиге /etc/wireguard/wg0.conf, который мы сейчас создадим:
nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <privatekey>
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE- Обратите внимание — в строках
PostUpиPostDownиспользован как раз сетевой интерфейсeth0. - Вставляем вместо
<privatekey>содержимое файла/etc/wireguard/privatekey - Настраиваем IP форвардинг:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p- Включаем
systemdдемон с WireGuard:
systemctl enable wg-quick@wg0.service
systemctl start wg-quick@wg0.service
systemctl status wg-quick@wg0.service-
Создаём ключи клиента:
wg genkey | tee /etc/wireguard/username_privatekey | wg pubkey | tee /etc/wireguard/username_publickey -
Добавляем в конфиг сервера клиента:
nano /etc/wireguard/wg0.conf
# ...
[Peer]
PublicKey = <username_publickey>
AllowedIPs = 10.0.0.2/32-
Вместо
<username_publickey>— заменяем на содержимое файла/etc/wireguard/username_publickey -
Перезагружаем
systemdсервис с WireGuard:
systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0- На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента:
nano username_wg.conf
[Interface]
PrivateKey = <CLIENT-PRIVATE-KEY>
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = <SERVER-PUBKEY>
Endpoint = <SERVER-IP>:51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20-
Здесь
<CLIENT-PRIVATE-KEY>заменяем на приватный ключ клиента, то есть содержимое файла/etc/wireguard/username_privatekeyна сервере.<SERVER-PUBKEY>заменяем на публичный ключ сервера, то есть на содержимое файла/etc/wireguard/publickeyна сервере.<SERVER-IP>заменяем на IP сервера. -
Этот файл открываем в WireGuard клиенте (есть для всех операционных систем, в том числе мобильных) — и жмем в клиенте кнопку подключения.