Repolode
tailscale

tailscale/tailcat

CLI в духе netcat и библиотека на Go для туннелирования TCP и UDP между двумя машинами через зашифрованный data plane Tailscale без учетной записи Tailscale.

Open source альтернатива:ngrokMagic Wormhole

Звёзды
8,405
Форки
377
Открытые issues
29
Последний коммит
11 дней назад

Что это?

Tailcat позволяет двум машинам обмениваться данными через точка-точка-туннель с шифрованием WireGuard, построенный на сетевых компонентах Tailscale с открытым исходным кодом. На одной машине запускают сервер, который выводит короткий адрес tailcat; на другой подключаются по этому адресу. Метаданные подключения передаются по отдельному каналу, поэтому не нужны control plane Tailscale, учетная запись, root-доступ или изменения системной маршрутизации и DNS.

Сначала трафик проходит через ретранслятор DERP, затем magicsock пытается выполнить обход NAT и, если возможно, переключиться на прямое соединение по UDP; в противном случае используется ретранслятор. Помимо передачи stdin/stdout, инструмент умеет перенаправлять порты, запускать SSH-сервер, отдавать и принимать файлы по SFTP и scp, выполнять команды для каждого подключения, а также измерять пропускную способность и задержку. Библиотека на Go предоставляет те же возможности; также доступна экспериментальная браузерная демоверсия на WebAssembly.

Адреса, содержащие предварительно заданный ключ, фактически являются секретами, поэтому перед публикацией серверов в DNS следует ограничить доступ с помощью списков разрешений или аутентификации по SSH-ключу.

Ключевые возможности

  • 01Передает stdin/stdout между двумя машинами через зашифрованный туннель.
  • 02Перенаправляет локальные TCP-порты к удаленным сервисам и открывает локальные порты через туннель.
  • 03Предоставляет SSH-сервер с аутентификацией через authorized_keys или ключ GitHub.
  • 04Отправляет и принимает файлы через scp/SFTP; поддерживаются режимы раздачи только для чтения и для чтения и записи.
  • 05Измеряет пропускную способность и задержку TCP и UDP через туннель.
  • 06Работает без root-доступа и учетной записи Tailscale, не требуя изменений системных сетевых настроек.

Сценарии использования

  • Быстро предоставить коллеге доступ к локальному сервису или файлу, не открывая входящие порты.
  • Подключиться к порту базы данных или adb в удаленной локальной сети, не открывая доступ ко всей сети.
  • Запустить SSH-сервер, доступный по DNS-имени, не открывая на хосте входящие порты.
  • Встроить зашифрованные одноранговые соединения в приложение на Go с помощью библиотеки.

Темы

Частые вопросы

Что такое tailcat?
CLI в духе netcat и библиотека на Go для туннелирования TCP и UDP между двумя машинами через зашифрованный data plane Tailscale без учетной записи Tailscale. Tailcat позволяет двум машинам обмениваться данными через точка-точка-туннель с шифрованием WireGuard, построенный на сетевых компонентах Tailscale с открытым исходным кодом. На одной машине запускают сервер, который выводит короткий адрес tailcat; на другой подключаются по этому адресу. Метаданные подключения передаются по отдельному каналу, поэтому не нужны control plane Tailscale, учетная запись, root-доступ или изменения системной маршрутизации и DNS.
tailcat можно использовать бесплатно? Какая у него лицензия?
tailcat распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tailcat всё ещё поддерживается?
Активно поддерживается. Последний коммит в tailcat — 7 окт. 2026 г..
Для чего можно использовать tailcat?
Быстро предоставить коллеге доступ к локальному сервису или файлу, не открывая входящие порты. Подключиться к порту базы данных или adb в удаленной локальной сети, не открывая доступ ко всей сети. Запустить SSH-сервер, доступный по DNS-имени, не открывая на хосте входящие порты. Встроить зашифрованные одноранговые соединения в приложение на Go с помощью библиотеки.
Где скачать tailcat?
Исходный код и инструкции по установке — на GitHub: https://github.com/tailscale/tailcat

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Минималистичный CLI на Rust, который открывает локальный TCP-порт через удалённый сервер, чтобы к сервисам на localhost можно было подключиться из интернета.

11,5 тыс.606RustMITОбновлён 9 месяцев назад