Настройка WireGuard VPN в pfSense - полное руководство

WireGuard - современный VPN-протокол, реализованный как модуль ядра и обеспечивающий производительность, сопоставимую с аппаратно-ускоренным IPsec, при значительно меньшей сложности конфигурации. Протокол использует фиксированный набор криптографических примитивов (Curve25519, ChaCha20, Poly1305, BLAKE2s), что исключает необходимость согласования параметров шифрования и устраняет целый класс ошибок, связанных с выбором слабых алгоритмов.

В pfSense начиная с версии 2.7 WireGuard доступен как встроенный пакет. В данном руководстве описан полный цикл настройки: от создания туннеля до подключения клиентов на различных платформах и организации site-to-site соединения между двумя площадками.

Преимущества WireGuard

WireGuard проектировался с акцентом на простоту и производительность. Основные преимущества протокола:

  • Минимальная кодовая база - около 4000 строк кода ядра, что существенно упрощает аудит безопасности по сравнению с IPsec (~400 000 строк) или OpenVPN (~100 000 строк).
  • Высокая производительность - работа на уровне ядра исключает переключение контекста между пространствами пользователя и ядра, что даёт пропускную способность до 1 Гбит/с и выше на современном оборудовании.
  • Быстрое установление соединения - обмен ключами занимает один round-trip (1-RTT), в то время как IKEv2 требует минимум два обмена.
  • Современная криптография - фиксированный набор алгоритмов исключает downgrade-атаки и ошибки конфигурации.
  • Встроенный роуминг - протокол автоматически обновляет endpoint при смене IP-адреса клиента, что важно для мобильных устройств.
  • Минимальная поверхность атаки - WireGuard не отвечает на пакеты от неавторизованных источников (stealth-режим), что делает сервер невидимым для сканеров портов.

Ограничения

Перед выбором WireGuard в качестве VPN-протокола необходимо учитывать его ограничения.

Отсутствие аутентификации по имени пользователя и паролю

WireGuard не поддерживает аутентификацию по логину/паролю. Идентификация пиров выполняется исключительно по криптографическим ключам. Для организаций, требующих централизованного управления учётными записями через LDAP или RADIUS, это может быть существенным ограничением. В таких случаях следует рассматривать OpenVPN с аутентификацией через RADIUS .

Статическое назначение адресов

WireGuard не имеет встроенного механизма динамического назначения IP-адресов (аналога DHCP). Каждому пиру необходимо вручную назначить адрес из выделенной подсети туннеля. При большом количестве клиентов это требует ведения учёта назначенных адресов.

Отсутствие управления сессиями

Протокол не имеет концепции сессий или соединений. Нет возможности отследить, подключён ли клиент в данный момент, за исключением проверки времени последнего handshake на странице Status > WireGuard. Принудительное отключение клиента возможно только путём удаления его публичного ключа из конфигурации пира.

Ограниченное логирование

WireGuard выполняет минимальное логирование на уровне ядра. Информация о попытках подключения, ошибках аутентификации и деталях трафика ограничена. Для средств с повышенными требованиями к аудиту (PCI DSS, HIPAA) это может потребовать дополнительных мер мониторинга.

Привязка к порту

WireGuard принимает трафик на указанном UDP-порту на всех интерфейсах файрвола, а не только на выбранном. Это необходимо учитывать при планировании правил фильтрации.

Предварительные требования

Перед началом настройки необходимо убедиться в выполнении следующих условий:

  1. pfSense версии 2.7.0 или новее - WireGuard доступен как встроенный пакет. Для проверки версии: System > General Setup.
  2. Установленный пакет WireGuard - установка выполняется через System > Package Manager > Available Packages. Следует найти WireGuard и нажать Install.
  3. Статический публичный IP-адрес или настроенный Dynamic DNS на WAN-интерфейсе pfSense (для сценария удалённого доступа).
  4. Выделенная подсеть для туннеля - рекомендуется использовать адресацию из диапазона RFC 1918, не пересекающуюся с существующими сетями. Пример: 10.10.10.0/24.
  5. Открытый UDP-порт на вышестоящем оборудовании (если pfSense расположен за NAT).

Создание туннеля

Туннель WireGuard создаётся в разделе VPN > WireGuard > Tunnels.

  1. Нажать Add Tunnel.
  2. Заполнить параметры туннеля:
