ZeroTier: различия между версиями
Admin (обсуждение | вклад) Новая страница: «'''ZeroTier''' — это программное обеспечение для создания виртуальных частных сетей (VPN), позволяющее объединять компьютеры, серверы, мобильные устройства и облачные инстанции в единую защищённую сеть так, как будто они подключены к одному физическому м...» |
Admin (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
= ZeroTier: расширенные сценарии и интеграция = | |||
ZeroTier — это программное обеспечение для создания виртуальных частных сетей (SD-WAN), которое объединяет устройства из любой точки мира в одну безопасную сеть, как если бы они находились в одной локальной сети. В базовых статьях ([[Linux]], [[Windows]], [[macOS]]) мы рассмотрели установку и присоединение к сети. В этой статье мы углубимся в продвинутую настройку: маршрутизацию, мосты, настройку DNS, работу с Docker и интеграцию с VPN. | |||
== 1. Архитектура ZeroTier == | |||
ZeroTier строит оверлейную сеть на основе peer-to-peer соединений. Каждый узел (node) имеет уникальный 10-значный идентификатор (Node ID). Сети идентифицируются по 16-значному идентификатору (Network ID). Управление сетями осуществляется через веб-панель (my.zerotier.com) или через API. | |||
ZeroTier | Ключевые понятия: | ||
* **Network ID** — идентификатор вашей частной сети. | |||
* **Node ID** — идентификатор каждого устройства. | |||
* **Flow Rules** — правила фильтрации трафика в сети. | |||
* **Managed Routes** — маршруты, которые ZeroTier автоматически добавляет на клиентские устройства. | |||
== 2. Управление сетью через веб-панель == | |||
После создания сети в панели управления вы можете: | |||
# Изменять имя сети и описание. | |||
# Управлять членами сети (одобрять/блокировать). | |||
# Назначать статические IP-адреса устройствам. | |||
# Настраивать маршруты и DNS. | |||
# Включать/отключать правила безопасности. | |||
### 2.1. Назначение статических IP === | |||
В разделе «Members» выберите устройство, нажмите на его Node ID, и в поле «IP Assignments» добавьте нужный IP (например, <code>192.168.192.10</code>). Теперь этот узел всегда будет получать этот адрес. | |||
### 2.2. Управление доступом === | |||
Вы можете разрешить или запретить доступ к сети для каждого устройства индивидуально, а также настроить правила фильтрации трафика (например, запретить ICMP или разрешить только определённые порты). | |||
== 3. Маршрутизация между сетями (Managed Routes) == | |||
ZeroTier позволяет маршрутизировать трафик между вашей виртуальной сетью и другими сетями (например, локальной сетью офиса или подсетями VPN). | |||
=== 3.1. Добавление маршрута === | |||
В настройках сети перейдите в «Managed Routes» → «Add Route». Укажите: | |||
* **Target** — целевую подсеть (например, <code>192.168.1.0/24</code>). | |||
* **Via** — IP-адрес узла ZeroTier, который будет служить шлюзом (например, <code>192.168.192.2</code> — адрес вашего сервера в ZeroTier). | |||
Теперь все устройства в ZeroTier-сети будут знать, как достичь подсети <code>192.168.1.0/24</code> через узел с IP <code>192.168.192.2</code>. | |||
=== 3.2. Включение IP-форвардинга на узле-шлюзе === | |||
На узле, который выступает шлюзом, нужно включить пересылку пакетов и настроить NAT (если требуется доступ в интернет). | |||
На Linux выполните: | |||
<pre> | |||
sudo sysctl -w net.ipv4.ip_forward=1 | |||
sudo sysctl -w net.ipv6.conf.all.forwarding=1 | |||
</pre> | |||
Чтобы сохранить навсегда, раскомментируйте <code>net.ipv4.ip_forward=1</code> в <code>/etc/sysctl.conf</code>. | |||
Настройте правила iptables для NAT (если целевая сеть не имеет прямого маршрута обратно): | |||
<pre> | |||
sudo iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -o eth0 -j MASQUERADE | |||
</pre> | |||
Замените <code>eth0</code> на ваш внешний интерфейс. | |||
== 4. Создание моста (Bridge) с локальной сетью == | |||
Если вы хотите, чтобы устройства в ZeroTier были частью вашей физической локальной сети (получали IP-адреса от вашего DHCP-сервера), используйте режим моста. | |||
=== 4.1. Настройка на Linux === | |||
# Установите пакет <code>bridge-utils</code>: <code>sudo apt install bridge-utils</code>. | |||
# Остановите ZeroTier: <code>sudo systemctl stop zerotier-one</code>. | |||
# Отредактируйте конфигурацию <code>/var/lib/zerotier-one/local.conf</code>, добавьте: | |||
<pre> | |||
{ | |||
"settings": { | |||
"interfacePrefixBlacklist": ["zt"] | |||
} | |||
} | |||
</pre> | |||
# Запустите ZeroTier: <code>sudo systemctl start zerotier-one</code>. | |||
# Присоединитесь к сети: <code>sudo zerotier-cli join <network_id></code>. | |||
# В веб-панели разрешите этому узлу быть мостом (включите опцию «Allow Ethernet Bridging» для этого устройства). | |||
# Создайте сетевой мост, объединяющий физический интерфейс (eth0) и интерфейс ZeroTier (обычно ztXXXXXXXXXX): | |||
<pre> | |||
sudo ip link add name br0 type bridge | |||
sudo ip link set eth0 master br0 | |||
sudo ip link set ztXXXXXXXXXX master br0 | |||
sudo ip link set br0 up | |||
</pre> | |||
# Настройте IP-адрес на мосту (например, через DHCP или статически). | |||
Теперь устройства, подключённые к ZeroTier, будут получать IP-адреса из того же пула, что и локальные компьютеры. | |||
=== 4.2. Настройка на Windows и macOS === | |||
На Windows и macOS мост обычно настраивается через графический интерфейс сетевых подключений, объединяя адаптеры ZeroTier и физический Ethernet в один мост. | |||
== 5. Настройка DNS в ZeroTier == | |||
ZeroTier позволяет централизованно управлять DNS-резолвингом для всех устройств в сети. | |||
В настройках сети (веб-панель) в разделе «DNS» укажите: | |||
* **Domain** — основное доменное имя (например, <code>myzt.local</code>). | |||
* **Servers** — IP-адреса DNS-серверов (можно указать ваш локальный DNS или публичный, например, <code>8.8.8.8</code>). | |||
* **Search Domains** — дополнительные домены для поиска. | |||
После сохранения клиенты ZeroTier будут использовать эти настройки (при условии, что в их настройках сети разрешено применение DNS через ZeroTier). На Linux это требует ручного управления через <code>resolvectl</code> или systemd-resolved. | |||
Пример для Linux: | |||
<pre> | |||
sudo resolvectl dns ztXXXXXXXXXX 192.168.192.1 | |||
sudo resolvectl domain ztXXXXXXXXXX myzt.local | |||
</pre> | |||
== 6. ZeroTier в Docker == | |||
Запуск ZeroTier в контейнере удобен для маршрутизации или мостов без установки на хост. | |||
=== 6.1. Запуск контейнера ZeroTier === | |||
Используйте официальный образ: | |||
<pre> | |||
docker run -d --name zerotier \ | |||
--cap-add NET_ADMIN --cap-add SYS_ADMIN \ | |||
--device /dev/net/tun \ | |||
--net host \ | |||
zerotier/zerotier:latest | |||
</pre> | |||
Присоединитесь к сети: | |||
<pre> | |||
docker exec zerotier zerotier-cli join <network_id> | |||
</pre> | |||
Для сохранения состояния (идентификатора узла) монтируйте том <code>/var/lib/zerotier-one</code>: | |||
<pre> | |||
docker run -d --name zerotier \ | |||
-v zerotier_data:/var/lib/zerotier-one \ | |||
--cap-add NET_ADMIN --cap-add SYS_ADMIN \ | |||
--device /dev/net/tun \ | |||
--net host \ | |||
zerotier/zerotier:latest | |||
</pre> | |||
=== 6.2. Использование контейнера как шлюза === | |||
Вы можете запустить контейнер с включённым IP-форвардингом и настроить его как маршрутизатор для других контейнеров или внешних сетей. Для этого используйте параметры <code>--cap-add</code> и настройте iptables внутри контейнера. | |||
== 7. Интеграция ZeroTier с VPN (OpenVPN/WireGuard) == | |||
ZeroTier может работать совместно с классическими VPN для создания гибридной сети. Например, вы можете поднять OpenVPN-сервер на узле ZeroTier и маршрутизировать трафик через него. | |||
Пример: на узле с ZeroTier запустите WireGuard, который будет принимать подключения из интернета и перенаправлять их в ZeroTier-сеть. Настройте маршруты на WireGuard-клиентах так, чтобы они знали о ZeroTier-подсети. | |||
Альтернативно, вы можете использовать ZeroTier как транспорт для WireGuard, чтобы избежать проблем с NAT (но это обычно избыточно). | |||
== 8. Управление через API == | |||
ZeroTier предоставляет REST API для автоматизации. Используйте токен доступа из веб-панели. | |||
Пример получения списка сетей: | |||
<pre> | |||
curl -H "Authorization: Bearer <токен>" https://api.zerotier.com/api/v1/network | |||
</pre> | |||
Автоматизировать добавление/удаление устройств можно с помощью скриптов. | |||
== 9. Безопасность и рекомендации == | |||
* Всегда используйте закрытые сети (с опцией «Private»), чтобы новые устройства не могли подключиться без вашего одобрения. | |||
* Назначайте статические IP для критически важных узлов. | |||
* Ограничьте доступ к панели управления ZeroTier (my.zerotier.com) через двухфакторную аутентификацию. | |||
* Для особо чувствительных данных используйте шифрование на уровне приложений (например, HTTPS для Nextcloud). | |||
* Регулярно проверяйте список членов сети и удаляйте неиспользуемые устройства. | |||
* При работе с мостами будьте осторожны: неправильные настройки могут вызвать конфликты IP или петли в сети. | |||
== 10. Полезные команды == | |||
{| class="wikitable" | |||
|- | |||
! Команда !! Назначение | |||
|- | |||
| <code>sudo zerotier-cli status</code> || статус демона | |||
|- | |||
| <code>sudo zerotier-cli listnetworks</code> || список подключённых сетей | |||
|- | |||
| <code>sudo zerotier-cli join <network_id></code> || присоединиться к сети | |||
|- | |||
| <code>sudo zerotier-cli leave <network_id></code> || покинуть сеть | |||
|- | |||
| <code>sudo zerotier-cli set <network_id> allowManaged=1</code> || включить управляемые маршруты | |||
|- | |||
| <code>sudo zerotier-cli get <network_id> ip</code> || показать IP-адрес в сети | |||
|- | |||
| <code>sudo zerotier-cli peers</code> || список пиров (других узлов) | |||
|} | |||
== См. также == | |||
* [[Linux]] – установка ZeroTier на Linux | |||
* [[Windows]] – установка на Windows | |||
* [[macOS]] – установка на macOS | |||
* [[Docker]] – контейнеризация ZeroTier | |||
* [[NAS]] – доступ к NAS через ZeroTier | |||
* [[Nextcloud]] – доступ к Nextcloud через ZeroTier | |||
* [[VPN]] – сравнение с классическими VPN | |||
[[Категория:Сети]] | |||
[[Категория:ZeroTier]] | |||
[[Категория:Интеграция]] | |||
Версия от 12:28, 4 августа 2026
ZeroTier: расширенные сценарии и интеграция
ZeroTier — это программное обеспечение для создания виртуальных частных сетей (SD-WAN), которое объединяет устройства из любой точки мира в одну безопасную сеть, как если бы они находились в одной локальной сети. В базовых статьях (Linux, Windows, macOS) мы рассмотрели установку и присоединение к сети. В этой статье мы углубимся в продвинутую настройку: маршрутизацию, мосты, настройку DNS, работу с Docker и интеграцию с VPN.
1. Архитектура ZeroTier
ZeroTier строит оверлейную сеть на основе peer-to-peer соединений. Каждый узел (node) имеет уникальный 10-значный идентификатор (Node ID). Сети идентифицируются по 16-значному идентификатору (Network ID). Управление сетями осуществляется через веб-панель (my.zerotier.com) или через API.
Ключевые понятия:
- **Network ID** — идентификатор вашей частной сети.
- **Node ID** — идентификатор каждого устройства.
- **Flow Rules** — правила фильтрации трафика в сети.
- **Managed Routes** — маршруты, которые ZeroTier автоматически добавляет на клиентские устройства.
2. Управление сетью через веб-панель
После создания сети в панели управления вы можете:
- Изменять имя сети и описание.
- Управлять членами сети (одобрять/блокировать).
- Назначать статические IP-адреса устройствам.
- Настраивать маршруты и DNS.
- Включать/отключать правила безопасности.
- 2.1. Назначение статических IP ===
В разделе «Members» выберите устройство, нажмите на его Node ID, и в поле «IP Assignments» добавьте нужный IP (например, 192.168.192.10). Теперь этот узел всегда будет получать этот адрес.
- 2.2. Управление доступом ===
Вы можете разрешить или запретить доступ к сети для каждого устройства индивидуально, а также настроить правила фильтрации трафика (например, запретить ICMP или разрешить только определённые порты).
3. Маршрутизация между сетями (Managed Routes)
ZeroTier позволяет маршрутизировать трафик между вашей виртуальной сетью и другими сетями (например, локальной сетью офиса или подсетями VPN).
3.1. Добавление маршрута
В настройках сети перейдите в «Managed Routes» → «Add Route». Укажите:
- **Target** — целевую подсеть (например,
192.168.1.0/24). - **Via** — IP-адрес узла ZeroTier, который будет служить шлюзом (например,
192.168.192.2— адрес вашего сервера в ZeroTier).
Теперь все устройства в ZeroTier-сети будут знать, как достичь подсети 192.168.1.0/24 через узел с IP 192.168.192.2.
3.2. Включение IP-форвардинга на узле-шлюзе
На узле, который выступает шлюзом, нужно включить пересылку пакетов и настроить NAT (если требуется доступ в интернет).
На Linux выполните:
sudo sysctl -w net.ipv4.ip_forward=1 sudo sysctl -w net.ipv6.conf.all.forwarding=1
Чтобы сохранить навсегда, раскомментируйте net.ipv4.ip_forward=1 в /etc/sysctl.conf.
Настройте правила iptables для NAT (если целевая сеть не имеет прямого маршрута обратно):
sudo iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -o eth0 -j MASQUERADE
Замените eth0 на ваш внешний интерфейс.
4. Создание моста (Bridge) с локальной сетью
Если вы хотите, чтобы устройства в ZeroTier были частью вашей физической локальной сети (получали IP-адреса от вашего DHCP-сервера), используйте режим моста.
4.1. Настройка на Linux
- Установите пакет
bridge-utils:sudo apt install bridge-utils. - Остановите ZeroTier:
sudo systemctl stop zerotier-one. - Отредактируйте конфигурацию
/var/lib/zerotier-one/local.conf, добавьте:
{
"settings": {
"interfacePrefixBlacklist": ["zt"]
}
}
- Запустите ZeroTier:
sudo systemctl start zerotier-one. - Присоединитесь к сети:
sudo zerotier-cli join <network_id>. - В веб-панели разрешите этому узлу быть мостом (включите опцию «Allow Ethernet Bridging» для этого устройства).
- Создайте сетевой мост, объединяющий физический интерфейс (eth0) и интерфейс ZeroTier (обычно ztXXXXXXXXXX):
sudo ip link add name br0 type bridge sudo ip link set eth0 master br0 sudo ip link set ztXXXXXXXXXX master br0 sudo ip link set br0 up
- Настройте IP-адрес на мосту (например, через DHCP или статически).
Теперь устройства, подключённые к ZeroTier, будут получать IP-адреса из того же пула, что и локальные компьютеры.
4.2. Настройка на Windows и macOS
На Windows и macOS мост обычно настраивается через графический интерфейс сетевых подключений, объединяя адаптеры ZeroTier и физический Ethernet в один мост.
5. Настройка DNS в ZeroTier
ZeroTier позволяет централизованно управлять DNS-резолвингом для всех устройств в сети.
В настройках сети (веб-панель) в разделе «DNS» укажите:
- **Domain** — основное доменное имя (например,
myzt.local). - **Servers** — IP-адреса DNS-серверов (можно указать ваш локальный DNS или публичный, например,
8.8.8.8). - **Search Domains** — дополнительные домены для поиска.
После сохранения клиенты ZeroTier будут использовать эти настройки (при условии, что в их настройках сети разрешено применение DNS через ZeroTier). На Linux это требует ручного управления через resolvectl или systemd-resolved.
Пример для Linux:
sudo resolvectl dns ztXXXXXXXXXX 192.168.192.1 sudo resolvectl domain ztXXXXXXXXXX myzt.local
6. ZeroTier в Docker
Запуск ZeroTier в контейнере удобен для маршрутизации или мостов без установки на хост.
6.1. Запуск контейнера ZeroTier
Используйте официальный образ:
docker run -d --name zerotier \ --cap-add NET_ADMIN --cap-add SYS_ADMIN \ --device /dev/net/tun \ --net host \ zerotier/zerotier:latest
Присоединитесь к сети:
docker exec zerotier zerotier-cli join <network_id>
Для сохранения состояния (идентификатора узла) монтируйте том /var/lib/zerotier-one:
docker run -d --name zerotier \ -v zerotier_data:/var/lib/zerotier-one \ --cap-add NET_ADMIN --cap-add SYS_ADMIN \ --device /dev/net/tun \ --net host \ zerotier/zerotier:latest
6.2. Использование контейнера как шлюза
Вы можете запустить контейнер с включённым IP-форвардингом и настроить его как маршрутизатор для других контейнеров или внешних сетей. Для этого используйте параметры --cap-add и настройте iptables внутри контейнера.
7. Интеграция ZeroTier с VPN (OpenVPN/WireGuard)
ZeroTier может работать совместно с классическими VPN для создания гибридной сети. Например, вы можете поднять OpenVPN-сервер на узле ZeroTier и маршрутизировать трафик через него.
Пример: на узле с ZeroTier запустите WireGuard, который будет принимать подключения из интернета и перенаправлять их в ZeroTier-сеть. Настройте маршруты на WireGuard-клиентах так, чтобы они знали о ZeroTier-подсети.
Альтернативно, вы можете использовать ZeroTier как транспорт для WireGuard, чтобы избежать проблем с NAT (но это обычно избыточно).
8. Управление через API
ZeroTier предоставляет REST API для автоматизации. Используйте токен доступа из веб-панели.
Пример получения списка сетей:
curl -H "Authorization: Bearer <токен>" https://api.zerotier.com/api/v1/network
Автоматизировать добавление/удаление устройств можно с помощью скриптов.
9. Безопасность и рекомендации
- Всегда используйте закрытые сети (с опцией «Private»), чтобы новые устройства не могли подключиться без вашего одобрения.
- Назначайте статические IP для критически важных узлов.
- Ограничьте доступ к панели управления ZeroTier (my.zerotier.com) через двухфакторную аутентификацию.
- Для особо чувствительных данных используйте шифрование на уровне приложений (например, HTTPS для Nextcloud).
- Регулярно проверяйте список членов сети и удаляйте неиспользуемые устройства.
- При работе с мостами будьте осторожны: неправильные настройки могут вызвать конфликты IP или петли в сети.
10. Полезные команды
| Команда | Назначение |
|---|---|
sudo zerotier-cli status |
статус демона |
sudo zerotier-cli listnetworks |
список подключённых сетей |
sudo zerotier-cli join <network_id> |
присоединиться к сети |
sudo zerotier-cli leave <network_id> |
покинуть сеть |
sudo zerotier-cli set <network_id> allowManaged=1 |
включить управляемые маршруты |
sudo zerotier-cli get <network_id> ip |
показать IP-адрес в сети |
sudo zerotier-cli peers |
список пиров (других узлов) |