Пошаговая инструкция по настройке сервера и клиента WireGuard (Ubuntu / Debian)В этом руководстве разобрано, как с нуля развернуть собственный VPN-сервер на базе WireGuard, настроить раздачу интернета и создать конфигурационный файл (или QR-код) для подключения клиента.
Часть 1. Настройка сервера1. Установка пакетовПодключитесь к серверу по SSH и установите WireGuard, а также утилиту [tt]qrencode[/tt] (понадобится для генерации QR-кодов для смартфонов):
apt update && apt install wireguard qrencode -y2. Включение пересылки пакетов (IP Forwarding)Чтобы сервер мог выпускать VPN-клиентов в интернет, включите форвардинг трафика в ядре системы:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p3. Определение имени внешнего сетевого интерфейсаУзнайте, через какой интерфейс сервер выходит в сеть (обычно это [tt]eth0[/tt] или [tt]ens3[/tt]):
ip route get 8.8.8.8В выводе найдите слово сразу после [tt]dev[/tt] (например, [tt]dev eth0[/tt]). Оно понадобится для правил фаервола.
4. Генерация ключей сервераПерейдите в рабочую директорию и создайте пару ключей для сервера:
cd /etc/wireguard/
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key5. Создание конфигурации сервераПосмотрите сгенерированный приватный ключ сервера:
cat /etc/wireguard/server_private.keyСоздайте и откройте файл конфигурации [tt]/etc/wireguard/wg0.conf[/tt]:
nano /etc/wireguard/wg0.confВставьте в него следующий шаблон (замените [tt]ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА[/tt] на ключ из предыдущего шага, а [tt]eth0[/tt] — на имя вашего сетевого интерфейса, если оно отличается):
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА
PostUp = iptables -I INPUT -p udp --dport 51820 -j ACCEPT
PostUp = iptables -I FORWARD -i eth0 -o %i -j ACCEPT
PostUp = iptables -I FORWARD -i %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D INPUT -p udp --dport 51820 -j ACCEPT
PostDown = iptables -D FORWARD -i eth0 -o %i -j ACCEPT
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEПримечание: вместо стандартного порта [tt]51820[/tt] можно указать любой свободный UDP-порт (например, [tt]443[/tt]).Сохраните файл (
Ctrl + O ->
Enter) и закройте редактор (
Ctrl + X).
6. Запуск службы WireGuardДобавьте интерфейс в автозагрузку и запустите его:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0Проверить статус работы можно командой:
wg show
Часть 2. Создание и подключение клиента1. Генерация ключей клиентаНа сервере создайте пару ключей для первого устройства (например, [tt]client1[/tt]):
cd /etc/wireguard/
wg genkey | tee client1_private.key | wg pubkey > client1_public.key2. Регистрация клиента на сервереПосмотрите
публичный ключ клиента:
cat /etc/wireguard/client1_public.keyОткройте конфиг сервера ([tt]nano /etc/wireguard/wg0.conf[/tt]) и добавьте в самый конец блок [tt][Peer][/tt]:
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА
AllowedIPs = 10.66.66.2/32Для каждого следующего устройства увеличивайте последнюю цифру IP-адреса ([tt]10.66.66.3/32[/tt], [tt]10.66.66.4/32[/tt] и т.д.).Перезапустите службу на сервере, чтобы изменения вступили в силу:
systemctl restart wg-quick@wg03. Формирование клиентского файла конфигурацииДля заполнения клиентского конфига вам понадобятся три значения:
- Приватный ключ клиента: [tt]cat /etc/wireguard/client1_private.key[/tt]
- Публичный ключ сервера: [tt]cat /etc/wireguard/server_public.key[/tt]
- Внешний IP-адрес сервера: [tt]curl -4 ifconfig.me[/tt]
Создайте на сервере файл [tt]/etc/wireguard/client1.conf[/tt] ([tt]nano /etc/wireguard/client1.conf[/tt]) и вставьте в него:
[Interface]
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА
Address = 10.66.66.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = ВНЕШНИЙ_IP_СЕРВЕРА:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 254. Перенос настроек на устройство- Для смартфона (iOS / Android): выведите QR-код прямо в терминал сервера и отсканируйте его через официальное приложение WireGuard:
qrencode -t ansiutf8 < /etc/wireguard/client1.conf - Для ПК (Windows / macOS / Linux): скопируйте содержимое файла [tt]client1.conf[/tt], сохраните на компьютере с расширением [tt].conf[/tt] и импортируйте в клиент WireGuard.
Извините, вам запрещён просмотр содержимого спойлеров.
Извините, вам запрещён просмотр содержимого спойлеров.