###### tags: Linux, Wireguard, VPN.
# Настройка Wireguard.
Заметка по настройки Wireguard.
Обновим ПО на серваке.
```
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**. Если у вас другой — замените **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/kocharuan_privatekey | wg pubkey | tee /etc/wireguard/kocharuan_publickey
```
Добавляем в конфиг сервера клиента:
```
nano /etc/wireguard/wg0.conf
```
Конфиг пира.
```
[Peer]
PublicKey = <kocharuan_publickey>
AllowedIPs = 10.0.0.2/32
```
Вместо <kocharuan_publickey> — заменяем на содержимое файла /etc/wireguard/kocharuan_publickey
Перезагружаем systemd сервис с wireguard:
```
systemctl restart wg-quick@wg0
```
На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента:
```
nano kocharuan_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/goloburdin_privatekey на сервере. <SERVER-PUBKEY> заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. <SERVER-IP> заменяем на IP сервера.
Этот файл открываем в [Wireguard клиенте](https://www.wireguard.com/install/) (есть для всех операционных систем, в том числе мобильных) — и жмем в клиенте кнопку подключения.