Представь, что ты развернул мощный TrueNAS сервер, но твои службы — SMB, NFS, веб-интерфейс или собственные контейнеры — недоступны из сети. Проблема в 90% случаев кроется в неправильной настройке портов. Давай разберем, что такое порт в контексте TrueNAS, как его правильно настроить, открыть для внешнего доступа и защитить от несанкционированного проникновения. Это must-know материал для любого сисадмина или DevOps-инженера, работающего с NAS-системами.
Что такое порт в TrueNAS и зачем он нужен?
Порт — это виртуальная «дверь» на сетевом интерфейсе твоего TrueNAS сервера, через которую происходит обмен данными по конкретному протоколу. Каждая сетевая служба «слушает» определенный порт:
- Веб-интерфейс (UI): по умолчанию использует порт 80 (HTTP) и/или 443 (HTTPS).
- SMB/CIFS (общие папки Windows): порты 139 и 445.
- NFS: порт 2049.
- SSH: порт 22.
- iSCSI: порт 3260.
Правильная настройка портов — это основа доступности и безопасности твоих данных.
Базовые настройки сетевых портов в веб-интерфейсе
Большинство стандартных настроек портов выполняется через интуитивный веб-интерфейс TrueNAS.
1. Настройка портов сетевых служб
Перейди в System Settings → Services. Здесь ты увидишь список всех системных служб. Нажми на значок карандаша напротив нужной службы, чтобы изменить её параметры, включая порт.
# Куда смотреть в веб-интерфейсе:
# Служба: SSH
# Поле: "TCP Port"
# Значение по умолчанию: 22
# Новое значение (например): 2222
# После изменения в UI, служба перезапустится автоматически.
# Проверить можно командой из шелла:
sockstat -l4 | grep ssh
# или (на Scale)
ss -tlnp | grep :2222
2. Настройка порта веб-интерфейса
Это критически важная настройка. Находится в System Settings → General → GUI.
- Web Interface IPv4 Address: Выбери, на каком IP слушать (0.0.0.0 для всех).
- Web Interface Port: Порт HTTP (по умолчанию 80).
- HTTPS Port: Порт HTTPS (по умолчанию 443). Рекомендуется использовать только HTTPS!
https://truenas-ip:НОВЫЙ_ПОРТ.
Продвинутое управление портами: CLI и контейнеры
Для кастомных приложений в TrueNAS Scale (Docker) или Jail в Core потребуется работа через командную строку и понимание сетевых пространств имен.
Проброс портов для приложений (TrueNAS Scale)
При развертывании приложения через официальный каталог или вручную, настройка портов происходит в разделе Apps → Настройка приложения.
# В разделе "Container Configuration" приложения ищем "Port Forwarding"
# Добавляем порты:
- containerPort: 80
hostPort: 8080 # Nextcloud будет доступен на HOST_IP:8080
protocol: TCP
name: nextcloud-http
- containerPort: 443
hostPort: 4443
protocol: TCP
name: nextcloud-https
# Важно: Если hostPort не указан, система назначит случайный порт.
Ручная настройка через CLI (Метод для экспертов)
Иногда нужно временно открыть порт или проверить, что слушает система.
# TrueNAS SCALE (Linux)
sudo ss -tulpn | grep LISTEN
# Ключи: -t (TCP), -u (UDP), -l (listen), -n (numeric), -p (process)
# TrueNAS CORE (FreeBSD)
sockstat -l4 # Для IPv4
sockstat -l6 # Для IPv6
# Универсальная проверка с помощью netstat (может потребовать установки)
sudo netstat -tulnp
sudo lsof -i :8080
# Вывод покажет PID и имя процесса, использующего порт.
Безопасность портов: Firewall и Best Practices
Открытый порт — это потенциальная точка входа для атакующего. Следуй этим правилам:
| Правило | Описание | Пример |
|---|---|---|
| Минимизация открытых портов | Отключай неиспользуемые службы в System → Services. | Если не используешь FTP, отключи его. |
| Смена портов по умолчанию | Меняй стандартные порты для SSH, WebUI, чтобы избежать сканирования ботнетами. | SSH с 22 на 2222 или 49222. |
| Использование VPN | Не открывай порты веб-интерфейса или SMB напрямую в интернет. Используй WireGuard или OpenVPN. | Доступ к UI только из внутренней сети или через VPN. |
| Настройка брандмауэра на маршрутизаторе | Пробрасывай порты только на нужный внутренний IP и только для необходимых протоколов. | Проброс TCP 4443 с WAN только на IP TrueNAS. |
Встроенный брандмауэр (TrueNAS CORE — IPFW)
В CORE есть мощный брандмауэр на базе IPFW. Настройки находятся в Network → Firewall. Будь осторожен, неправильное правило может заблокировать тебя от сервера!
# Разрешить SSH только с определенной подсети (например, 192.168.1.0/24)
ipfw add 01000 allow tcp from 192.168.1.0/24 to any 22 in
# Запретить все входящие подключения к порту 80 (HTTP)
ipfw add 02000 deny tcp from any to any 80 in
# Показать текущие правила
ipfw list
Диагностика проблем с портами
Если служба не отвечает, используй этот чек-лист:
- Слушает ли служба порт? Выполни
ss -tlnp | grep :PORTна самом TrueNAS. - Работает ли локально? Попробуй подключиться с самого сервера:
curl -v http://localhost:PORTилиtelnet localhost PORT. - Блокирует ли брандмауэр? Проверь правила на TrueNAS (если включен) и на маршрутизаторе.
- Доступен ли порт из сети? Используй
nmapс другого компьютера в той же сети:nmap -p PORT IP_TRUENAS. - Правильно ли настроен проброс? Если доступ из интернета, проверь настройки NAT/PAT на роутере.
# Установи nmap, если его нет (на клиентской машине)
# Проверка нескольких ключевых портов TrueNAS
nmap -p 22,80,443,139,445,2049 192.168.1.100
# Результат покажет STATE: "open", "closed" или "filtered".
# "Filtered" обычно означает, что трафик блокируется брандмауэром.
Часто задаваемые вопросы (FAQ)
Какой порт использует веб-интерфейс TrueNAS по умолчанию?
По умолчанию веб-интерфейс использует порт 80 для HTTP и порт 443 для HTTPS. Настоятельно рекомендуется отключить HTTP и использовать исключительно HTTPS на порту 443 для шифрования трафика и безопасности учетных данных.
Можно ли изменить порт SSH в TrueNAS?
Да, абсолютно. Зайди в System Settings → Services, найди службу SSH, нажми на иконку редактирования и измени значение в поле "TCP Port". Не забудь добавить новое правило в брандмауэр маршрутизатора, если нужен доступ извне, и обновить конфигурацию клиентов SSH.
Почему мой кастомный порт для приложения не открывается?
Наиболее частые причины:
- Конфликт портов: Порт уже занят другой службой. Проверь командой
ss -tulpn. - Неправильная настройка приложения: Убедись, что в конфигурации контейнера или виртуальной машины правильно указаны
hostPortиcontainerPort. - Ограничения сетевого драйвера: В TrueNAS Scale для Apps по умолчанию используется изолированная сеть
ix-default. Убедись, что для приложения выбран правильный сетевой интерфейс или настроен проброс портов. - Брандмауэр хоста: На TrueNAS Scale по умолчанию может быть активен
ufwилиfirewalld. Проверь их статус.
Как безопасно открыть порты для доступа из интернета?
Никогда не открывай порты веб-интерфейса (80, 443) или служб общих папок (139, 445, 2049) напрямую в интернет. Единственный относительно безопасный способ — использовать обратный прокси-сервер (например, Nginx Proxy Manager в виде приложения TrueNAS) с обязательным использованием:
- HTTPS с валидными сертификатами (Let's Encrypt).
- Аутентификации на уровне прокси (Basic Auth, OAuth).
- Гео-фильтрации или ограничения по IP-адресам, если возможно.
- Идеальный вариант — доступ только через VPN (WireGuard).
В чем разница между hostPort и containerPort в настройках приложений?
Это ключевое понятие для Docker/TrueNAS Scale:
- containerPort: Порт, который слушает приложение внутри контейнера. Определяется образом приложения (например, веб-сервер слушает на 80).
- hostPort: Порт на хостовой системе (твоем сервере TrueNAS), на который будет пробрасываться трафик с containerPort. По этому порту ты будешь обращаться к приложению из своей сети.
Пример: containerPort: 80, hostPort: 8080 означает, что приложение в контейнере работает на порту 80, но снаружи ты подключишься к нему по http://truenas-ip:8080.
Заключение
Управление портами в TrueNAS — это баланс между удобством доступа к данным и службами и железобетонной безопасностью. Начни с настройки через веб-интерфейс для базовых служб, всегда меняй порты по умолчанию для критических сервисов (SSH, UI) и используй VPN для удаленного доступа. Для кастомных приложений тщательно проверяй настройки проброса портов и мониторь открытые сокеты с помощью ss или lsof. Помни: каждый открытый порт — это потенциальный вектор атаки, поэтому принцип минимальных привилегий должен быть твоим главным правилом.
Освоив эти практики, ты превратишь свой TrueNAS из простого файлового хранилища в надежную и контролируемую платформу для любых сетевых служб.