Настройка wireguard сервера, как настроить и подключить впн
Краткое руководство по настройке wireguard vpn
Что такое wireguard и зачем он нужен - статей много, здесь ничего этого не будет. Только шаги и команды.
Client ---> VPN server ---> Internet
Сервер
Выбираем физический или виртуальный сервер и подключаемся к консоли
Обновляемся
1
sudo apt update && sudo apt upgrade -y
Устанавливаем сам wireguard
1
sudo apt install wireguard -y
Активируем пересылку трафика, для этого редактируем файл
1
sudo nano /etc/sysctl.conf
Находим в файле параметр net.ipv4.ip_forward
, раскомментируем его и устнавливааем значение =1
Проверяем
1
cat /proc/sys/net/ipv4/ip_forward
Должна вернутся 1
Перезагружаемся
1
sudo reboot
Подключаемся после перезагрузки
Сгенерируем пару ключей для сервера
1
wg genkey | tee server-pri.key | wg pubkey > server-pub.key
И для клиента
1
wg genkey | tee client-pri.key | wg pubkey > client-pub.key
В резултате получим черыре файла:
server-pri.key
- приватный ключ сервераserver-pub.key
- публичный ключ сервераclient-pri.key
- приватный ключ клиентаclient-pub.key
- публичный ключ клиента
Приватные ключи должны хранится в надежном месте, публичные - собственно можно публиковать в открытомм доступе кому угодно.
Создаем конфигурацию сервера
1
sudo nano /etc/wireguard/wg0.conf
Вставляем в него следующее содержимое
1
2
3
4
5
6
7
8
9
10
11
12
13
[Interface]
# Server
Address = 10.10.10.1/24 #адрес нашего виртуального интерфейса
ListenPort = 51820 # порт, на котором будет работать wireguard
PrivateKey = # сюда вставляем содержимое файла server-pri.key, сгенерированного на предыдущем шаге
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens1 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens1 -j MASQUERADE
#здесь указан физический интерфейс сервера ens1, нобходимо скорректировать под свой сверер
[Peer]
# Client
PublicKey = # сюда вставляем содержимое файла client-pub.key, сгенерированного на предыдущем шаге
AllowedIPs = 10.10.10.2/32
Запускаем сервис wireguard
1
sudo systemctl start wg-quick@wg0
Если сервис wg-quick@wg0 вдруг не запускается - первое, что стоит проверить - присутствует ли в системе пакет resolvconf (если нет - установить sudo apt install resolvconf)
И устанавливаем автозапуск
1
sudo systemctl enable wg-quick@wg0
Клиент
Создаем конфигурацию клиента
1
nano client.conf
Вставляем содержимое
1
2
3
4
5
6
7
8
9
[Interface]
PrivateKey = # сюда вставляем содержимое файла client-pri.key
Address = 10.10.10.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = # сюда вставляем содержимое файла server-pub.key
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = xx.xx.xx.xx:51820 # xx.xx.xx.xx внешний адрес нашего сервера
Можем либо файлом перенести эту конфигурацию на клиента, либо через QR-код с помощью qrencode
1
sudo apt install qrencode -y
Генерируем QR-код либо в отдельный файл
1
cat client.conf | qrencode -o client.png
Либо отображаем QR-код сразу в консоли
1
qrencode -t ansiutf8 < client.conf
Активируем клиента и наслаждаемся.
90% ошибок при настройке - невнимательность. Если что-то не работает - проверяем первым делом ключи и IP-адреса.