Почему UniFi Dream Machine такая странная?
Да, вы правы — логика правил действительно дебильная. Почему? Потому что UDM использует строгий фаервол, который по умолчанию блокирует ВСЁ, что не разрешено явно. Это хорошо для безопасности, но плохо для новичков.
Когда вы пытаетесь открыть порт (например, 7156 для вашей камеры Hikvision), вам нужно сделать не одно правило, а два:
- Правило для входящего трафика (из интернета в вашу сеть)
- Правило для исходящего трафика (обратный ответ из вашей сети в интернет)
Это называется stateful firewall — он следит за состоянием соединения. Без правила для исходящего трафика ответ от вашего устройства просто не вернется обратно к клиенту.
Шаг 1: Определите, что именно нужно открыть
Вы говорите про камеру Hikvision на порту 7156. Значит, нам нужно:
- Открыть TCP-порт 7156 для входящего трафика
- Разрешить исходящий трафик на этот же порт (и протокол)
Также убедитесь, что ваша камера действительно слушает порт 7156 и доступна по локальной сети (например, http://192.168.x.x:7156).
Шаг 2: Создаем правило для входящего трафика (Internet → LAN)
Переходим в UniFi Controller → Settings → Security → Firewall & Security → + Add New Rule
Настройки правила:
- Тип правила: Дополнит
- Тип: Интернет подключен
- Имя: Open Port 7156 for Camera
- Действие: Принять
- Протокол: TCP
- Порт назначения: 7156
- Назначение: Объект → Создайте новый объект типа "Устройство" с IP-адресом вашей камеры (например, 192.168.1.100)
- Источник: Любой (или можно указать конкретный IP, если хотите ограничить доступ)
- Перед предопределенными правилами: ✅ (Обязательно! Иначе правило не сработает)
Шаг 3: Создаем правило для исходящего трафика (LAN → Internet)
Снова + Add New Rule
Настройки правила:
- Тип правила: Дополнит
- Тип: Локальный Интернет
- Имя: Allow Outbound 7156 for Camera
- Действие: Принять
- Протокол: TCP
- Порт источника: 7156
- Источник: Объект → Устройство с IP вашей камеры (192.168.1.100)
- Назначение: Любой
- Перед предопределенными правилами: ✅ (Обязательно!)
Port Forwarding (перенаправление портов). Это более простой способ, но он работает только для одного внешнего порта на одно внутреннее устройство.
Альтернатива: Используйте Port Forwarding (рекомендуется для начинающих)
Переходим: Settings → Routing & Firewall → Port Forwarding → + Add New Rule
Настройки:
- Имя: Camera 7156
- Протокол: TCP
- Внешний порт: 7156
- Внутренний IP: IP вашей камеры (192.168.1.100)
- Внутренний порт: 7156
- Интерфейс: WAN
Это автоматически создаст нужные правила для входящего и исходящего трафика. Гораздо проще!
Что делать, если всё равно не работает?
- Проверьте, что у вас есть статический IP на камере (не DHCP).
- Убедитесь, что в настройках камеры включена HTTP-служба на порту 7156.
- Проверьте, что ваш провайдер не блокирует порт 7156 (попробуйте другой порт, например, 8080).
- Проверьте, что у вас нет двойного NAT (если у вас модем-роутер от провайдера, то открывайте порт там тоже).
- Используйте сервисы вроде
canyouseeme.org, чтобы проверить, открыт ли порт снаружи.
Зачем вообще это нужно?
Если вы хотите получить доступ к своей камере извне (с телефона, с работы, с другого города), то без открытия порта не обойтись. Но помните: это снижает безопасность.
Более безопасный вариант — использовать UniFi Protect или Cloudflare Tunnel, которые позволяют получить доступ без открытия портов.
UniFi Dream Machine: Как ограничить пинги (ICMP rate-limit) — только через SSH
Почему нельзя через веб-интерфейс?
UniFi Controller не даёт настроить лимиты на пакеты (rate limiting) в GUI. Даже поля вроде «Raw iptables» либо отсутствуют, либо не работают в новых версиях (особенно после перехода на nftables в UniFi OS 3.0+).
Хочешь ограничить пинги — лезь в консоль.
Вариант 1: Временное правило через SSH
Подключись к UDM по SSH:
ssh root@192.168.1.1
Узнай WAN-интерфейс:
ip a
Обычно это eth8 (UDM Pro), eth4 (UDM Base) или ppp0 (при PPPoE).
Добавь правило (пример для eth8):
nft add rule inet filter input iif "eth8" ip protocol icmp icmp type echo-request \
limit rate 5/minute burst 3 packets accept
И запрети всё остальное:
nft add rule inet filter input iif "eth8" ip protocol icmp icmp type echo-request drop
Внимание: эти правила сбросятся после перезагрузки!
Вариант 2: Постоянное правило — скрипт при загрузке
Если config.gateway.json не поддерживает limit (а он, скорее всего, не поддерживает), используй автозапуск:
mkdir -p /mnt/data/on_boot.d cat > /mnt/data/on_boot.d/99-icmp-limit.sh << 'EOF' #!/bin/sh sleep 10 nft add rule inet filter input iif "eth8" ip protocol icmp icmp type echo-request limit rate 5/minute burst 3 packets accept nft add rule inet filter input iif "eth8" ip protocol icmp icmp type echo-request drop EOF chmod +x /mnt/data/on_boot.d/99-icmp-limit.sh
Скрипт запустится автоматически после каждой перезагрузки (работает на UDM Pro/SE с persistent storage).
Альтернатива: Не открывай ICMP для всех
Если не хочешь возиться с лимитами — просто разреши пинги только с доверенных IP (например, с твоего офисного).
- В правиле фаервола выбери «Источник» → «Объект» → «IP-адрес»
- Укажи свой публичный IP (например, тот, с которого ты пингуешь)
Это безопаснее, чем открывать ICMP на весь интернет — даже без rate-limit.
Вывод
- GUI UniFi не умеет ограничивать пинги по частоте.
- Rate-limit возможен только через SSH и
nftables. - Чтобы правило не слетало — используй скрипт в
/mnt/data/on_boot.d/. - Или просто ограничь доступ одним IP — проще и надёжнее.
Заключение
Да, UniFi Dream Machine — железка, которая требует понимания сетевых основ. Но когда вы разберетесь, она становится мощным инструментом. А пока — используйте Port Forwarding, он спасет вас от головной боли.
И да, гайдов действительно мало. Все чешут репу, потому что Ubiquiti не делает их. Но теперь у вас есть этот гайд. Спасибо, что прочитали до конца!
Комментарии
Пока нет комментариев. Будьте первым!