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.
Таким образом проблема с доступом была решена.