mcpField
T
tailscale

tailscale

github.com/el-feoクラウド・DevOps12322 回インストール14 週間前に更新
リポジトリ

tailscale について

Tailscale ネットワークの管理に使うコマンド、設定例、運用手順をまとめたスキルです。デバイス接続やアクセス制御を行う運用担当者向けで、サブネットルーター、出口ノード、SSH、サービス公開を扱います。

主な機能

  1. 01接続とピア状態の管理
  2. 02サブネットルーターと出口ノードの設定
  3. 03Tailscale SSH の設定
  4. 04tailnet サービスや Funnel の公開
  5. 05Grants と ACL の設定
  6. 06自動セットアップスクリプト

活用シーン

  1. 01ピアの状態と接続性の確認
  2. 02デバイスをサブネットルーターに設定
  3. 03出口ノード経由のトラフィック転送
  4. 04SSH アクセスとネットワーク権限の管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/el-feo/ai-context --skill tailscale

インストール後、Claude Code で/tailscaleを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acl-examples.md
api-usage.md
cli-reference.md
production-setup.md
troubleshooting.md
scripts/
setup_exit_node.sh
setup_subnet_router.sh

詳細

Tailscale ネットワーク管理

クイックスタート

# Install (Linux)
curl -fsSL https://tailscale.com/install.sh | sh

# Install (macOS)
brew install tailscale

# Connect and authenticate
sudo tailscale up

# Check status
tailscale status

# Get your Tailscale IP
tailscale ip -4

一般的な操作

接続管理
tailscale up                    # Connect
tailscale down                  # Disconnect (daemon stays running)
tailscale status                # View peers
tailscale status --json | jq    # Detailed network map
tailscale ping machine-name     # Test connectivity (ignores ACLs)
tailscale ping --icmp machine-name  # Test with ACLs
tailscale set --exit-node=name  # Use exit node
tailscale set --exit-node=      # Stop using exit node

再接続せずに設定を変更するには、tailscale set を使用します。初期設定には tailscale up を使用します。

サブネットルーターのセットアップ

scripts/setup_subnet_router.sh <subnet_cidr> [auth_key] を実行すると、自動でセットアップできます。

手動での手順:

  1. ルーターデバイスで IP 転送を有効にします
  2. sudo tailscale up --advertise-routes=192.168.1.0/24
  3. 管理コンソールでルートを承認します(Machines > デバイス > Edit route settings)
  4. Linux クライアント:sudo tailscale up --accept-routes
Exit Node のセットアップ

scripts/setup_exit_node.sh [auth_key] を実行すると、自動でセットアップできます。

手動での手順:

  1. Exit Node で IP 転送を有効にします
  2. sudo tailscale up --advertise-exit-node
  3. 管理コンソールで承認します(Machines > デバイス > Edit route settings > Use as exit node)
  4. クライアント:tailscale set --exit-node=node-name --exit-node-allow-lan-access
Tailscale SSH
# Enable on server
sudo tailscale set --ssh

# Connect from client (no special setup needed)
ssh machine-name

ネットワークアクセス許可と SSH ACL ルールの両方が必要です。SSH ACL のパターンについては、acl-examples.md を参照してください。

Serve と Funnel
# Serve locally to tailnet
tailscale serve 3000

# Expose to public internet (ports 443, 8443, or 10000 only)
tailscale funnel 3000

# TCP forwarding with TLS termination
tailscale serve --tls-terminated-tcp=5432 localhost:5432

# Check status / turn off
tailscale serve status
tailscale serve off

アクセス制御

ACL(旧式)よりも Grants(最新の推奨方式)を使用してください。どちらも機能しますが、Grants はアプリケーション層の機能をサポートします。

{
  "groups": {
    "group:engineering": ["[email protected]"]
  },
  "tagOwners": {
    "tag:server": ["group:engineering"]
  },
  "grants": [
    {
      "src": ["group:engineering"],
      "dst": ["tag:server"],
      "ip": ["22", "443"]
    }
  ]
}

主なパターン: 人にはグループ、マシンにはタグを使用します。SSH アクセスには、必ずネットワーク許可と SSH ルールの両方を含めてください。

ACL の詳細なシナリオ、SSH アクセスのパターン、ポスチャチェック、自動承認者、GitOps との統合、よくある間違いについては、acl-examples.md を参照してください。

参考ファイル

  • cli-reference.md - すべてのフラグ、ターゲット形式、プラットフォーム固有の注意事項を含む CLI コマンドの完全なリファレンス
  • acl-examples.md - ACL/Grants の詳細な設定:チームベースのアクセス、開発/ステージング/本番環境の分離、SSH のパターン、ポスチャチェック、自動承認者、GitOps、ACL から Grants への移行
  • api-usage.md - REST API、Terraform プロバイダー、Python SDK、Webhook、自動化の例
  • troubleshooting.md - 接続診断、サブネットルーターの問題、Exit Node の問題、SSH の問題、MagicDNS、パフォーマンス調整、よくあるエラーメッセージ
  • production-setup.md - アーキテクチャパターン、高可用性セットアップ、セキュリティ強化、IaC(Terraform/Ansible/K8s)、モニタリング、DR、運用手順

スクリプト

  • scripts/setup_subnet_router.sh <subnet_cidr> [auth_key] - サブネットルーターを自動でセットアップします(Tailscale のインストール、IP 転送の有効化、ルートの設定)
  • scripts/setup_exit_node.sh [auth_key] - Exit Node を自動でセットアップします(Tailscale のインストール、IP 転送の有効化、Exit Node としてのアドバタイズ)

コメント