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

> Руководство по диагностике и устранению типовых проблем pfSense - подключение, DNS, производительность, веб-интерфейс, загрузка и восстановление

Source: https://opennix.org/docs/pfsense/troubleshooting/pfsense-general-troubleshooting/


Устранение неполадок 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

| Инструмент | Расположение | Назначение |
|---|---|---|
| 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-адресу.

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

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/snort | IDS/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 - это особенно актуально для [виртуальных сред](/docs/pfsense/virtualization/pfsense-virtualization-guide/)
3. **Проверьте Traffic Shaper**: если настроен [шейпер трафика](/docs/pfsense/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
```

3. Перезагрузите 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 создаст конфигурацию по умолчанию при следующей загрузке.

Дополнительные сведения о настройке правил файрвола доступны в разделе [правила файрвола](/docs/pfsense/firewall/pfsense-firewall-rules/). Для вопросов, связанных с виртуализированным pfSense, обратитесь к [руководству по виртуализации](/docs/pfsense/virtualization/pfsense-virtualization-guide/). Информация о настройке VPN доступна в разделе [VPN](/docs/pfsense/vpn/).

