Представь, что тебе нужно срочно получить доступ к файлам на домашнем сервере TrueNAS, но ты в командировке или просто не дома. Проброс портов — рискованно, облачные синхронизации — медленно. Решение? Развернуть собственный, легкий и безопасный VPN-сервер прямо на TrueNAS. Давай разберем, как настроить WireGuard на TrueNAS, будь то Scale или Core, чтобы получить защищенный туннель к твоим данным из любой точки мира.
Почему именно WireGuard на TrueNAS?
WireGuard — это современный, простой и быстрый VPN-протокол. В отличие от громоздких решений вроде OpenVPN, он легко интегрируется в ядро системы, что делает его идеальным кандидатом для NAS. TrueNAS, как платформа для хранения данных, отлично подходит для роли VPN-сервера: он всегда включен, имеет стабильное сетевое подключение и достаточную вычислительную мощность.
Что тебе понадобится:
- Работающий сервер TrueNAS (Scale 22.12+ или Core 13.0+).
- Статический IP-адрес в локальной сети для TrueNAS или настройка DDNS.
- Права администратора (root).
- Порты для WireGuard (обычно UDP/51820), открытые на роутере (проброшенные).
Метод 1: WireGuard на TrueNAS SCALE (Рекомендуемый)
В TrueNAS SCALE, основанном на Linux, WireGuard встроен в ядро. Самый простой способ — использовать официальный TrueCharts хелм-чарт через систему приложений.
Шаг 1: Подготовка и установка приложения
Сначала убедись, что у тебя настроен Pool для приложений и добавлен каталог TrueCharts.
- Перейди в «Apps» → «Manage Catalogs». Убедись, что каталог «truecharts» есть в списке и обновлен.
- Нажми «Launch Docker Image» или найди «wireguard» в поиске приложений. Мы будем использовать проверенное решение — «wireguard-easy» от TrueCharts.
- Нажми «Install».
Шаг 2: Конфигурация приложения WireGuard
В форме настройки приложения обрати внимание на ключевые параметры:
# Основные настройки в UI TrueNAS:
Application Name: wireguard-vpn
WireGuard Server URL: mytruenas.ddns.net (или твой IP)
Server Port: 51820
Peer DNS Server: 192.168.1.1 (твой локальный DNS или, например, 8.8.8.8)
Allowed IPs: 10.10.10.0/24 (диапазон адресов для VPN-клиентов)
Persistent Keepalive: 25 (важно для обхода NAT)
/mnt/tank/apps/wireguard/config в /config внутри контейнера. Это сохранит твои ключи и настройки при обновлении.
Шаг 3: Настройка сети и проброс портов
В настройках приложения выбери «Host Network» или настрой проброс порта (Host Port: 51820 -> Container Port: 51820).
Затем на своем интернет-роутере создай правило Port Forwarding:
- Протокол: UDP
- Внешний порт: 51820 (или другой)
- Внутренний IP: [IP-адрес твоего TrueNAS]
- Внутренний порт: 51820
Шаг 4: Добавление клиентов (пиров)
После запуска приложения перейди в его Web UI (ссылка появится в статусе приложения).
- В интерфейсе WireGuard Easy создай нового пира (клиента).
- Задай ему имя (например, "My-Laptop").
- Система сгенерирует конфигурационный файл (файл
.conf) или QR-код. - Скачай файл или отсканируй QR-код с помощью официального клиента WireGuard на своем устройстве (телефон, ноутбук).
Метод 2: WireGuard на TrueNAS CORE (через плагин/джейл)
На TrueNAS CORE (FreeBSD) процесс чуть более ручной. Самый стабильный способ — установка в отдельном джейле.
# 1. Создай новый джейл (через UI или командой)
iocage create -n "wireguard" -r 13.2-RELEASE vnet=on bpf=yes dhcp=on
# 2. Зайди в консоль джейла
iocage console wireguard
# 3. Установи WireGuard и необходимые пакеты внутри джейла
pkg update && pkg upgrade -y
pkg install wireguard wireguard-tools
# 4. Включи поддержку WireGuard в загрузке ядра
sysrc wireguard_enable="YES"
# 5. Сгенерируй ключи сервера
cd /usr/local/etc/wireguard
wg genkey | tee server-private.key | wg pubkey > server-public.key
chmod 600 server-private.key
Создание конфигурационного файла сервера
# /usr/local/etc/wireguard/wg0.conf на сервере (TrueNAS CORE джейл)
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = [Содержимое файла server-private.key]
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o em0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o em0 -j MASQUERADE
# Клиент 1
[Peer]
PublicKey = [Публичный ключ клиента 1]
AllowedIPs = 10.10.10.2/32
em0 на имя своего физического сетевого интерфейса в джейле (узнать можно командой ifconfig). Правила PostUp/PostDown обеспечивают проброс трафика (NAT) из VPN в твою локальную сеть.
Пример клиентской конфигурации
Вот как выглядит типичный файл конфигурации для твоего ноутбука или телефона:
[Interface]
PrivateKey = [Твой_приватный_ключ_клиента]
Address = 10.10.10.2/32
DNS = 192.168.1.1, 8.8.8.8
[Peer]
PublicKey = [Публичный_ключ_твоего_сервера_WireGuard]
Endpoint = mytruenas.ddns.net:51820
AllowedIPs = 192.168.1.0/24, 10.10.10.0/24
PersistentKeepalive = 25
Ключ AllowedIPs = 192.168.1.0/24 говорит клиенту маршрутизировать через VPN трафик к твоей домашней сети. Если хочешь пропускать через VPN весь интернет-трафик, укажи 0.0.0.0/0.
Сравнение методов настройки WireGuard на TrueNAS
| Критерий | TrueNAS SCALE (Приложение) | TrueNAS CORE (Джейл) |
|---|---|---|
| Сложность | Низкая (GUI, несколько кликов) | Средняя/Высокая (CLI, ручная настройка) |
| Управление клиентами | Удобный Web UI (WireGuard Easy) | Ручное редактирование файла wg0.conf |
| Обновление | Через систему Apps (1 клик) | Вручную внутри джейла (pkg upgrade) |
| Идеально для | Большинства пользователей, кто хочет быстрое и простое решение | Опытных пользователей, нуждающихся в полном контроле |
Частые проблемы и их решение (FAQ)
Подключение есть, но нет доступа к ресурсам в локальной сети TrueNAS?
Проверь параметр AllowedIPs в конфиге клиента. Он должен включать подсеть твоей домашней сети (например, 192.168.1.0/24). Убедись, что на сервере включен IP forwarding и правильно настроены правила iptables/nftables (в методе с джейлом).
Клиент не подключается из внешней сети (интернета)?
1) Убедись, что порт UDP/51820 проброшен (Port Forwarding) на твоем роутере именно на IP-адрес TrueNAS. 2) Проверь, не блокирует ли порт провайдер или брандмауэр самого TrueNAS. 3) В конфиге клиента в Endpoint должен быть указан твой внешний IP или домен DDNS, а не локальный адрес.
Как добавить нового пользователя (пира)?
В SCALE (WireGuard Easy): через Web UI приложения. В CORE (джейл): сгенерируй новую пару ключей для клиента, добавь новую секцию [Peer] в файл wg0.conf сервера с его публичным ключом и выделенным IP (например, 10.10.10.3/32). Перезагрузи интерфейс WireGuard: wg-quick down wg0 && wg-quick up wg0.
WireGuard сильно нагружает процессор TrueNAS?
Обычно WireGuard очень легковесен. Заметная нагрузка может возникнуть только на очень старом железе или при гигантских скоростях (гигабит+). В 99% случаев проблем с производительностью нет.
Итог и следующие шаги:
Ты только что развернул собственный, безопасный и быстрый VPN-сервер на основе WireGuard на своей системе TrueNAS. Теперь ты можешь:
- Безопасно подключаться к своей домашней сети из любой точки мира.
- Получать доступ к веб-интерфейсам TrueNAS, сервисам (Plex, Nextcloud) и файлам по локальным адресам.
- Зашифровать свой трафик в публичных Wi-Fi сетях, маршрутизируя его через домашний интернет.
Дальнейшая настройка — это тонкая отладка маршрутов, настройка автоматического переподключения и, возможно, использование нескольких VPN-профилей для разных задач. Но основа уже готова!