Инструменты пользователя

Инструменты сайта


selfhosted:zerotier

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
selfhosted:zerotier [2026/04/27 14:18] – init: ZeroTier deep-dive melnoffselfhosted:zerotier [2026/04/27 18:03] (текущий) – controller upgraded 1.14.1 -> 1.16.0 melnoff
Строка 22: Строка 22:
  
 ^ Узел / Description ^ ZT addr ^ ZT IP ^ Public/LAN endpoint ^ Заметки ^ ^ Узел / Description ^ ZT addr ^ ZT IP ^ Public/LAN endpoint ^ Заметки ^
-| Контроллер + moon (хост ''zt.melnoff.com'') | ''c53bc939c1'' | ''172.25.30.225'' | ''94.103.86.3:9993'' | Linux Oracle 10. ZT крутится в Docker (zyclonite/zerotier:1.14.1). Web UI = ztnet. |+| Контроллер + moon (хост ''zt.melnoff.com'') | ''c53bc939c1'' | ''172.25.30.225'' | ''94.103.86.3:9993'' | Linux Oracle 10. ZT крутится в Docker (zyclonite/zerotier:1.16.0). Web UI = ztnet. |
 | Этот мак | ''54dcf8821c'' | ''172.25.30.11'' | ''212.74.229.169:9993'' | macOS, ZT 1.16.1, ''feth2340'' интерфейс. | | Этот мак | ''54dcf8821c'' | ''172.25.30.11'' | ''212.74.229.169:9993'' | macOS, ZT 1.16.1, ''feth2340'' интерфейс. |
 | Узел "imelnikov" | (см. контроллер) | ''172.25.30.10'' | — | Доступ ''ssh imelnikov@172.25.30.10''. | | Узел "imelnikov" | (см. контроллер) | ''172.25.30.10'' | — | Доступ ''ssh imelnikov@172.25.30.10''. |
Строка 52: Строка 52:
  
 ^ Контейнер ^ Образ ^ Порт ^ Назначение ^ ^ Контейнер ^ Образ ^ Порт ^ Назначение ^
-| ''zerotier'' | ''zyclonite/zerotier:1.14.1'' | UDP 9993 (host network) | Сам ZT-демон в режиме контроллера. ZT-addr ''c53bc939c1''. |+| ''zerotier'' | ''zyclonite/zerotier:1.16.0'' | UDP 9993 (host network) | Сам ZT-демон в режиме контроллера. ZT-addr ''c53bc939c1''. |
 | ''ztnet'' | ''sinamics/ztnet:latest'' | ''3000'' (HTTP) | Современный web UI/API для управления контроллером. | | ''ztnet'' | ''sinamics/ztnet:latest'' | ''3000'' (HTTP) | Современный web UI/API для управления контроллером. |
 | ''postgres'' | ''postgres:16-alpine'' | (internal) | БД для ztnet. | | ''postgres'' | ''postgres:16-alpine'' | (internal) | БД для ztnet. |
  
-⚠️ Версия zerotier-демона **1.14.1** — стараяНа клиентах уже 1.16.x. Пока работает, но в долгосрочной перспективе стоит обновить до 1.16.x (для возможного улучшения WHOIS-протокола).+Обновлён до 1.16.0 на 2026-04-27 (in-place recreate с named volume ''ztnet_zerotier''; identity и БД members сохранены)Compose-файл: ''/opt/ztnet/docker-compose.yml''Бэкап volume оставлен в ''/root/zt-volume-backup-*.tgz''.
  
 ==== Полезные команды на контроллере ==== ==== Полезные команды на контроллере ====