ПолеЗначениеПояснение
EnableУстановленАктивация туннеля
DescriptionWG-RemoteAccessПроизвольное описание назначения туннеля
Listen Port51820Стандартный порт WireGuard (допустимо изменить)
Interface KeysGenerateГенерация ключевой пары (приватный + публичный)
Interface Addresses10.10.10.1/24Адрес pfSense внутри туннеля
  1. Нажать Save Tunnel.

Настройка туннеля WireGuard

Рис. 1. Создание туннеля WireGuard в веб-интерфейсе pfSense

После сохранения система автоматически сгенерирует ключевую пару. Публичный ключ (Public Key) отобразится на странице туннеля - его необходимо скопировать для последующей передачи клиентам.

Внимание:

Приватный ключ (Private Key) никогда не должен передаваться третьим лицам. Компрометация приватного ключа требует немедленной перегенерации ключевой пары и перенастройки всех пиров.

Выбор порта

Стандартный порт WireGuard - 51820/UDP. При необходимости использования нескольких туннелей каждому следует назначить уникальный порт. Если WireGuard должен работать из сетей с жёсткими ограничениями исходящего трафика, допустимо использовать порт 443/UDP, однако это может конфликтовать с HTTPS-трафиком при наличии HAProxy или подобных сервисов.

Адресация туннеля

Для адресации внутри туннеля рекомендуется выделить отдельную подсеть, не пересекающуюся с другими сетями:

СценарийРекомендуемая подсетьМаска
Удалённый доступ (до 254 клиентов)10.10.10.0/24
Site-to-site (два узла)10.10.10.0/30
Несколько туннелей10.10.10.0, 10.10.20.0, …/24

Добавление пиров

Пиры добавляются в разделе VPN > WireGuard > Peers. Каждый клиент или удалённый узел является отдельным пиром.

  1. Нажать Add Peer.
  2. Заполнить параметры:
ПолеЗначениеПояснение
EnableУстановленАктивация пира
TunnelWG-RemoteAccessВыбор ранее созданного туннеля
DescriptionLaptop-AdminОписание клиента
Dynamic EndpointУстановленДля клиентов с динамическим IP (remote access)
Public Key(ключ клиента)Публичный ключ, сгенерированный на стороне клиента
Pre-Shared Key(опционально)Дополнительный уровень защиты (пост-квантовая безопасность)
Allowed IPs10.10.10.2/32Адрес клиента внутри туннеля
Keep Alive25Интервал keepalive в секундах (для клиентов за NAT)
  1. Нажать Save Peer.

Настройка пира WireGuard

Рис. 2. Добавление пира WireGuard в pfSense

Обмен ключами

Обмен публичными ключами между сервером и клиентом выполняется вручную по защищённому каналу:

  1. Сервер (pfSense) генерирует ключевую пару при создании туннеля. Публичный ключ сервера передаётся клиенту.
  2. Клиент генерирует собственную ключевую пару (средствами клиентского приложения WireGuard). Публичный ключ клиента вводится в поле Public Key при добавлении пира на pfSense.

Внимание:

Передача публичных ключей должна осуществляться по защищённому каналу: лично, через зашифрованный мессенджер или корпоративную систему управления секретами. Публичные ключи сами по себе не являются секретом, но их подмена (MITM) позволит атакующему выдать себя за легитимный узел.

Поле Allowed IPs

Поле Allowed IPs определяет, какие IP-адреса допускаются от данного пира и на какие адреса маршрутизируется трафик через туннель. Корректная настройка этого поля критически важна:

СценарийЗначение Allowed IPsОписание
Удалённый доступ (один клиент)10.10.10.2/32Только адрес клиента в туннеле
Site-to-site10.10.10.2/32, 192.168.2.0/24Адрес пира + удалённая подсеть
Full tunnel (весь трафик через VPN)0.0.0.0/0Весь IPv4-трафик клиента
Full tunnel (IPv4 + IPv6)0.0.0.0/0, ::/0Весь трафик клиента

Pre-Shared Key (PSK)

Использование PSK добавляет симметричный уровень шифрования поверх Curve25519. Это обеспечивает дополнительную защиту в случае компрометации асимметричного алгоритма (пост-квантовая стойкость). PSK генерируется командой:

wg genpsk

Сгенерированный ключ вводится в поле Pre-Shared Key как на стороне pfSense (в настройках пира), так и в конфигурации клиента.

Назначение интерфейса

После создания туннеля необходимо назначить ему интерфейс в pfSense. Без назначения интерфейса невозможно создать специфичные правила файрвола для трафика внутри туннеля.

  1. Перейти в Interfaces > Assignments.
  2. В выпадающем списке Available network ports выбрать интерфейс tun_wgN (где N - номер туннеля).
  3. Нажать Add.
  4. Нажать на имя назначенного интерфейса (например, OPT1) для перехода к его настройке.
  5. Заполнить параметры:
ПолеЗначениеПояснение
EnableУстановленАктивация интерфейса
DescriptionWIREGUARDИмя интерфейса (будет отображаться в правилах файрвола)
IPv4 Configuration TypeNoneАдресация уже настроена на уровне туннеля
IPv6 Configuration TypeNoneЕсли IPv6 не используется
  1. Нажать Save, затем Apply Changes.

Внимание:

Параметр IPv4 Configuration Type следует оставить в значении None, поскольку IP-адрес уже назначен на уровне туннеля WireGuard. Назначение адреса одновременно на уровне интерфейса и туннеля может привести к конфликтам маршрутизации.

Правила файрвола

Для корректной работы WireGuard необходимо создать два набора правил: на интерфейсе WAN (для приёма входящих подключений) и на интерфейсе WireGuard (для контроля трафика внутри туннеля).

Правило на WAN

Разрешает входящие UDP-подключения на порт WireGuard.

Перейти в Firewall > Rules > WAN и нажать Add.

ПолеЗначение
ActionPass
InterfaceWAN
Address FamilyIPv4
ProtocolUDP
SourceAny
DestinationWAN Address
Destination Port Range51820 (или выбранный порт туннеля)
DescriptionAllow WireGuard VPN

Правила на интерфейсе WireGuard

Контролируют, какой трафик разрешён клиентам VPN внутри туннеля.

Перейти в Firewall > Rules > WIREGUARD (имя назначенного интерфейса) и нажать Add.

Вариант 1 - разрешить весь трафик (для тестирования):

ПолеЗначение
ActionPass
InterfaceWIREGUARD
Address FamilyIPv4
ProtocolAny
SourceWIREGUARD net
DestinationAny
DescriptionAllow all WireGuard traffic

Вариант 2 - разрешить только доступ к LAN (рекомендуется для производственной среды):

ПолеЗначение
ActionPass
InterfaceWIREGUARD
Address FamilyIPv4
ProtocolAny
SourceWIREGUARD net
DestinationLAN net
DescriptionAllow WireGuard to LAN

Дополнительно можно добавить правило, разрешающее доступ к DNS-серверу pfSense:

ПолеЗначение
ActionPass
InterfaceWIREGUARD
ProtocolTCP/UDP
SourceWIREGUARD net
DestinationWIREGUARD Address
Destination Port Range53
DescriptionAllow DNS from WireGuard

Подробнее о настройке правил фильтрации: Правила файрвола в pfSense .

Маршрутизация

Стандартная маршрутизация (split tunnel)

По умолчанию WireGuard в режиме split tunnel маршрутизирует через VPN только трафик к подсетям, указанным в Allowed IPs на стороне клиента. Весь остальной трафик клиента идёт через его обычное интернет-соединение.

Для корректной маршрутизации между подсетями туннеля и локальными сетями pfSense дополнительных маршрутов обычно не требуется, поскольку pfSense автоматически добавляет маршруты на основании адресации интерфейса.

Full tunnel (весь трафик через VPN)

Для направления всего трафика клиента через VPN необходимо:

  1. На стороне клиента: в конфигурации WireGuard установить AllowedIPs = 0.0.0.0/0, ::/0.
  2. На pfSense: убедиться, что правила файрвола на интерфейсе WireGuard разрешают трафик в Интернет (Destination: Any).
  3. NAT: настроить Outbound NAT для подсети WireGuard. Перейти в Firewall > NAT > Outbound, переключиться в режим Hybrid или Manual и добавить правило:
ПолеЗначение
InterfaceWAN
Address FamilyIPv4
ProtocolAny
Source10.10.10.0/24 (подсеть туннеля)
DestinationAny
Translation AddressWAN Address

Статические маршруты

При организации site-to-site туннеля может потребоваться добавление статических маршрутов, если pfSense не является шлюзом по умолчанию для подсети за WireGuard.

Перейти в System > Routing > Static Routes и добавить маршрут:

ПолеЗначение
Destination network192.168.2.0/24 (удалённая подсеть)
GatewayШлюз WireGuard интерфейса

