世界を動かす技術を、日本語で。

Tailscaleの使い方

概要

  • Tailscale は、WireGuardベースの VPNオーケストレーションサービス
  • 個人利用 なら無料枠でほぼ全機能が利用可能
  • MagicDNSやfunnel など便利機能が多数
  • ACLやタグ管理 による細かなアクセス制御が可能
  • 自己ホストやサーバ管理 に最適な現代的VPNソリューション

Tailscaleの概要と導入メリット

  • TailscaleWireGuard をベースにした VPN管理サービス
    • クライアントは オープンソース として公開
    • Headscale というサードパーティ製コントロールサーバも存在
  • 個人利用 に十分すぎる 無料プラン を提供
  • 多様なデバイス (PC、スマホ、サーバ、Raspberry Pi等)に対応
  • ネットワーク設定不要 で、インストール&ログインだけで利用開始
  • Tailscale IPアドレス でプライベートネットワーク構築

基本的な接続方法とSSHサポート

  • クライアントインストール後、コントロールサーバで認証
  • 異なるネットワーク間 でも シームレス接続 が可能
  • Tailscale SSH 機能により、 公開鍵やパスワード不要 でSSH接続
    • Tailscaleログイン済みなら、そのままSSH利用
    • スマホからのSSHも簡単

サービス単位での公開とMagicDNSの活用

  • 個別サービス をノードとしてtailnet上に公開可能
    • 公式DockerイメージやGoライブラリ、サードパーティツール(Centauri、tsp等)対応
  • MagicDNS により、ノード名でのアクセスが可能
    • 例:http://grafana/でアクセス
    • ノード名は自動DNS登録
    • NextDNS など特定のDNSサーバ強制も可能
  • machine.your-tailnet.ts.net 形式のアドレスも利用可能
    • コントロールパネルで再生成も可

funnel・serve機能とTLS証明書

  • funnel機能 でローカルサービスを HTTPSで外部公開 可能
    • 例:tailscale funnel 127.0.0.1:8080でグローバル公開
    • 訪問者はTailscale不要
  • serve機能 でtailnet内限定のサービス公開
    • 開発やモバイル端末からのテストに便利

認証フローのカスタマイズとプロキシ認証

  • OIDCプロバイダ (例:KeyCloak)による 独自認証フロー 構築
    • GitHubなど外部認証への依存を低減
    • セッション期間も自由設定
  • Tailscale経由のHTTPサービス に自動でユーザー情報ヘッダを付与
    • 例:Tailscale-User-Login、Tailscale-User-Name等
    • Grafana、Miniflux、Jelu、Linkding、Seafile 等でプロキシ認証利用可能

ACL・タグによるアクセス制御と失敗談

  • 初期状態 は全ノード間アクセスが可能
  • SSH再認証root制限 でセキュリティ強化
  • タグ付与 で役割ごとにノード管理
    • user、server、app、integration等
  • タグ運用の失敗 :全デバイスにuserタグを付与し、自身の認証が消失
    • タグ削除には再登録が必要
  • グラント設定 で柔軟なアクセス制御
    • 例:ユーザーデバイスのみ全アクセス、サーバ・アプリ間は限定的アクセス

その他の便利機能

  • Exit Node 機能でインターネットトラフィックもTailscale経由に
    • 信頼できないルータ環境や地域偽装に有効
  • Tailscale lock で新規ノード追加時の認証強化
  • ファイル共有機能 やその他多数の便利機能
  • サーバ管理やセルフホスト に必須級の現代VPNとして推奨

まとめ

  • Tailscale は現代的で 使いやすいVPN管理 サービス
  • 無料枠 でも十分な機能
  • サーバ・サービス管理個人のプライベートネットワーク 構築に最適
  • 今後の機能追加や発展 にも期待

Hackerたちの意見

Tailscale、めっちゃ好きなんだけど、携帯のバッテリーがすぐ減っちゃうし、WSL起動するたびにresolve.confが消えちゃうんだよね。もうちょっと運が良ければなぁ。

俺はスマホでZerotierを問題なく使ってるよ。確かに、もうオープンソースじゃないけど、ソースにはアクセスできるし、切り替える手間をかける価値はないかな。

ストレートにWireGuardを一つのポイントに繋げるのは全然気にならないね。

なんか、もうちょっと高級なngrokみたいだね。全部を繋げちゃうのはちょっと怖いな。インターネットに安全に公開したいものは1、2個あるけど(Plexとか)、外出中にそこまでリスクを冒すほど必要なものはないかな。これって自己ホスティング用って感じ?

なんか、もうちょっと高級なngrokみたいだね。うん、そうとも言えるし、そうじゃないとも言える。ngrokみたいに使えるし、WireGuardとngrokを設定すればTailscaleと似たようなことができると思うけど、Tailscaleはすぐに使える状態で、洗練されたクライアントとサーバーのアプリが揃ってるんだ。俺はインフラ系じゃなくて、元フロントエンドエンジニアだけど、メディアセンターやファイルサーバーを「野生」に公開する自信を持てるよ。家のサーバーからiPadでコンテンツをJellyfinで見るのは、Tailscaleを使えばディズニーやNetflixと同じくらい「簡単」。クライアントとサーバーをインストールするだけで、あとは…バッチリだよ?