Строка 245: Строка 245:
   * [[https://github.com/sinamics/ztnet|ztnet (controller UI)]]   * [[https://github.com/sinamics/ztnet|ztnet (controller UI)]]
   * [[selfhosted:hardware|Где физически живут участники сети]]   * [[selfhosted:hardware|Где физически живут участники сети]]
 +
 +===== Резервная копия moon-файла =====
 +
 +На случай, если контроллер ''zt.melnoff.com'' будет недоступен (катастрофа / блокировка / порт 9993 закрыт), а нужно поднять новый клиент — вот канонический moon-файл в base64.
 +
 +В файле **нет** приватных ключей — только публичная identity moon-узла, его stable endpoint и подпись world'а. Поэтому хранить его в публичной wiki безопасно.
 +
 +  * **Имя файла:** ''000000c53bc939c1.moon''
 +  * **Размер:** 259 байт
 +  * **SHA-256:** ''76e8a39807413a5b650c61d133d53285492484af0a7d519cf72a86dd3ce76cf6''
 +  * **Извлечён с:** ''zt.melnoff.com:/var/lib/zerotier-one/moons.d/000000c53bc939c1.moon'' (в Docker-контейнере ''zerotier'').
 +
 +==== Содержимое (base64) ====
 +
 +<file text moon.b64>
 +fwAAAMU7yTnBAAABnK+hl0TThMZt6mNZ+M7RQUomXAqP14FfhYP31JFStqq/jyPQcZjitqCMpAHybQcKvbtOW+8oLS2CSNAxzpru31jfdZwqwP1gRqQV7UP6nk+nGmCJcToCv+gF4CUe+JiQaLRXpQEPkeSeSREa4W/4DQ/2NmxR0J7qdLPYWmzZhWknkTbrCzr/9qY6M14n+j2IIPrWKO18x06B6Ed1HZ/Z2KIIlcwVAcU7yTnBALm27ZEIiAep3L8bws8Jwp88Q1I52ZzB8iUyNesmZbJ74rWPvgYpHJq5p66QE4l5x3wAkt0LZ3IqD4TSoVcatj0AAQReZ1YDJwkAAA==
 +</file>
 +
 +==== Восстановление на новом клиенте ====
 +
 +=== Linux ===
 +
 +<code bash>
 +# 1. Декодировать в правильное имя файла
 +mkdir -p /var/lib/zerotier-one/moons.d
 +echo 'fwAAAMU7yTnBAAABnK+hl0TThMZt6mNZ+M7RQUomXAqP14FfhYP31JFStqq/jyPQcZjitqCMpAHybQcKvbtOW+8oLS2CSNAxzpru31jfdZwqwP1gRqQV7UP6nk+nGmCJcToCv+gF4CUe+JiQaLRXpQEPkeSeSREa4W/4DQ/2NmxR0J7qdLPYWmzZhWknkTbrCzr/9qY6M14n+j2IIPrWKO18x06B6Ed1HZ/Z2KIIlcwVAcU7yTnBALm27ZEIiAep3L8bws8Jwp88Q1I52ZzB8iUyNesmZbJ74rWPvgYpHJq5p66QE4l5x3wAkt0LZ3IqD4TSoVcatj0AAQReZ1YDJwkAAA==' \
 +  | base64 -d > /var/lib/zerotier-one/moons.d/000000c53bc939c1.moon
 +
 +# 2. Проверить (sha256 должен совпасть)
 +sha256sum /var/lib/zerotier-one/moons.d/000000c53bc939c1.moon
 +# ожидаем: 76e8a39807413a5b650c61d133d53285492484af0a7d519cf72a86dd3ce76cf6
 +
 +# 3. Перезапустить демон
 +sudo systemctl restart zerotier-one
 +
 +# 4. Убедиться что moon подхватился
 +sudo zerotier-cli listmoons
 +</code>
 +
 +=== macOS ===
 +
 +<code bash>
 +sudo mkdir -p "/Library/Application Support/ZeroTier/One/moons.d"
 +echo 'fwAAAMU7yTnBAAABnK+hl0TThMZt6mNZ+M7RQUomXAqP14FfhYP31JFStqq/jyPQcZjitqCMpAHybQcKvbtOW+8oLS2CSNAxzpru31jfdZwqwP1gRqQV7UP6nk+nGmCJcToCv+gF4CUe+JiQaLRXpQEPkeSeSREa4W/4DQ/2NmxR0J7qdLPYWmzZhWknkTbrCzr/9qY6M14n+j2IIPrWKO18x06B6Ed1HZ/Z2KIIlcwVAcU7yTnBALm27ZEIiAep3L8bws8Jwp88Q1I52ZzB8iUyNesmZbJ74rWPvgYpHJq5p66QE4l5x3wAkt0LZ3IqD4TSoVcatj0AAQReZ1YDJwkAAA==' \
 +  | base64 -D | sudo tee "/Library/Application Support/ZeroTier/One/moons.d/000000c53bc939c1.moon" > /dev/null
 +
 +# Перезапуск
 +sudo launchctl kickstart -k system/com.zerotier.one
 +sudo zerotier-cli listmoons
 +</code>
 +
 +=== Windows (PowerShell, admin) ===
 +
 +<code powershell>
 +$b64 = 'fwAAAMU7yTnBAAABnK+hl0TThMZt6mNZ+M7RQUomXAqP14FfhYP31JFStqq/jyPQcZjitqCMpAHybQcKvbtOW+8oLS2CSNAxzpru31jfdZwqwP1gRqQV7UP6nk+nGmCJcToCv+gF4CUe+JiQaLRXpQEPkeSeSREa4W/4DQ/2NmxR0J7qdLPYWmzZhWknkTbrCzr/9qY6M14n+j2IIPrWKO18x06B6Ed1HZ/Z2KIIlcwVAcU7yTnBALm27ZEIiAep3L8bws8Jwp88Q1I52ZzB8iUyNesmZbJ74rWPvgYpHJq5p66QE4l5x3wAkt0LZ3IqD4TSoVcatj0AAQReZ1YDJwkAAA=='
 +$dir = 'C:\ProgramData\ZeroTier\One\moons.d'
 +New-Item -ItemType Directory -Force -Path $dir | Out-Null
 +[IO.File]::WriteAllBytes("$dir\000000c53bc939c1.moon", [Convert]::FromBase64String($b64))
 +Restart-Service ZeroTierOneService
 +& 'C:\Program Files (x86)\ZeroTier\One\zerotier-cli.bat' listmoons
 +</code>
 +
 +==== Альтернатива — без файла ====
 +
 +Если узел может достучаться до публичных planet'ов ZT, можно обойтись без файла — одной командой:
 +
 +<code bash>
 +sudo zerotier-cli orbit c53bc939c1 c53bc939c1
 +</code>
 +
 +Демон сам найдёт identity moon-узла через planet'ы. Это проще, но требует, чтобы хотя бы при первом запуске planet'ы были достижимы.
  
selfhosted/zerotier.1777288729.txt.gz · Последнее изменение: melnoff