Устранение неполадок pfSense - общее руководство
Устранение неполадок pfSense охватывает широкий спектр проблем: от потери связи с интернетом до деградации производительности и невозможности доступа к веб-интерфейсу. В этом руководстве систематизированы наиболее частые проблемы и методы их решения, начиная с общей методологии диагностики.
Перед началом диагностики определите, что именно не работает: полное отсутствие связи, частичные потери, проблемы только с определенными протоколами или только с определенных хостов. Точная формулировка симптома сокращает время поиска причины в несколько раз.
Методология диагностики
Послойная проверка
Придерживайтесь проверки снизу вверх по модели OSI:
- Физический уровень - проверьте индикаторы подключения на интерфейсах (Status - Interfaces), убедитесь, что кабели подключены и link установлен
- Канальный уровень - проверьте ARP-таблицу (Diagnostics - ARP Table), убедитесь, что MAC-адрес шлюза провайдера присутствует
- Сетевой уровень - проверьте IP-адресацию интерфейсов, таблицу маршрутизации (Diagnostics - Routes), выполните ping с самого pfSense (Diagnostics - Ping)
- Транспортный уровень - проверьте правила файрвола (Firewall - Rules), состояния соединений (Diagnostics - States), NAT-правила
- Прикладной уровень - проверьте DNS (Diagnostics - DNS Lookup), работу прокси-серверов, VPN-туннелей
Инструменты диагностики pfSense
| Инструмент | Расположение | Назначение |
|---|---|---|
| Ping | Diagnostics - Ping | Проверка доступности хоста |
| Traceroute | Diagnostics - Traceroute | Определение маршрута до хоста |
| DNS Lookup | Diagnostics - DNS Lookup | Проверка разрешения имен |
| Packet Capture | Diagnostics - Packet Capture | Захват трафика на интерфейсе |
| pfTop | Diagnostics - pfTop | Активные соединения в реальном времени |
| States | Diagnostics - States | Таблица состояний файрвола |
| Routes | Diagnostics - Routes | Таблица маршрутизации |
| System Logs | Status - System Logs | Журналы всех служб |
Проблемы с подключением
Нет доступа в интернет
Симптом: клиенты LAN не могут выйти в интернет, при этом pfSense доступен по LAN-адресу.
Порядок проверки:
- Проверьте WAN-интерфейс: Status - Interfaces. Убедитесь, что WAN получил IP-адрес, шлюз и DNS-серверы
- Проверьте шлюз: System - Routing - Gateways. Статус шлюза по умолчанию должен быть Online
- Ping с pfSense: Diagnostics - Ping, выберите WAN-интерфейс как источник, выполните ping до 8.8.8.8
- Проверьте NAT: Firewall - NAT - Outbound. Для стандартных конфигураций должен быть установлен режим Automatic outbound NAT
- Проверьте DNS: Diagnostics - DNS Lookup, разрешите google.com. Если не работает - проверьте System - General Setup - DNS Servers
Если ping с WAN-интерфейса pfSense до внешнего IP работает, а клиенты LAN не могут выйти в интернет, проблема в NAT или правилах файрвола на LAN-интерфейсе.
Нет доступа к внутренним хостам
Симптом: клиенты из одной подсети не могут подключиться к серверам в другой подсети через pfSense.
Проверка:
- Правила файрвола: проверьте правила на интерфейсе-источнике. pfSense применяет правила на входящем интерфейсе (ingress filtering)
- Маршрутизация: убедитесь, что pfSense знает маршрут до обеих подсетей (Diagnostics - Routes)
- Обратный маршрут: убедитесь, что хосты назначения имеют маршрут обратно через pfSense
- Asymmetric routing: если трафик приходит на pfSense через один интерфейс, а уходит через другой, проверьте настройку System - Advanced - Firewall & NAT - Bypass firewall rules for traffic on the same interface
Проблемы с DNS
DNS не разрешает имена
Симптом: ping по IP-адресу работает, но ping по имени хоста возвращает ошибку.
Порядок действий:
- Проверьте DNS-серверы pfSense: System - General Setup. Убедитесь, что DNS-серверы указаны и доступны
- Проверьте DNS Resolver: Services - DNS Resolver. Убедитесь, что служба запущена и привязана к нужным интерфейсам
- Проверьте доступность DNS-серверов: Diagnostics - Ping, выполните ping до каждого DNS-сервера
- Проверьте правила файрвола: убедитесь, что трафик DNS (порт 53 TCP/UDP) разрешен от pfSense к внешним DNS-серверам
- Очистите кэш 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/snort | IDS/IPS обрабатывает весь трафик | Ограничьте проверяемые сети, отключите неиспользуемые наборы правил |
Высокое потребление памяти
Проверьте текущее потребление: Status - Dashboard. Основные потребители:
- Таблица состояний (state table) - при большом количестве активных соединений. Проверьте размер: Diagnostics - States Summary
- Пакеты (Suricata, Snort, ntopng) - могут потреблять значительный объем памяти
- DNS Resolver кэш - при обслуживании большого числа клиентов
Для снижения потребления памяти таблицей состояний уменьшите значение Firewall Maximum States в System - Advanced - Firewall & NAT.
Низкая пропускная способность
Если пропускная способность через pfSense ниже ожидаемой:
- Проверьте скорость интерфейсов: Status - Interfaces. Убедитесь, что скорость и дуплекс установлены корректно (Auto-negotiate в большинстве случаев)
- Отключите offloading: System - Advanced - Networking. Снимите флаги Hardware Checksum Offload и Hardware TCP Segmentation Offload - это особенно актуально для виртуальных сред
- Проверьте Traffic Shaper: если настроен шейпер трафика , убедитесь, что лимиты соответствуют пропускной способности канала
- Проверьте IDS/IPS: Suricata и Snort выполняют инспекцию каждого пакета, что может снижать пропускную способность на 30-50%
- Проверьте размер MTU: несовпадение MTU между интерфейсами вызывает фрагментацию и снижение производительности
Проблемы с веб-интерфейсом
Нет доступа к веб-интерфейсу
Симптом: браузер не может подключиться к https://192.168.1.1 (или другому LAN-адресу pfSense).
Проверка:
- Ping pfSense: если ping не работает, проблема на уровне сети (неверный IP, отключен интерфейс)
- Порт веб-интерфейса: по умолчанию 443 (HTTPS) или 80 (HTTP). Порт мог быть изменен в System - Advanced - Admin Access
- Протокол: проверьте, использует ли pfSense HTTP или HTTPS. Попробуйте оба варианта
- Правила на LAN: убедитесь, что anti-lockout rule не отключено (System - Advanced - Admin Access - Anti-lockout)
- Перезапуск веб-сервера: через консоль выполните
pfSsh.php playback svc restart webConfigurator
Восстановление доступа через консоль
Если доступ к веб-интерфейсу полностью потерян:
- Подключитесь к консоли pfSense (физическая консоль, serial, IPMI или консоль гипервизора)
- Выберите пункт 2) Set interface(s) IP address для проверки/изменения IP-адреса LAN
- Выберите пункт 8) Shell и выполните:
pfSsh.php playback enableallowallwan # Временно разрешить доступ с WAN
pfSsh.php playback disablereferercheck # Отключить проверку referer
pfSsh.php playback svc restart webConfigurator # Перезапустить веб-серверВажно: после восстановления доступа немедленно верните настройки безопасности и удалите правило allow all на WAN.
Проблемы загрузки
pfSense не загружается
Если pfSense не загружается после обновления или изменения конфигурации:
- Прервите автозагрузку: нажмите пробел при появлении загрузчика
- Загрузка в однопользовательском режиме: выберите 2) Boot Single User в меню загрузчика
- Проверьте файловую систему: выполните
fsck -y /dev/ada0p2(замените устройство при необходимости) - Откатите конфигурацию: файлы конфигурации хранятся в
/conf/backup/. Скопируйте рабочую конфигурацию:
cp /conf/backup/config-TIMESTAMP.xml /conf/config.xml
rebootПроблемы файловой системы
Признаки повреждения файловой системы: ошибки записи в журналах, невозможность сохранить конфигурацию, спонтанные перезагрузки.
Для проверки и восстановления:
- Загрузитесь в однопользовательский режим
- Смонтируйте корневую файловую систему в режиме чтения-записи:
mount -o rw / - Запустите проверку:
fsck -y / - При обнаружении ошибок выполните проверку повторно до получения чистого результата
- Перезагрузитесь:
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 завершается ошибкой:
- Проверьте DNS: пакеты загружаются из репозитория по DNS-имени
- Проверьте доступ в интернет: pfSense должен иметь выход в интернет для загрузки пакетов
- Проверьте свободное место:
df -hчерез Shell. Нехватка дискового пространства - частая причина ошибок - Обновите список пакетов: System - Package Manager - Installed Packages, нажмите Update All
- Проверьте совместимость версий: убедитесь, что пакет совместим с текущей версией pfSense
Пакет вызывает нестабильность
Если после установки пакета система стала нестабильной:
- Попробуйте удалить пакет через веб-интерфейс: System - Package Manager - Installed Packages
- Если веб-интерфейс недоступен, удалите пакет через консоль:
pkg delete package-name- Перезагрузите pfSense после удаления
Сброс к заводским настройкам
Сброс полностью удаляет конфигурацию и возвращает pfSense к настройкам по умолчанию. Используйте только как крайнюю меру.
Через веб-интерфейс
Diagnostics - Factory Defaults. Подтвердите сброс. pfSense перезагрузится с настройками по умолчанию (LAN IP 192.168.1.1, DHCP включен).
Через консоль
- Подключитесь к консоли
- Выберите пункт 4) Reset to factory defaults
- Подтвердите сброс
- Дождитесь перезагрузки
Через загрузчик
Если консольное меню недоступно:
- Прервите загрузку нажатием пробела
- Загрузитесь в однопользовательский режим
- Выполните:
mount -o rw /
rm /conf/config.xml
rebootpfSense создаст конфигурацию по умолчанию при следующей загрузке.
Дополнительные сведения о настройке правил файрвола доступны в разделе правила файрвола . Для вопросов, связанных с виртуализированным pfSense, обратитесь к руководству по виртуализации . Информация о настройке VPN доступна в разделе VPN .