Repolode
tailscale

tailscale/tailcat

Tailscaleの暗号化データプレーン経由で2台のマシン間にTCP/UDPトンネルを張る、netcat風CLIとGoライブラリ。

代替できる製品:ngrokMagic Wormhole

スター
8,405
フォーク
377
未解決の Issue
29
最終コミット
11 日前

これは何?

Tailcatは、Tailscaleのオープンソースネットワークコンポーネントを使って構築した、WireGuardで暗号化された2台間のトンネルを通じて通信できます。一方のマシンでサーバーを起動すると短いtailcatアドレスが表示され、もう一方のマシンはそのアドレスを使って接続します。接続メタデータは別経路で交換されるため、Tailscaleのコントロールプレーンやアカウント、root権限は不要で、システムのルーティングやDNSを変更する必要もありません。

通信はまずDERPリレーを経由して確立され、その後magicsockがNATトラバーサルを試み、可能であれば直接UDP通信に切り替えます。直接通信できない場合はリレーを使い続けます。stdin/stdoutのパイプに加え、ポートフォワーディング、SSHサーバーの実行、SFTPやscpによるファイルの送受信、接続ごとのコマンド実行、スループットとレイテンシの測定にも対応しています。同じ機能を利用できるGoライブラリもあり、実験的なWebAssemblyブラウザデモも公開されています。

事前共有鍵を含むアドレスは秘密情報として扱う必要があります。そのため、DNSで公開する前に、許可リストやSSH鍵認証を使ってサーバーへのアクセスを制限してください。

主な機能

  • 01暗号化トンネルを通じて、2台のマシン間でstdin/stdoutをパイプします。
  • 02ローカルのTCPポートをリモートサービスに転送し、トンネル経由でローカルポートを公開します。
  • 03authorized_keysまたはGitHubの鍵認証に対応したSSHサーバーを提供します。
  • 04scp/SFTPでファイルを送受信でき、読み取り専用または読み書き可能な公開モードを選べます。
  • 05トンネル経由のTCP/UDPスループットとレイテンシを測定します。
  • 06root権限やTailscaleアカウントが不要で、システムのネットワーク設定も変更せずに動作します。

ユースケース

  • インバウンドポートを開けずに、ローカルのサービスやファイルを同僚と手早く共有する。
  • ネットワーク全体を公開せずに、リモートLAN上のデータベースやadbポートに接続する。
  • ホスト側でインバウンドポートを開かずに、DNS名で接続できるSSHサーバーを実行する。
  • ライブラリを使って、Goアプリケーションにピアツーピアの暗号化接続を組み込む。

トピック

よくある質問

tailcat とは?
Tailscaleの暗号化データプレーン経由で2台のマシン間にTCP/UDPトンネルを張る、netcat風CLIとGoライブラリ。 Tailcatは、Tailscaleのオープンソースネットワークコンポーネントを使って構築した、WireGuardで暗号化された2台間のトンネルを通じて通信できます。一方のマシンでサーバーを起動すると短いtailcatアドレスが表示され、もう一方のマシンはそのアドレスを使って接続します。接続メタデータは別経路で交換されるため、Tailscaleのコントロールプレーンやアカウント、root権限は不要で、システムのルーティングやDNSを変更する必要もありません。
tailcat は無料で使えますか?ライセンスは?
tailcat は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
tailcat は今もメンテナンスされていますか?
活発にメンテナンス中。tailcat の最終コミットは 2026年10月7日 です。
tailcat は何に使えますか?
インバウンドポートを開けずに、ローカルのサービスやファイルを同僚と手早く共有する。 ネットワーク全体を公開せずに、リモートLAN上のデータベースやadbポートに接続する。 ホスト側でインバウンドポートを開かずに、DNS名で接続できるSSHサーバーを実行する。 ライブラリを使って、Goアプリケーションにピアツーピアの暗号化接続を組み込む。
tailcat はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tailscale/tailcat

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト