WireGuard — это современный протокол VPN, быстрый, компактный и простой в настройке. Собственный WireGuard на VPS даёт вам зашифрованный туннель к серверу в выбранной вами стране без сторонней VPN-компании посередине. В этом руководстве используется Ubuntu 24.04 или Debian 12/13, и предполагается, что вы уже защитили сервер.
1. Установите WireGuard
sudo apt update
sudo apt install -y wireguard
2. Создайте ключи сервера
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077 гарантирует, что файлы ключей доступны для чтения только root. Храните server.key в тайне.
3. Создайте ключи клиента
Создайте пару ключей для ноутбука или телефона на сервере, а затем скопируйте конфигурацию клиента на устройство:
wg genkey | tee client1.key | wg pubkey > client1.pub
4. Напишите конфигурацию сервера
Сначала найдите имя вашего публичного сетевого интерфейса:
ip route get 1.1.1.1 | awk '{print $5; exit}'
Часто это eth0 или ens3. Создайте /etc/wireguard/wg0.conf и замените значения, написанные заглавными буквами, своими:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Вставьте содержимое server.key и client1.pub там, где указано, и замените ETH_IF именем вашего интерфейса.
5. Включите пересылку IP
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. Откройте файрвол
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. Запустите туннель
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Вы должны увидеть интерфейс и, как только клиент подключится, время его последнего рукопожатия.
8. Настройте клиент
На вашем устройстве создайте конфигурацию такого вида (официальные приложения WireGuard для Windows, macOS, Linux, iOS и Android могут импортировать её из файла или QR-кода):
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Параметр AllowedIPs = 0.0.0.0/0, ::/0 направляет весь трафик через туннель. Чтобы получить доступ только к вашей частной сети, используйте вместо этого 10.8.0.0/24.
9. Проверьте
- Активируйте туннель на клиенте.
- Выполните
sudo wg showна сервере и убедитесь, что есть недавнее рукопожатие. - Откройте с клиента страницу «какой у меня IP». Она должна показать адрес вашего сервера.
- Проверьте утечки DNS, если ваша цель — приватность, и добавьте правила IPv6, если у сервера есть IPv6.
Добавление новых устройств
Для каждого нового устройства создайте пару ключей, добавьте ещё один блок [Peer] с новым адресом, например 10.8.0.3/32, и выполните sudo wg syncconf wg0 <(wg-quick strip wg0), чтобы применить изменения, не разрывая существующих соединений.
Выбор расположения
Сервер WireGuard работает в любой из наших локаций. Выберите ближайшую к вам для скорости или в стране, чей IP-адрес вы хотите использовать для своего трафика. См. как выбрать локацию VPS. Небольшого VPS более чем достаточно для личного туннеля.