Устранение неполадок pfSense - общее руководство

Устранение неполадок pfSense охватывает широкий спектр проблем: от потери связи с интернетом до деградации производительности и невозможности доступа к веб-интерфейсу. В этом руководстве систематизированы наиболее частые проблемы и методы их решения, начиная с общей методологии диагностики.

Перед началом диагностики определите, что именно не работает: полное отсутствие связи, частичные потери, проблемы только с определенными протоколами или только с определенных хостов. Точная формулировка симптома сокращает время поиска причины в несколько раз.

Методология диагностики

Послойная проверка

Придерживайтесь проверки снизу вверх по модели OSI:

  1. Физический уровень - проверьте индикаторы подключения на интерфейсах (Status - Interfaces), убедитесь, что кабели подключены и link установлен
  2. Канальный уровень - проверьте ARP-таблицу (Diagnostics - ARP Table), убедитесь, что MAC-адрес шлюза провайдера присутствует
  3. Сетевой уровень - проверьте IP-адресацию интерфейсов, таблицу маршрутизации (Diagnostics - Routes), выполните ping с самого pfSense (Diagnostics - Ping)
  4. Транспортный уровень - проверьте правила файрвола (Firewall - Rules), состояния соединений (Diagnostics - States), NAT-правила
  5. Прикладной уровень - проверьте DNS (Diagnostics - DNS Lookup), работу прокси-серверов, VPN-туннелей

Инструменты диагностики pfSense

ИнструментРасположениеНазначение
PingDiagnostics - PingПроверка доступности хоста
TracerouteDiagnostics - TracerouteОпределение маршрута до хоста
DNS LookupDiagnostics - DNS LookupПроверка разрешения имен
Packet CaptureDiagnostics - Packet CaptureЗахват трафика на интерфейсе
pfTopDiagnostics - pfTopАктивные соединения в реальном времени
StatesDiagnostics - StatesТаблица состояний файрвола
RoutesDiagnostics - RoutesТаблица маршрутизации
System LogsStatus - System LogsЖурналы всех служб

Проблемы с подключением

Нет доступа в интернет

Симптом: клиенты LAN не могут выйти в интернет, при этом pfSense доступен по LAN-адресу.

Порядок проверки:

  1. Проверьте WAN-интерфейс: Status - Interfaces. Убедитесь, что WAN получил IP-адрес, шлюз и DNS-серверы
  2. Проверьте шлюз: System - Routing - Gateways. Статус шлюза по умолчанию должен быть Online
  3. Ping с pfSense: Diagnostics - Ping, выберите WAN-интерфейс как источник, выполните ping до 8.8.8.8
  4. Проверьте NAT: Firewall - NAT - Outbound. Для стандартных конфигураций должен быть установлен режим Automatic outbound NAT
  5. Проверьте DNS: Diagnostics - DNS Lookup, разрешите google.com. Если не работает - проверьте System - General Setup - DNS Servers

Если ping с WAN-интерфейса pfSense до внешнего IP работает, а клиенты LAN не могут выйти в интернет, проблема в NAT или правилах файрвола на LAN-интерфейсе.

Нет доступа к внутренним хостам

Симптом: клиенты из одной подсети не могут подключиться к серверам в другой подсети через pfSense.

Проверка:

  1. Правила файрвола: проверьте правила на интерфейсе-источнике. pfSense применяет правила на входящем интерфейсе (ingress filtering)
  2. Маршрутизация: убедитесь, что pfSense знает маршрут до обеих подсетей (Diagnostics - Routes)
  3. Обратный маршрут: убедитесь, что хосты назначения имеют маршрут обратно через pfSense
  4. Asymmetric routing: если трафик приходит на pfSense через один интерфейс, а уходит через другой, проверьте настройку System - Advanced - Firewall & NAT - Bypass firewall rules for traffic on the same interface

Проблемы с DNS

DNS не разрешает имена

Симптом: ping по IP-адресу работает, но ping по имени хоста возвращает ошибку.

