Привет, друзья! Сегодня мы разберем одну из самых востребованных задач для системного администратора и продвинутого пользователя — настройку безопасного удаленного доступа.
Мы поднимем VPN-сервер на Windows Server 2022 с помощью технологии WireGuard. Это современный, быстрый и легкий протокол. Но главная фишка нашей инструкции в том, что мы настроим его так, чтобы с клиента (Windows 11) был доступен не только сам сервер, но и вся локальная сеть за ним (принтеры, файловые шары, другие компьютеры).
Что у нас в плане:
Сервер: Windows Server 2022 (Local LAN: 192.168.0.0/24)
Клиент: Windows 11
Сеть WireGuard: 10.10.20.0/24
Уровень сложности: Для новичков (пошагово)
Шаг 0: Подготовка и теория
- Прежде чем начать, убедитесь в следующем:
- У вас есть права Администратора на сервере и клиенте.
- У вашего Windows Server есть статический IP-адрес в локальной сети (например, 192.168.0.10). Если адрес динамический, после перезагрузки роутера вы потеряете доступ.
- Порт 51820 (UDP) открыт на внешнем фаерволе/роутере и проброшен на IP-адрес вашего сервера.
Схема адресации, которую мы будем использовать:
- Сервер (в локальной сети): 192.168.0.10
- Сервер (внутри WireGuard): 10.10.20.1
- Клиент (внутри WireGuard): 10.10.20.2
- Локальная сеть за сервером: 192.168.0.0/24 (маска 255.255.255.0)
Шаг 1: Установка WireGuard
Процесс установки одинаков для сервера и клиента.
- Перейдите на официальный сайт: wireguard.com/install/
- Скачайте установщик для Windows.
- Запустите .exe файл и нажимайте "Next", соглашаясь с лицензией.
- После установки перезагрузите компьютеры (это важно для установки сетевых драйверов).
Шаг 2: Настройка Сервера (Windows Server 2022)
Нам нужно создать туннель, сгенерировать ключи и настроить маршрутизацию.
2.1. Создание туннеля
- Запустите WireGuard от имени Администратора.
- Нажмите "Add Tunnel" -> "Add empty tunnel".
- Назовите его, например, WG_Server.
- В открывшемся окне конфигурации вы увидите сгенерированные ключи.
- PrivateKey (Приватный ключ) — уже есть.
- PublicKey (Публичный ключ) — нажмите кнопку "Generate" справа от поля, если его нет, или просто скопируйте тот, что появился. Сохраните его, он понадобится клиенту.
2.2. Конфигурация сервера
Заполните секцию [Interface] и [Peer] следующим образом (замените данные на свои):
plaintext[Interface] # Адрес сервера внутри VPN сети Address = 10.10.20.1/24 # Порт, который будет слушать сервер (стандартный 51820) ListenPort = 51820 # Приватный ключ сервера (скопируйте из поля PrivateKey выше) PrivateKey = ВАШ_ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА [Peer] # Публичный ключ клиента (его мы получим на шаге 3) PublicKey = ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА # Разрешаем трафик только с этого IP клиента AllowedIPs = 10.10.20.2/32
Нажмите "Save" и сохраните файл конфигурации в удобном месте (например, C:\WireGuard\WG_Server.conf).
Нажмите кнопку "Activate" под названием туннеля. Статус должен стать Active.
2.3. Включаем маршрутизацию (IP Forwarding)
Чтобы сервер пропускал трафик из VPN в локальную сеть, нужно включить пересылку пакетов.
- Нажмите Win + R, введите regedit.
- Перейдите по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- Найдите параметр IPEnableRouter.
- Измените его значение с 0 на 1.
- Перезагрузите сервер. Без этого шага доступ к локальной сети работать не будет.
2.4. Настраиваем NAT (Network Address Translation)
Это критически важный шаг. Когда клиент (10.10.20.2) стучится к компьютеру в локальной сети (192.168.0.50), тот видит запрос от незнакомого адреса 10.10.20.2 и не знает, как ответить. NAT подменит адрес клиента на адрес сервера (192.168.0.10), и ответ вернется корректно.
Запустите PowerShell от имени Администратора и выполните команду:
plaintextNew-NetNat -Name "WG_NAT" -InternalIPInterfaceAddressPrefix 10.10.20.0/24
Если вы получите ошибку, что модуль не найден, убедитесь, что у вас установлены компоненты удаленного доступа, но на Server 2022 это работает из коробки.
2.5. Брандмауэр (Firewall)
WireGuard обычно сам создает правила, но проверим порт.
- Откройте Windows Defender Firewall with Advanced Security.
- Inbound Rules (Правила для входящих подключений).
- Убедитесь, что есть правило, разрешающее UDP порт 51820. Если нет — создайте новое правило (Port -> UDP -> 51820 -> Allow).
Шаг 3: Настройка Клиента (Windows 11)
Теперь настроим ноутбук или ПК, с которого будем подключаться.
3.1. Создание туннеля
- Запустите WireGuard.
- Нажмите "Add Tunnel" -> "Add empty tunnel".
- Назовите его WG_Client.
- Скопируйте PublicKey клиента (он понадобится серверу).
3.2. Конфигурация клиента
Заполните конфигурацию:
plaintext[Interface] # Адрес клиента внутри VPN сети Address = 10.10.20.2/24 # Приватный ключ клиента PrivateKey = ВАШ_ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА # (Опционально) DNS, чтобы работали имена компьютеров. Можно указать 8.8.8.8 или IP вашего локального DNS сервера DNS = 192.168.0.10 [Peer] # Публичный ключ сервера (берем из Шага 2.1) PublicKey = ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА # Адрес сервера в интернете (Внешний IP или домен) Endpoint = ваш.внешний.ip:51820 # ВАЖНО: Сюда пишем подсети, которые хотим видеть через VPN. # 10.10.20.0/24 - сама сеть туннеля # 192.168.0.0/24 - локальная сеть сервера, к которой нужен доступ AllowedIPs = 10.10.20.0/24, 192.168.0.0/24 # KeepAlive - чтобы соединение не рвалось в простое PersistentKeepalive = 25
Нажмите "Save", затем "Activate".
Шаг 4: Возвращаемся на Сервер (Финализация)
Мы взяли Public Key клиента в Шаге 3.1. Теперь нужно добавить клиента в конфиг сервера.
- Откройте конфиг сервера (WG_Server.conf) через интерфейс WireGuard (кнопка Edit).
- В секцию [Peer] вставьте PublicKey клиента.
- Убедитесь, что AllowedIPs = 10.10.20.2/32.
- Сохраните. Туннель должен переподключиться автоматически.
Шаг 5: Проверка работы
- Проверка туннеля: В интерфейсе WireGuard на сервере и клиенте вы должны видеть счетчики Transmit/Receive (отправлено/получено), которые растут.
- Пинг сервера: С клиента (Win 11) откройте командную строку и введите: ping 10.10.20.1 (должен отвечать).
- Пинг локальной сети: С клиента введите: ping 192.168.0.10 (IP сервера в локалке) или ping 192.168.0.50 (любой другой ПК в сети).
- Доступ к ресурсам: Попробуйте открыть общую папку: \\192.168.0.50\Share.
Если пинг идет до 10.10.20.1, но не идет до 192.168.0.x — проверьте NAT (Шаг 2.4) и Брандмауэр Windows на сервере (он может блокировать входящие из интерфейса WireGuard в локальную сеть).
Частые проблемы и решения
- Ошибка "Route addition failed": Запустите WireGuard от имени Администратора.
- Нет доступа к локальной сети: Проверьте, включен ли IPEnableRouter в реестре и был ли перезагружен сервер.
- Проверьте команду Get-NetNat в PowerShell на сервере. Должен быть создан NAT.
- В AllowedIPs клиента обязательно должна быть прописана подсеть 192.168.0.0/24.
- Соединение рвется: Убедитесь, что на роутере проброшен именно UDP порт 51820, а не TCP. В конфиге клиента добавьте PersistentKeepalive = 25.
Заключение
Поздравляю! Вы подняли собственный, безопасный и быстрый VPN-шлюз. Теперь вы можете работать с офисными ресурсами из дома, кафе или другой страны, как будто находитесь за своим рабочим столом.
WireGuard хорош тем, что потребляет минимум ресурсов сервера и работает стабильнее классических решений вроде OpenVPN.
