WireGuard на Linux
Ubuntu, Debian, Arch, Fedora и другие дистрибутивы
Установка WireGuard
~1 минутаВыберите команду для своего дистрибутива Linux:
# Обновить пакеты и установить WireGuard
sudo apt update
sudo apt install wireguard wireguard-tools -y
sudo pacman -S wireguard-tools
sudo dnf install wireguard-tools -y
sudo apk add wireguard-tools
Генерация ключей
~1 минутаСгенерируйте пару ключей для клиента (или сервера).
# Создать директорию для конфигов sudo mkdir -p /etc/wireguard cd /etc/wireguard # Установить правильные права sudo chmod 700 /etc/wireguard # Сгенерировать приватный и публичный ключ клиента wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key # Просмотреть ключи sudo cat client_private.key # Приватный — НИКОМУ не давать! sudo cat client_public.key # Публичный — передать администратору сервера
client_private.key) — секретный! Никогда не передавайте его по незащищённым каналам.
Создание конфигурации клиента
~2 минутыСоздайте файл конфигурации /etc/wireguard/wg0.conf.
[Interface] # Ваш приватный ключ (из client_private.key) PrivateKey = ВАШЕ_ЗНАЧЕНИЕ_ПРИВАТНОГО_КЛЮЧА # IP-адрес этого клиента в VPN сети Address = 10.0.0.2/32 # DNS сервер (используем Cloudflare) DNS = 1.1.1.1 [Peer] # Публичный ключ сервера (запросить у администратора) PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА # Адрес:порт WireGuard сервера Endpoint = your-server.com:51820 # Весь трафик через VPN (0.0.0.0/0 = все IPv4 адреса) AllowedIPs = 0.0.0.0/0, ::/0 # Keepalive — поддерживать соединение активным PersistentKeepalive = 25
AllowedIPs = 10.0.0.0/24
Запуск туннеля
wg-quick# Запустить VPN-туннель sudo wg-quick up wg0 # Остановить туннель sudo wg-quick down wg0 # Проверить статус соединения sudo wg show # Просмотреть интерфейсы ip addr show wg0
interface: wg0 public key: xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg= private key: (hidden) listening port: 51820 peer: fE/wdxzl0klVp/IR8UcaoGi1jQsajR0GDtrWBBmSfCg= endpoint: 203.0.113.1:51820 allowed ips: 0.0.0.0/0, ::/0 latest handshake: 1 minute, 23 seconds ago transfer: 14.25 MiB received, 3.18 MiB sent
Автозапуск через systemd
~1 минутаНастройте автоматический запуск WireGuard при старте системы.
# Включить автозапуск туннеля wg0 sudo systemctl enable wg-quick@wg0 # Запуск прямо сейчас sudo systemctl start wg-quick@wg0 # Проверить статус службы sudo systemctl status wg-quick@wg0 # Остановить службу sudo systemctl stop wg-quick@wg0 # Отключить автозапуск sudo systemctl disable wg-quick@wg0
Настройка сервера WireGuard
Для администраторов[Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА # Включить форвардинг пакетов при старте PostUp = iptables -A FORWARD -i %i -j ACCEPT; \ iptables -A FORWARD -o %i -j ACCEPT; \ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; \ iptables -D FORWARD -o %i -j ACCEPT; \ iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Клиент #1 [Peer] PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА_1 AllowedIPs = 10.0.0.2/32 # Клиент #2 [Peer] PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА_2 AllowedIPs = 10.0.0.3/32
# Включить форвардинг echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p # Открыть порт в UFW (если используется) sudo ufw allow 51820/udp sudo ufw reload
# Установить qrencode sudo apt install qrencode -y # Сгенерировать QR-код из конфиг-файла qrencode -t ansiutf8 < /etc/wireguard/client.conf
Решение проблем на Linux
RTNETLINK: Operation not supported
Модуль ядра не загружен. Выполните: sudo modprobe wireguard. Если не помогает — обновите ядро: sudo apt install linux-generic.
VPN включается, но сайты не открываются
Если вы просто пользуетесь готовым конфигом, чаще всего проблема на стороне настроек сервера. Если сервер настраивали вы сами, проверьте форвардинг и маршрутизацию. Если сервер настраивал другой человек, попросите его перепроверить конфигурацию.
Ошибка: Cannot read private key
Проверьте права на файл конфигурации: sudo chmod 600 /etc/wireguard/wg0.conf
Диагностика соединения
Используйте: sudo wg show для статуса, ping 10.0.0.1 для проверки связи с сервером, tcpdump -i wg0 для отладки трафика.