Порядок действий:

  1. Проверьте DNS-серверы pfSense: System - General Setup. Убедитесь, что DNS-серверы указаны и доступны
  2. Проверьте DNS Resolver: Services - DNS Resolver. Убедитесь, что служба запущена и привязана к нужным интерфейсам
  3. Проверьте доступность DNS-серверов: Diagnostics - Ping, выполните ping до каждого DNS-сервера
  4. Проверьте правила файрвола: убедитесь, что трафик DNS (порт 53 TCP/UDP) разрешен от pfSense к внешним DNS-серверам
  5. Очистите кэш DNS: Services - DNS Resolver, нажмите Clear DNS Resolver Cache

DNS Resolver и DNS Forwarder

pfSense предлагает два режима работы DNS:

  • DNS Resolver (Unbound) - рекурсивный резолвер, обращающийся напрямую к корневым серверам. Используется по умолчанию
  • DNS Forwarder (dnsmasq) - перенаправляет запросы вышестоящим серверам

Одновременная работа обоих сервисов вызывает конфликт портов. Убедитесь, что включен только один из них, или настройте их на разные порты.

Частая ошибка: если DNS Resolver работает в режиме forwarding (включена опция DNS Query Forwarding), убедитесь, что DNS-серверы в System - General Setup корректны и доступны. В режиме forwarding Unbound не выполняет рекурсию самостоятельно.

Проблемы производительности

Высокая загрузка CPU

Определите процесс, потребляющий ресурсы: Status - Dashboard (виджет System Information) или через консоль командой top -SH.

Типичные причины:

ПроцессПричинаРешение
filterlogБольшое количество заблокированных пакетовПроверьте источник избыточного трафика, добавьте правило Block без логирования
php-fpmИнтенсивное использование веб-интерфейсаПерезапустите PHP-FPM: Diagnostics - Command Prompt, команда pfSsh.php playback svc restart php-fpm
dpingerЧастый мониторинг шлюзовУвеличьте интервал проверки: System - Routing - Gateways - Edit
suricata/snortIDS/IPS обрабатывает весь трафикОграничьте проверяемые сети, отключите неиспользуемые наборы правил

Высокое потребление памяти

Проверьте текущее потребление: Status - Dashboard. Основные потребители:

  • Таблица состояний (state table) - при большом количестве активных соединений. Проверьте размер: Diagnostics - States Summary
  • Пакеты (Suricata, Snort, ntopng) - могут потреблять значительный объем памяти
  • DNS Resolver кэш - при обслуживании большого числа клиентов

Для снижения потребления памяти таблицей состояний уменьшите значение Firewall Maximum States в System - Advanced - Firewall & NAT.

Низкая пропускная способность

Если пропускная способность через pfSense ниже ожидаемой:

  1. Проверьте скорость интерфейсов: Status - Interfaces. Убедитесь, что скорость и дуплекс установлены корректно (Auto-negotiate в большинстве случаев)
  2. Отключите offloading: System - Advanced - Networking. Снимите флаги Hardware Checksum Offload и Hardware TCP Segmentation Offload - это особенно актуально для виртуальных сред
  3. Проверьте Traffic Shaper: если настроен шейпер трафика , убедитесь, что лимиты соответствуют пропускной способности канала
  4. Проверьте IDS/IPS: Suricata и Snort выполняют инспекцию каждого пакета, что может снижать пропускную способность на 30-50%
  5. Проверьте размер MTU: несовпадение MTU между интерфейсами вызывает фрагментацию и снижение производительности

Проблемы с веб-интерфейсом

Нет доступа к веб-интерфейсу

Симптом: браузер не может подключиться к https://192.168.1.1 (или другому LAN-адресу pfSense).

Проверка:

  1. Ping pfSense: если ping не работает, проблема на уровне сети (неверный IP, отключен интерфейс)
  2. Порт веб-интерфейса: по умолчанию 443 (HTTPS) или 80 (HTTP). Порт мог быть изменен в System - Advanced - Admin Access
  3. Протокол: проверьте, использует ли pfSense HTTP или HTTPS. Попробуйте оба варианта
  4. Правила на LAN: убедитесь, что anti-lockout rule не отключено (System - Advanced - Admin Access - Anti-lockout)
  5. Перезапуск веб-сервера: через консоль выполните pfSsh.php playback svc restart webConfigurator

Восстановление доступа через консоль

