gitverse new year логотип

headscale

Шаблон
Форк
0
Использовать шаблон

24 дня назад
месяц назад
24 дня назад
24 дня назад
README.md

headscale

Проект Headscale реализует открытый серверный компонент виртуальной сети Tailscale, который позволяет создавать сети, схожие с Tailscale, без привязки к сторонним сервисам. Код Headscale написан на языке Go и распространяется под лицензией BSD.

Tailscale позволяет объединить любое количество территориально разнесённых хостов в одну сеть, построенную по образу mesh-сети, в которой каждый узел взаимодействует с другими узлами напрямую (P2P) или через соседние узлы, без передачи трафика через централизованные внешние серверы VPN-провайдера. Поддерживается управление доступом и маршрутами на основе ACL. Для установки каналов связи в условиях применения трансляторов адресов (NAT) предоставляется поддержка механизмов STUN, ICE и DERP (аналог TURN, но на базе HTTPS). В случае блокировки канала связи между определёнными узлами сеть может перестраивать маршрутизацию для направления трафика через другие узлы.

(Caddy + Headscale)

Простой способ запустить Headscale в связке с Caddy.

Для запуска понадобится:

  • Сервер (Виртуальная машина) - например Free tier от Cloud.ru
  • Доменное имя

Запуск:

  1. Клонируем репозиторий
  2. Переходим в каталог headscale и создаем файл .env с переменными для Caddy
BASE_NETWORK_DOMAIN='test-headscale.ru' BASE_EMAIL='admin@test-headscale.ru'
  1. Для быстрого старта в файле конфигурации data/headscale/config/config.yaml необходимо отредактировать два значения:
  • server_url: https://homelocal.domain.ru - (строка 13. Доменное имя в интернете)
  • base_domain: home.local - (строка 270. Локальное доменное имя внутри сети)
  1. Запускаем файл Docker Compose
docker compose up -d
  1. Для проверки работоспособности переходим на страницу https://Ваш_домен/windows должна открыться страница с регистрацией клиента для Windows.

[!NOTE] Более подробную инструкцию можно посмотреть тут: https://linux.31bel.ru/post/install-headscale/.

(Caddy + Headscale + Cloudflare)

Для работы нам необходим аккаунт на Cloudflare в котором нужно добавить наш домен и создать API Tokens. При создании токена выберите следующие разрешения:

  • Zone - Zone - Read
  • Zone - DNS - Edit

Далее необходимо отредактировать несколько файлов. В файл .env необходимо добавить переменную CLOUDFLARE_API_TOKEN='' с токеном. В файле docker-compose.yml необходимо раскомментировать 4 и 21 строку для смены образа docker в котором есть модуль Cloudflare и закомментировать 3 строку.

#image: caddy:latest
image: ghcr.io/caddybuilds/caddy-cloudflare:latest
...
- CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}

В файле data/caddy/Caddyfile необходимо раскомментировать строку 3 с дополнительным параметром.

{
email {$BASE_EMAIL}
acme_dns cloudflare {$CLOUDFLARE_API_TOKEN}
}
...

[!TIP] Нюанс: при использовании доменных имен 4-того и более уровня в Cloudflare на них необходимо отключить Proxied.

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.