Внимание:

При настройке маршрутизации через WireGuard необходимо убедиться, что значение Default gateway в разделе System > Routing не установлено в Automatic. В противном случае pfSense может назначить WireGuard-интерфейс шлюзом по умолчанию, что приведёт к потере доступа к Интернету.

Подключение клиентов

Для подключения к WireGuard-серверу на pfSense клиенту необходимы:

  • Публичный ключ сервера (pfSense)
  • Публичный IP-адрес или доменное имя сервера
  • Порт WireGuard на сервере
  • Назначенный IP-адрес клиента внутри туннеля
  • Pre-Shared Key (если используется)

Генерация конфигурации клиента

Конфигурация клиента WireGuard имеет унифицированный формат для всех платформ:

[Interface]
PrivateKey = <private_key_client>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <public_key_pfsense>
PresharedKey = <psk_if_used>
AllowedIPs = 10.10.10.0/24, 192.168.1.0/24
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25

Параметры конфигурации:

ПараметрОписание
PrivateKeyПриватный ключ клиента (сгенерированный на клиенте)
AddressIP-адрес клиента в туннеле (должен совпадать с Allowed IPs на сервере)
DNSDNS-сервер для использования при активном туннеле
PublicKeyПубличный ключ сервера (pfSense)
PresharedKeyPre-Shared Key (опционально)
AllowedIPsПодсети, маршрутизируемые через туннель
EndpointАдрес и порт сервера WireGuard
PersistentKeepaliveИнтервал keepalive в секундах (обязателен за NAT)

Windows

  1. Загрузить клиент WireGuard с официального сайта: wireguard.com/install .
  2. Установить приложение.
  3. Нажать Add Tunnel > Add empty tunnel или Import tunnel(s) from file.
  4. При ручном создании - вставить конфигурацию в текстовое поле. Приватный ключ генерируется автоматически при создании пустого туннеля.
  5. Нажать Save, затем Activate.

При создании пустого туннеля приложение автоматически сгенерирует ключевую пару и отобразит публичный ключ - его необходимо скопировать и добавить в настройки пира на pfSense.

macOS

  1. Установить WireGuard из Mac App Store или через Homebrew:
brew install wireguard-tools
  1. Графический клиент (App Store): импортировать конфигурационный файл .conf или создать туннель вручную через интерфейс приложения.

  2. Командная строка: создать конфигурационный файл и активировать туннель:

# Generate key pair
wg genkey | tee privatekey | wg pubkey > publickey

# Create configuration
sudo mkdir -p /etc/wireguard
sudo nano /etc/wireguard/wg0.conf

# Activate tunnel
sudo wg-quick up wg0

# Check status
sudo wg show

Linux

  1. Установить WireGuard:
# Debian / Ubuntu
sudo apt install wireguard

# CentOS / RHEL 8+
sudo dnf install wireguard-tools

# Fedora
sudo dnf install wireguard-tools
  1. Сгенерировать ключевую пару:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
chmod 600 /etc/wireguard/privatekey
  1. Создать конфигурационный файл /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = <content_of_privatekey>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <public_key_pfsense>
PresharedKey = <psk_if_used>
AllowedIPs = 10.10.10.0/24, 192.168.1.0/24
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
  1. Управление туннелем:
# Activate
sudo wg-quick up wg0

# Deactivate
sudo wg-quick down wg0

# Enable autostart
sudo systemctl enable wg-quick@wg0

# Check status
sudo wg show

iOS

  1. Установить приложение WireGuard из App Store.
  2. Нажать + и выбрать один из вариантов:
    • Create from QR code - отсканировать QR-код с конфигурацией (предпочтительный способ).
    • Create from file or archive - импортировать файл .conf.
    • Create from scratch - ввести параметры вручную.
  3. Активировать туннель переключателем.

Android

  1. Установить приложение WireGuard из Google Play.
  2. Нажать + и выбрать:
    • Scan from QR code - отсканировать QR-код.
    • Import from file or archive - импортировать файл .conf.
    • Create from scratch - ручной ввод параметров.
  3. Активировать туннель.

Генерация QR-кода

Для мобильных клиентов удобнее всего использовать QR-код. Генерация выполняется на Linux или macOS:

# Install qrencode
sudo apt install qrencode    # Debian/Ubuntu
brew install qrencode         # macOS