Если доступ к веб-интерфейсу полностью потерян:

  1. Подключитесь к консоли pfSense (физическая консоль, serial, IPMI или консоль гипервизора)
  2. Выберите пункт 2) Set interface(s) IP address для проверки/изменения IP-адреса LAN
  3. Выберите пункт 8) Shell и выполните:
pfSsh.php playback enableallowallwan    # Временно разрешить доступ с WAN
pfSsh.php playback disablereferercheck  # Отключить проверку referer
pfSsh.php playback svc restart webConfigurator  # Перезапустить веб-сервер

Важно: после восстановления доступа немедленно верните настройки безопасности и удалите правило allow all на WAN.

Проблемы загрузки

pfSense не загружается

Если pfSense не загружается после обновления или изменения конфигурации:

  1. Прервите автозагрузку: нажмите пробел при появлении загрузчика
  2. Загрузка в однопользовательском режиме: выберите 2) Boot Single User в меню загрузчика
  3. Проверьте файловую систему: выполните fsck -y /dev/ada0p2 (замените устройство при необходимости)
  4. Откатите конфигурацию: файлы конфигурации хранятся в /conf/backup/. Скопируйте рабочую конфигурацию:
cp /conf/backup/config-TIMESTAMP.xml /conf/config.xml
reboot

Проблемы файловой системы

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

Для проверки и восстановления:

  1. Загрузитесь в однопользовательский режим
  2. Смонтируйте корневую файловую систему в режиме чтения-записи: mount -o rw /
  3. Запустите проверку: fsck -y /
  4. При обнаружении ошибок выполните проверку повторно до получения чистого результата
  5. Перезагрузитесь: reboot

Переполнение таблицы состояний

Симптом: новые соединения не устанавливаются, в журналах появляются записи о заполнении state table.

Проверьте текущее заполнение: Diagnostics - States Summary или через виджет Dashboard - Firewall States.

Решения:

  • Увеличьте лимит: System - Advanced - Firewall & NAT - Firewall Maximum States. Значение по умолчанию зависит от объема ОЗУ
  • Уменьшите таймауты: System - Advanced - Firewall & NAT - Firewall Optimization. Режим aggressive сокращает время жизни неактивных состояний
  • Найдите источник: Diagnostics - States, отсортируйте по количеству. Частая причина - P2P-трафик, сканирование портов или DDoS

Каждое состояние потребляет приблизительно 1 КБ ОЗУ. При 100 000 состояний потребление составит около 100 МБ.

Проблемы с пакетами

Пакет не устанавливается

Если установка пакета через Package Manager завершается ошибкой:

  1. Проверьте DNS: пакеты загружаются из репозитория по DNS-имени
  2. Проверьте доступ в интернет: pfSense должен иметь выход в интернет для загрузки пакетов
  3. Проверьте свободное место: df -h через Shell. Нехватка дискового пространства - частая причина ошибок
  4. Обновите список пакетов: System - Package Manager - Installed Packages, нажмите Update All
  5. Проверьте совместимость версий: убедитесь, что пакет совместим с текущей версией pfSense

Пакет вызывает нестабильность

Если после установки пакета система стала нестабильной:

  1. Попробуйте удалить пакет через веб-интерфейс: System - Package Manager - Installed Packages
  2. Если веб-интерфейс недоступен, удалите пакет через консоль:
pkg delete package-name
  1. Перезагрузите pfSense после удаления

Сброс к заводским настройкам

Сброс полностью удаляет конфигурацию и возвращает pfSense к настройкам по умолчанию. Используйте только как крайнюю меру.

Через веб-интерфейс

Diagnostics - Factory Defaults. Подтвердите сброс. pfSense перезагрузится с настройками по умолчанию (LAN IP 192.168.1.1, DHCP включен).

Через консоль

  1. Подключитесь к консоли
  2. Выберите пункт 4) Reset to factory defaults
  3. Подтвердите сброс
  4. Дождитесь перезагрузки

Через загрузчик

Если консольное меню недоступно:

  1. Прервите загрузку нажатием пробела
  2. Загрузитесь в однопользовательский режим
  3. Выполните:
mount -o rw /
rm /conf/config.xml
reboot

pfSense создаст конфигурацию по умолчанию при следующей загрузке.

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

Last updated on