Представь, что твой TrueNAS сервер — это крепость с бесценными данными. Брандмауэр — это стены, а VPN — это секретный, зашифрованный туннель, по которому только ты можешь попасть внутрь, из любой точки мира. В этом руководстве, как Senior DevOps, я покажу тебе, как развернуть этот туннель, используя самые современные и надежные инструменты: WireGuard и OpenVPN. Мы не просто поставим галочку, а разберемся, как это работает изнутри.
Зачем нужен VPN на TrueNAS?
Прямое открытие портов веб-интерфейса (UI) или сетевых шаров (SMB/NFS) в интернет — это как оставить парадную дверь нараспашку. VPN решает эту проблему, создавая защищенное соединение между твоим устройством и домашней сетью. После подключения к truenas vpn ты будешь работать с сервером так, будто находишься прямо рядом с ним.
- Безопасный удаленный доступ к веб-интерфейсу TrueNAS (не нужно открывать порт 443).
- Доступ к сетевым шарам (SMB, NFS, AFP) как в локальной сети.
- Защищенное управление Docker-контейнерами, виртуальными машинами и другими сервисами.
- Шифрование всего трафика, даже при использовании публичных Wi-Fi сетей.
Сравнение WireGuard и OpenVPN для TrueNAS
Давай выберем инструмент под задачу. Вот краткое сравнение, которое я, как ментор, рекомендую держать в голове.
| Критерий | WireGuard | OpenVPN |
|---|---|---|
| Производительность | Высокая (реализация в ядре) | Средняя (пользовательское пространство) |
| Простота конфигурации | Очень простая (1 файл конфига) | Сложная (множество опций, сертификаты) |
| Безопасность | Современная криптография (Noise protocol) | Проверенная, гибкая (TLS) |
| Идеально для | Постоянного, быстрого туннеля (Site-to-Site, мобильные клиенты) | Сложных корпоративных сценариев, максимальной гибкости |
Настройка WireGuard VPN на TrueNAS Scale
WireGuard — мой фаворит для homelab. Он быстрый, легкий и его настройка займет 15 минут. Работаем через веб-интерфейс и CLI.
Шаг 1: Подготовка и установка приложения
В TrueNAS Scale WireGuard можно развернуть как официальное приложение.
- Зайди в «Apps» → «Discover Apps».
- Найди «WireGuard» (официальный образ от linuxserver.io).
- Нажми «Install».
Шаг 2: Генерация ключей и конфигурация сервера
Ключи — основа безопасности WireGuard. Сгенерируем их через Shell (SSH или встроенную консоль).
# Генерация приватного и публичного ключа для СЕРВЕРА (TrueNAS)
wg genkey | tee /tmp/server_private.key | wg pubkey > /tmp/server_public.key
# Генерация ключей для КЛИЕНТА (твой ноутбук/телефон)
wg genkey | tee /tmp/client_private.key | wg pubkey > /tmp/client_public.key
# Посмотрим ключи (запиши их в надежное место!)
cat /tmp/server_private.key # Приватный ключ сервера
cat /tmp/server_public.key # Публичный ключ сервера
cat /tmp/client_public.key # Публичный ключ клиента
Шаг 3: Настройка приложения WireGuard
Вернись в настройки устанавливаемого приложения WireGuard. Важные параметры:
- Host Path: Примонтируй директорию для конфигов, например,
/mnt/pool/apps/wireguard. - PEERS: Укажи количество клиентов (например,
1). - SERVERURL: Внешний IP твоего роутера или DynDNS-адрес (например,
vpn.mydomain.com). - SERVERPORT: Внешний порт для WireGuard (например,
51820). Этот порт нужно будет пробросить на роутере на IP TrueNAS.
Шаг 4: Конфигурационный файл сервера (wg0.conf)
После установки приложения, отредактируй основной конфиг. Он будет в смонтированной папке.
# /mnt/pool/apps/wireguard/config/wg0.conf
[Interface]
Address = 10.10.0.1/24 # Внутренняя сеть VPN
ListenPort = 51820 # Внутренний порт (должен совпадать с SERVERPORT)
PrivateKey = <СЕРВЕРНЫЙ_ПРИВАТНЫЙ_КЛЮЧ> # Вставь свой из /tmp/server_private.key
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Клиент (твой ноутбук)
[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА> # Вставь из /tmp/client_public.key
AllowedIPs = 10.10.0.2/32 # Выдаем клиенту этот IP в VPN-сети
Шаг 5: Конфиг для клиента (например, Windows/macOS)
Создай файл на своем компьютере truenas-vpn-client.conf.
[Interface]
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА> # Вставь из /tmp/client_private.key
Address = 10.10.0.2/32
DNS = 10.10.0.1 # Можно указать DNS сервер в сети TrueNAS (например, AdGuard Home)
[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА> # Вставь из /tmp/server_public.key
Endpoint = vpn.mydomain.com:51820 # Твой внешний адрес и порт
AllowedIPs = 10.0.0.0/8, 192.168.1.0/24 # Какие сети маршрутизировать через VPN
PersistentKeepalive = 25
Импортируй этот файл в клиент WireGuard на своем устройстве, активируй соединение. Если все настроено верно, с клиента должен пинговаться IP сервера в VPN-сети (10.10.0.1), а затем и IP самого TrueNAS в локальной сети (например, 192.168.1.100).
Настройка OpenVPN на TrueNAS Core через плагин
Для TrueNAS Core (FreeBSD) классический путь — плагин OpenVPN. Он более требователен к настройке, но невероятно гибкий.
- Зайди в «Plugins» и установи плагин «OpenVPN».
- После установки, создай jail для плагина.
- В настройках jail включи «vnet» и «Berkeley Packet Filter».
- Запусти плагин и открой его веб-интерфейс (обычно по адресу jail).
Дальнейшая настройка (генерация сертификатов, конфигов) обычно проводится через этот веб-интерфейс по шагам мастера. Основная сложность — правильная настройка маршрутизации и файрвола.
# Пример: Проверка, работает ли OpenVPN сервер в jail
jls # Узнаем ID jail с OpenVPN
jexec <ID> sockstat -l | grep 1194 # Ищем слушающий порт OpenVPN (по умолчанию 1194)
Проброс портов и настройка роутера
Без этого шага соединение извне не установится. Зайди в настройки своего роутера (обычно 192.168.1.1).
- Найди раздел «Port Forwarding» (Проброс портов / Виртуальные серверы).
- Создай правило: Внешний порт (например, 51820 для WireGuard) → Внутренний IP (адрес твоего TrueNAS) → Внутренний порт (тот же, 51820). Протокол UDP.
- Для OpenVPN правило аналогичное, но порт обычно 1194 и протокол UDP/TCP.
Часто задаваемые вопросы (FAQ)
Как проверить, работает ли VPN соединение?
Подключись с клиента и выполни команды:
# На клиенте (в командной строке или терминале)
ping 10.10.0.1 # Должен пинговать сервер в VPN-сети
ping 192.168.1.100 # Должен пинговать TrueNAS в локальной сети
# На сервере TrueNAS (в Shell)
wg show # Для WireGuard — покажет активные пиры и трафик
Я подключился к VPN, но не вижу сетевые шары (SMB)
Скорее всего, проблема в маршрутах или firewall. Убедись, что в клиентском конфиге WireGuard (AllowedIPs) указана подсеть твоей домашней сети (например, 192.168.1.0/24). Также проверь настройки общего доступа TrueNAS — в параметрах SMB должна быть разрешена работа с подключаемыми клиентами.
Можно ли использовать VPN для доступа к приложениям TrueNAS Scale (Apps)?
Да, и это одна из главных причин! После подключения к VPN ты можешь обращаться к веб-интерфейсам приложений (например, Nextcloud, Plex, AdGuard Home) по их внутреннему IP и порту, как если бы ты был дома. Это безопаснее, чем пробрасывать каждый порт наружу.
WireGuard или OpenVPN — что выбрать для начала?
Если ты только начинаешь и используешь TrueNAS Scale — однозначно WireGuard. Он проще, быстрее и современнее. OpenVPN выбирай, если у тебя специфические требования (например, необходимость аутентификации по сертификатам и логину/паролю одновременно) или ты используешь TrueNAS Core и хочешь готовый плагин.
Заключение
Настройка truenas vpn — это не просто «галочка», а фундаментальное улучшение безопасности и доступности твоего homelab. WireGuard, с его простотой и скоростью, идеально вписывается в философию современного DevOps. OpenVPN остается мощным и гибким инструментом для сложных сценариев.
Помни: правильно настроенный VPN — это твой личный защищенный мост к данным. Потрать время на первоначальную настройку, протестируй соединение из разных мест (с мобильного интернета, из кафе), и ты получишь надежный и безопасный удаленный доступ к своей инфраструктуре на TrueNAS.