# Generate QR code from configuration file
qrencode -t ansiutf8 < /path/to/client.conf

# Save QR code as PNG
qrencode -t png -o client-qr.png < /path/to/client.conf

Внимание:

QR-код содержит приватный ключ клиента. После сканирования кода клиентом файл PNG следует удалить. Не следует передавать QR-код через незащищённые каналы (email, мессенджеры без end-to-end шифрования).

Site-to-Site

WireGuard позволяет организовать туннель между двумя площадками с pfSense для объединения удалённых сетей. В отличие от IPsec, настройка site-to-site на WireGuard значительно проще и не требует согласования множества криптографических параметров.

Схема сети

Площадка A                          Площадка B
┌─────────────────┐                ┌─────────────────┐
│ LAN: 10.1.0.0/24│                │ LAN: 10.2.0.0/24│
│ WG:  10.10.10.1 │────WireGuard───│ WG:  10.10.10.2 │
│ WAN: 203.0.113.1│                │ WAN: 198.51.100.1│
└─────────────────┘                └─────────────────┘

Настройка площадки A

  1. Создать туннель (VPN > WireGuard > Tunnels):

    • Listen Port: 51820
    • Interface Address: 10.10.10.1/30
    • Сгенерировать ключевую пару.
  2. Добавить пир (VPN > WireGuard > Peers):

ПолеЗначение
TunnelТуннель площадки A
Public KeyПубличный ключ площадки B
Endpoint198.51.100.1
Endpoint Port51820
Allowed IPs10.10.10.2/32, 10.2.0.0/24
Keep Alive25
  1. Назначить интерфейс и создать правила файрвола (аналогично описанному выше).

Настройка площадки B

Конфигурация площадки B зеркальна:

  1. Туннель: Listen Port 51820, Interface Address 10.10.10.2/30.
  2. Пир: Public Key площадки A, Endpoint 203.0.113.1:51820, Allowed IPs 10.10.10.1/32, 10.1.0.0/24.
  3. Интерфейс и файрвол: аналогичны площадке A.

Маршрутизация между площадками

На каждой площадке необходимо добавить статический маршрут к удалённой подсети:

Площадка A (System > Routing > Static Routes):

ПолеЗначение
Destination10.2.0.0/24
GatewayШлюз WireGuard

Площадка B:

ПолеЗначение
Destination10.1.0.0/24
GatewayШлюз WireGuard

Если pfSense является шлюзом по умолчанию для всех устройств в LAN, маршруты на клиентских устройствах добавлять не требуется. В противном случае на устройствах в LAN необходимо добавить маршрут к удалённой подсети через pfSense.

Проверка связности

# With the site A check the connectivity with site B LAN
ping 10.2.0.1

# Check the WireGuard tunnel status
# On pfSense: Status > WireGuard
# Check latest handshake timestamp and transferred data

Сравнение с IPsec и OpenVPN

При выборе VPN-протокола для pfSense следует учитывать характеристики каждого из них.

ХарактеристикаWireGuardIPsec (IKEv2)OpenVPN
Работа на уровнеЯдроЯдроПространство пользователя
ПроизводительностьВысокая (1+ Гбит/с)Высокая (с AES-NI)Средняя (300-500 Мбит/с)
Время установления1-RTT (~100 мс)4 сообщения IKEv2TLS handshake (~500 мс)
Кодовая база~4 000 строк~400 000 строк~100 000 строк
АутентификацияКлючиPSK / Сертификаты / EAPСертификаты / LDAP / RADIUS
Динамические IP клиентовНетДа (Mode Config)Да (встроенный DHCP)
NAT traversalВстроенныйNAT-T (UDP 4500)TCP 443 (обход ограничений)
ЛогированиеМинимальноеПодробноеПодробное
СовместимостьLinux, Windows, macOS, iOS, AndroidВсе платформы, сетевое оборудованиеВсе платформы
Управление сессиямиНетДаДа
Поддержка в pfSenseПакет (с 2.7)ВстроеннаяВстроенная

Когда выбрать WireGuard

  • Требуется максимальная производительность при минимальном overhead.
  • Небольшое количество клиентов (до 50) с возможностью ручного управления ключами.
  • Не требуется аутентификация по логину/паролю или интеграция с LDAP/RADIUS.
  • Важна простота настройки и аудируемость конфигурации.

Когда выбрать IPsec

  • Интеграция с оборудованием третьих сторон (Cisco, FortiGate, MikroTik).
  • Требуется совместимость с облачными VPN-шлюзами (AWS VPN, Azure VPN Gateway).
  • Необходима поддержка нескольких Phase 2 для разных подсетей.
  • Подробнее: IPsec Site-to-Site VPN .

Когда выбрать OpenVPN

  • Требуется аутентификация через LDAP/RADIUS.
  • Клиенты подключаются из сетей с жёсткими ограничениями (доступен только TCP 443).
  • Необходимо детальное логирование и управление сессиями.
  • Подробнее: OpenVPN сервер удалённого доступа .

Устранение неполадок

Handshake не устанавливается

Наиболее распространённая проблема - отсутствие завершённого handshake. Проверить состояние можно на странице Status > WireGuard.

Статус WireGuard

Рис. 3. Страница Status > WireGuard в pfSense

Возможные причины:

СимптомПричинаРешение
Latest handshake отсутствуетПакеты не достигают pfSenseПроверить правило файрвола на WAN, убедиться в корректности порта
Latest handshake отсутствуетНесовпадение ключейПроверить, что публичный ключ сервера корректно указан в конфигурации клиента и наоборот
Latest handshake отсутствуетPSK не совпадаетПроверить идентичность Pre-Shared Key на обеих сторонах
Handshake есть, нет трафикаНекорректный Allowed IPsПроверить, что Allowed IPs на сервере содержит адрес клиента, а на клиенте - целевые подсети
Handshake есть, нет трафикаОтсутствуют правила на интерфейсе WireGuardДобавить правила на вкладке WIREGUARD

Проблемы с MTU

WireGuard использует значение MTU по умолчанию 1420 байт (при стандартном MTU 1500 на физическом интерфейсе). Overhead WireGuard составляет 80 байт для IPv4 (60 байт WireGuard + 20 байт внешний IPv4-заголовок) и 80 байт для IPv6.

Признаки проблем с MTU:

  • Ping работает, но HTTP-соединения зависают.
  • Передача крупных файлов обрывается.
  • SSH работает, но SCP/SFTP зависает на больших файлах.

Решение:

  1. На клиенте явно указать MTU в секции [Interface]:
[Interface]
PrivateKey = ...
Address = 10.10.10.2/32
MTU = 1420
  1. При наличии дополнительной инкапсуляции (PPPoE, VLAN, двойной NAT) уменьшить MTU:
СценарийРекомендуемый MTU
Стандартный (Ethernet 1500)1420
PPPoE (MTU 1492)1412
Двойной NAT / CGNAT1400
За другим VPN-туннелем1380

NAT traversal

WireGuard нативно поддерживает работу через NAT. Для корректной работы клиентов за NAT необходимо:

  1. Установить PersistentKeepalive = 25 в конфигурации клиента. Это заставляет клиента отправлять keepalive-пакеты каждые 25 секунд, поддерживая NAT-трансляцию активной.
  2. На стороне pfSense в настройках пира указать Keep Alive: 25.

Без keepalive NAT-трансляция истекает (обычно через 30-120 секунд), и сервер теряет возможность отправлять пакеты клиенту.

Ошибки в Allowed IPs

Некорректная настройка Allowed IPs - вторая по распространённости причина проблем:

  • На сервере (pfSense): Allowed IPs для каждого пира должны быть уникальными. Два пира не могут иметь пересекающиеся Allowed IPs. Если два пира заявляют 10.10.10.2/32, трафик будет маршрутизироваться к последнему добавленному пиру.
  • На клиенте: Allowed IPs определяют, какой трафик направляется в туннель. Значение 0.0.0.0/0 направляет весь трафик, 10.10.10.0/24, 192.168.1.0/24 - только трафик к указанным подсетям (split tunnel).

Диагностические команды

При наличии доступа к командной строке pfSense (SSH или консоль):

# Check WireGuard interface status
wg show

# Check WireGuard interface details
wg show wg0

# Check routing table
netstat -rn | grep wg

# Check firewall logs for blocked packets
clog /var/log/filter.log | grep 51820

# Check WireGuard kernel module
kldstat | grep if_wg

Проверка доступности порта извне

Для проверки доступности порта WireGuard из внешней сети можно использовать утилиту nmap с другого хоста:

nmap -sU -p 51820 vpn.example.com

Статус open|filtered является нормальным для WireGuard, поскольку протокол не отвечает на неавторизованные пакеты.

Связанные разделы

Last updated on