モバイルのトラフィックをAdGuard Home(またはPiHole)経由でルーティングするのはゲームチェンジャーだね。公共のWi-Fiを使ってる時に、自宅のネットワークを通して出口ノードを使うのもいい感じ。

PlexはすでにUPnPを使ったリモートアクセスをサポートしてるよ。https://support.plex.tv/articles/200289506-remote-access/

SSHの話だけど、Tailscaleは特別にサポートしてて、Tailscaleネットワークからポート22へのすべての接続を処理して、認証も自分でやってくれるんだ。公開鍵やパスワードは不要で、Tailscaleにログインしてれば、そのマシンにもログインできる。スマホからSSHする時には特に便利だよ。適切な認証管理がちょっと面倒だからね。これにはちょっと不安があるな。そんなのは避けたい。俺はTailscaleじゃなくてZerotierを使ってるけど、原則は同じだよ。俺のノートパソコンとスマホはサーバーに繋がってるし、これらのマシンはすでにインターネットに接続されてるから、仮想ネットワークに繋げてもリスクはないと思う。(少なくとも、上記のような機能を使わない限りね。)俺が得られるのは、すべてのデバイスのIPアドレスが分かることだけで、SSHサーバーが動いてれば接続できる能力がある。外出中の主な利点は、どのデバイスがオンラインかが分かることだね。

俺も似たような設定を使ってるけど、このガイドに従う人には、認証する同じtailnetの裏にカスタムOIDCサーバーをホスティングするのはおすすめしないよ。設定の問題があると完全にロックアウトされちゃうから、TailscaleのサポートにOAuthプロバイダーを再有効化してもらう必要があるし、それは元に戻せないんだ。俺はOAuthプロバイダーを使ってTailscaleにログインして、内部でKeycloakをOIDCプロバイダーとしてサービス間認証に使ってる。

Tailscaleの使い方、いいね!俺も似たようなセットアップしてるけど、認証なしでNebulaに頼ってるよ! https://github.com/slackhq/nebula

tailscale funnelをダミーサーバーpython -m http.serverに使ってみたら、10秒もしないうちにボットが脆弱性をチェックし始めた。Tailscaleは、これを有効にするとHTTPS証明書が発行されて公開台帳に載るって警告してくれるけど、こんなに早いとは思わなかった。127.0.0.1 - - [10/Aug/2025 00:11:34] "GET /@vite/env HTTP/1.1" 404 - 127.0.0.1 - - [10/Aug/2025 00:11:34] コード404, メッセージ ファイルが見つかりません 127.0.0.1 - - [10/Aug/2025 00:11:34] "GET /actuator/env HTTP/1.1" 404 - 127.0.0.1 - - [10/Aug/2025 00:11:34] コード404, メッセージ ファイルが見つかりません 127.0.0.1 - - [10/Aug/2025 00:11:34] "GET /server HTTP/1.1" 404 - 127.0.0.1 - - [10/Aug/2025 00:11:35] コード404, メッセージ ファイルが見つかりません 127.0.0.1 - - [10/Aug/2025 00:11:35] "GET /.vscode/sftp.json HTTP/1.1" 404 - 127.0.0.1 - - [10/Aug/2025 00:11:35] コード404, メッセージ ファイルが見つかりません 127.0.0.1 - - [10/Aug/2025 00:11:39] "GET /s/7333e2433323e20343e2538313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties HTTP/1.1" 404 -

そうだね、CT(証明書透明性)については複雑な気持ちがある。みんながその情報を使ってスキャンしてるし。もし、あなたがファンネルしてるのが自宅の接続なら、実質的にDDoSを呼び寄せてるようなもんだ。一つ(明らかに?)のアドバイスは、できるだけ高い非標準ポートに自分のものを置くことだね。そうすれば接続数が劇的に減るよ。

待って、ボットがこのHTTPS証明書の公開台帳に追加された新しいレコードを監視して、すぐに攻撃を始めるってこと?それだとHTTPSを有効にするのがリスクになる気がする…

Headscaleを使ってるよ、Tailscaleのコントロールサーバーのオープンソース実装なんだ。デフォルトではファンネル機能は実装されてないけど、カスタムのTraefikプロキシマネージャーのWeb UIを使って、異なるTailnetノードでポートを公開できるようにしてる。証明書透明性ログに不必要なものを公開しないように、単一のワイルドカード証明書を使ってるから、すべてのサブドメインは自動的にどこにもリストされないんだ。内部サブドメインでホストされているサービスにも同じアプローチを使ってる。自宅のラボで何を動かしているかをみんなに知られたくないからね。

なんでみんなプライベートなことにもっと自分のCAを運用しないのか分からないよ。他の人に公開する場合、ワイルドカード証明書を使うのが普通だと思うけど、ほとんどのチュートリアルは内部やローカル専用のものに対してACMEで証明書を発行するように指示してるから、実際には必要ないこともあるよね。俺は自分のCAを運用していて、ACMEサーバーや内部DNSも設定してるけど、誰も俺が何をやってるか知らないよ。

