Перейти к основному содержанию

Tailscale при работе в macOS

Для доступа к своим серверам и компьютерам использую Tailscale . Потому что удобно, безопасно и есть возможность получать доступ к серверам за NAT без особых проблем.

На домашнем компьютере с macOS проводил установку Tailscale через homebrew cask и не встречал особых проблем. Когда же попытался использовать Tailscale на ноутбуке, на котором постоянно работает OpenVPN, столкнулся с тем, что при подключении теряю доступ к своей приватной сети в Tailscale. Долго пытался разобраться в чем причина, пока не натолкнулся на страницу документации: Three ways to run Tailscale on macOS , где все расписано.

Проблема заключалась в том, что Tailscale, установленный из AppStore использует сетевое расширение. И в случае с macOS нет возможности использовать несколько приложений с сетевыми расширениями одновременно.

Решил попробовать устанавливать Tailscale через cli. Есть два способа, хотя в документации описывается только один.

Homebrew

Есть возможность установить cli-версию Tailscale через homebrew.

Для установки cask версии используется команда:

brew install homebrew/cask/tailscale

После чего достаточно запустить обычное приложение Tailscale, и управлять им из статусбара. А для установки консольной версии приложения:

brew install tailscale

Вот тут начинаются проблемы. В подсказке homebrew указывается, что для запуска сервиса нужно использовать команду:

brew services restart tailscale

Но при попытке ее использования понятно, что ничего не происходит. Точнее файлы сервиса создаются, но сам сервис не стартует. Прав не достает. И в результате необходимо использовать команду:

sudo brew services restart tailscale

В этом случае сервис будет запускаться от имени системы, и будет работать. Но, опять есть но. Создаются сервисные файлы от имени суперпользователя, которые не могут быть перезаписаны при апгрейде версии Tailscale. И нужно вручную их все удалять перед проведением обновления версии. Немного муторно, но главное, что работает.

Компиляция

Да, второй способ установки консольной версии Tailscale описан в документации на странице Tailscaled on macOS .

На компьютере необходимо иметь установленный Golang. И установка проводиться одной командой:

go install tailscale.com/cmd/tailscale{,d}@main

для установки определенной версии:

go install tailscale.com/cmd/tailscale{,d}@v1.32.2

Для установки сервисных файлов и запуска сервис используется команда:

sudo $HOME/go/bin/tailscaled install-system-daemon

После чего уже от имени текущего пользователя можно запускать tailscale для проведения аутентификации и доступа к своей приватной сети.

Итог

Обычно я устанавливаю все программы на macOS с помощью Homebrew. Но в данном случае из-за сложности с правами доступа к файлам пришлось написать отдельный скрипт для проведения обновления Tailscale через компиляцию. По времени это занимает несколько секунд и нисколько не обременяет.

Да, лишился привычного GUI, но по сути в нем мне нужен был только список моих компьютеров. Что доступно и из консоли. В результате ничего не потерял.

При этом из-за того, что консольная версия работает с использованием utun сетевого интерфейса, это позволяет одновременно работать с несколькими типами VPN.

Таким образом проблема с доступом была решена.