Установка и настройка Wireguard
tags vpn
selfhost
time 2021-10-16 11:33
Гайд основан на гайде от devpew https://devpew.com/blog/wireguard/ с видео https://youtu.be/03RCvhwcoN0
apt install wireguard
разрешаем проброс пакетов
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Проверям, добавилось или нет
sysctl -p
Генерируем публичный и приватный ключ на сервере
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Создаем конфиг
nano /etc/wireguard/wg0.conf
и добавляем
[Interface]
Address = 10.0.0.1/24
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
ListenPort = 51820
PrivateKey = <SERVER-PRIV-KEY>
запускаем интерфейс
wg-quick up wg0
запускаем сервис
systemctl enable wg-quick@wg0
wg show wg0
Проверяем работу службы
systemctl status wg-quick@wg0
Если вдруг возникли проблемы
wg-quick down wg0
systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
на сервере
wg genkey | tee /etc/wireguard/mac_privatekey | wg pubkey | tee /etc/wireguard/mac_publickey
редактируем
nano /etc/wireguard/wg0.conf
и добавляем
...
[Peer]
PublicKey = <СLIENT-PUBLIC-KEY>
AllowedIPs = 10.0.0.4/32
применяем конфиг
systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0
делаем конфигурацию для клиента, например mac.conf
и добавляем туда
[Interface]
PrivateKey = <PEER_2_PRIVATE_KEY>
Address = 10.0.0.12/32
[Peer]
PublicKey = <SERVER-PUBKEY>
Endpoint = <SERVER-IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 20
(Опционально) Конфиг маршрутизации всего трафика
[Interface]
PrivateKey = <PEER_2_PRIVATE_KEY>
Address = 10.0.0.12/32
DNS = 8.8.8.8
[Peer]
PublicKey = <SERVER-PUBKEY>
Endpoint = <SERVER-IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
sudo wg set wg0 peer DESKTOP_CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2
sudo wg-quick up wg0
sudo wg
(Опционально) Подключение при старте
sudo systemctl enable wg-quick@wg0
# installation
apt install qrencode
qrencode -t ansiutf8 < iphone.conf
Powered by Doctave