WireGuardの色々な使い方を試してるけど、Tailscaleのヘッダー認証については聞いたことなかった。面白いね。

これはサブスクリプション製品だけど、個人がやりたいことをほぼすべてカバーする非常に寛大な無料プランがあるよ。Tailscaleはとても良い製品だけど、プライバシーを気にするユーザーは、あなたの「プライベート」ネットワークでの行動をリアルタイムで収集するTailscaleの機能を無効にしなきゃいけないことを知っておくべきだよ。KB1011を見てね: https://tailscale.com/kb/1011/log-mesh-traffic 「あなたの分散ネットワーク内の各Tailscaleエージェントは、そのログを中央のログサーバー(log.tailscale.io)にストリーミングします。これには、ネットワーク上のすべての機械間接続(TCPまたはUDP)のオープンおよびクローズイベントのリアルタイムイベントが含まれます。」Unix/Windows/Macクライアントでは、--no-logs-no-supportでTailscaleを起動するか、TS_NO_LOGS_NO_SUPPORT=true環境変数を使うことでこの監視からオプトアウトできるけど、Android/iOSクライアントでは現時点でオプトアウトはできないみたい: https://github.com/tailscale/tailscale/issues/13174 一般ユーザーにとってどれだけ侵入的かの例として、この人はTailscaleがlog.tailscale.comのブロックされたDNSリクエストの数に基づいて、週に約18000のデータポイントを収集しようとしているのを発見した: https://github.com/tailscale/tailscale/issues/15326 それに、彼らのプライバシーポリシーも見てね: https://tailscale.com/privacy-policy#information-we-collect-... 「Tailscaleソリューションを使用すると、Tailscaleソリューションにアクセスするために使用されるデバイスに関する限られたメタデータを収集します。例えば、デバイス名、関連するオペレーティングシステムの種類、ホスト名、IPアドレス、暗号化された公開鍵、ユーザーエージェント(該当する場合)、言語設定、Tailscaleソリューションへのアクセス日時、接続を説明するログや他のデバイスとのデータ送受信に関する統計(「ノード間トラフィックログ」)、およびインストールされているTailscaleソリューションのバージョンなどです。」(強調は俺の)とにかく、あなたの投稿のその部分を引用した理由は、Tailscaleがプライバシー保護オプションを「no-support」と名付けることで、恐怖、不安、疑念の戦術を使っているからだよ。無料ユーザーならサポートを受けられないから、プライベートネットワークをプライベートに保つことにデメリットはないはずだよ :)

このコメントはもっと上にあってもいいと思う。

そのポリシーの部分は、システムがどう機能するかを説明してるだけだよ。企業のお客さんにとっては、すごく価値のある情報だし、彼らが市場の収益のほとんどを占めてるからね。アクセスログや侵入検知なんかを考えてみて。君が強調した情報を処理してるとは思わないけど、顧客にサービスを提供するために必要な範囲を超えてるってことはないと思うよ。反対の証拠は何かあるの?君の投稿の皮肉、つまり「不安や疑念」を持ち出してることは、俺にはちゃんと伝わってるよ。直接apenwarrに確認することもできるだろうし。

えっと、ネットワーク管理者としては、デフォルトでネットログをオンにしておきたいし、ネットワークに参加する人には「個人的なブラウジングは別のインターフェースでやってね」って分かりやすく警告するよね。価値の高いものがあるネットワークでは、最低限の監査要件があるのが普通だし。無料サンプル製品を使おうとしている人が、仕事用ネットワークのデフォルトと同じネットログの規制に入るのはあまり良くないかもしれないけど、それは多分、注意と優先順位の配分の問題だと思う。大部分のビジネスを構成している企業に理解を示すのは当然だしね。無料サンプル製品が「これは仕事用コンピュータ用です」と長い間明言されているのに残っているのは、そういうことなんだろうね。「サポートなし」の設定が、君が言うほどの決定的な証拠だとは思わないし、監視に関してはかなり厳しい考えを持ってるんだけど。純粋に個人ユーザーには間違ったデフォルトだとは思うけど、TailScaleには「善意の行動者」としてのポイントが十分あるから、悪意のある監視の野望については疑いを持たずにいるよ。お金を使わない人たちのデータを何に使うつもりなんだろう?損失を出してまで保存するなんて考えられないよ。

tailscaleが何を目指しているのかは「分かる」けど、headscaleでどれだけ再実装されていて、すぐに使えるかはよく分からないな。記事に書かれていることのほとんどは自分でやってるし(手作りのWG、Apache、ファイアウォール設定から)、このレベルの集中管理とオーケストレーションには魅力を感じるけど、ネットワーク全体の鍵を彼らに渡す気はないし、内部で管理したいんだ。headscaleについて話すと、netbirdを代替案として挙げる人もいるね。netbirdはオープンソースで自己ホストを強調しているから、すぐに共感を持つけど、記事で説明されているユースケースに対してどう比較されるのかは興味があるな。