mcpField
M
macos-networking

macos-networking

github.com/alphaonedevクラウド・DevOps45 回インストール
リポジトリ

macos-networking について

macos-networking は、macOS のネットワーク設定とトラブルシューティングを自動化するスキルです。システムのコマンドラインツールや Tailscale を使い、WiFi、DNS、プロキシ、VPN、ファイアウォールを扱います。

主な機能

  1. 01WiFi と Ethernet の管理
  2. 02DNS サーバーの設定
  3. 03HTTP と SOCKS プロキシの設定
  4. 04Tailscale VPN の操作
  5. 05pfctl ファイアウォールルールの制御

活用シーン

  1. 01WiFi ネットワークのスキャンと接続
  2. 02DNS またはプロキシ設定の構成
  3. 03Tailscale VPN のセットアップ
  4. 04ファイアウォールルールの読み込みや変更

インストール

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill macos-networking

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

詳細

macos-networking

目的

このスキルは、Wi-Fi、Ethernet、DNS、プロキシ、Tailscale VPN、pfctl ファイアウォールなどの macOS ネットワークコンポーネントを管理するツールを提供し、ネットワーク設定タスクの自動化や支援を行います。

使用する場面

接続のトラブルシューティング、安全な VPN の設定、アプリケーション向けの DNS 管理、スクリプトやユーザーとのやり取りでのファイアウォールルールの適用など、macOS 固有のネットワーク操作を行う場合にこのスキルを使用してください。

主な機能

  • networksetup および airport CLI を使用した Wi-Fi と Ethernet の管理。ネットワークへの接続、スキャン、切り替えに対応します。
  • networksetup を使った DNS 設定。Google DNS(例:8.8.8.8)などのサーバーを設定します。
  • networksetup を使ったプロキシ設定。認証を含む HTTP/SOCKS プロキシに対応します。
  • Tailscale VPN との連携。ピアツーピアネットワークに対応し、Tailscale CLI と認証キーが必要です。
  • pfctl によるファイアウォール制御。ルールセットの読み込み、有効化/無効化、トラフィックの監視を行います。
  • Airport CLI(macOS の一部)によるネットワークスキャンなどのワイヤレス診断。
  • 主な設定には networksetup、VPN には tailscale、パケットフィルタリングには pfctl などの専用ツールを使用します。

使用パターン

必要に応じて、sudo を使い、常に昇格した権限でコマンドを実行してください。スクリプトでは、まず tailscale などのツールがインストールされているか確認してください。機密データには環境変数を使用します。たとえば、Tailscale コマンドを実行する前に export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY を実行します。ユーザーがコピーして貼り付けられる bash のコードスニペットを生成し、AI の応答に組み込んでください。

例 1:特定の Wi-Fi ネットワークに切り替える。

  • 次のパターンを使用します。まず airport en0 scan でネットワークをスキャンし、その後 networksetup -setairportnetwork en0 SSID password で接続します。

例 2:Tailscale VPN を設定する。

  • 認証して接続します。認証キーを export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY でエクスポートし、その後 tailscale up --authkey=$TAILSCALE_AUTH_KEY を実行します。

一般的なコマンド/API

スクリプトや応答では、以下のコマンドをそのまま使用してください。すべて macOS 環境で実行する必要があります。

  • Wi-Fi:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 scan でネットワークをスキャンします。接続するには、sudo networksetup -setairportnetwork en0 "NetworkName" "Password" を実行します。
  • Ethernet:sudo networksetup -setnetworkserviceenabled Ethernet on/off で有効/無効にします。
  • DNS:sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4 で Wi-Fi のサーバーを設定します。キャッシュを消去するには、sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder を実行します。
  • プロキシ:sudo networksetup -setwebproxy Wi-Fi proxy.example.com 8080 で HTTP プロキシを設定します。認証を有効にするには、sudo networksetup -setwebproxyusername Wi-Fi username -setwebproxypassword Wi-Fi password を実行します。
  • Tailscale VPN:必要に応じて brew install tailscale でインストールします。認証するには、tailscale up --authkey=$TAILSCALE_AUTH_KEY を実行します。状態を確認するには、tailscale status --json を実行します。
  • pfctl ファイアウォール:sudo pfctl -f /etc/pf.conf でルールを読み込みます。sudo pfctl -e で有効にします。トラフィックをブロックするには、block in on en0 proto tcp from any to any port 80 のようなルールを /etc/pf.conf に追加し、その後再読み込みします。

Wi-Fi 接続のコードスニペット:

#!/bin/bash
network=$(airport en0 scan | grep -o 'SSID: .\+' | cut -d' ' -f2-)
echo "Available networks: $network"
sudo networksetup -setairportnetwork en0 "$1" "$2"

Tailscale 設定のコードスニペット:

#!/bin/bash
export TAILSCALE_AUTH_KEY=$SERVICE_API_KEY
tailscale up --authkey=$TAILSCALE_AUTH_KEY
tailscale status

統合に関する注意事項

コマンドを AI が生成したスクリプトでラップして統合します。Tailscale では、認証キーをハードコードしないよう、$TAILSCALE_AUTH_KEY 経由で渡してください。依存関係を確認します。command -v tailscale >/dev/null 2>&1 || brew install tailscale を使用してください。pfctl では、/etc/pf.conf を直接、またはスクリプト経由で編集してから再読み込みします。システムサービスとの競合を避けてください。関連するデーモンの管理には launchctl を使用します。例:sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.pfctl.plist。まず本番環境以外でテストしてください。

エラー処理

root 権限が必要なすべてのコマンドには sudo を使用して権限を処理し、終了コード(例:$? -ne 0)を確認して失敗を捕捉し、「Command failed, check sudo access.」とログに記録します。ネットワークエラーの場合は、続行する前に ping で接続を確認します。Tailscale の認証に失敗した場合は、$TAILSCALE_AUTH_KEY が設定され、有効であることを確認し、tailscale logout && tailscale up を実行して再試行します。pfctl の問題で「no ALTQ support」と表示される場合は、kextstat | grep pf でカーネル拡張機能が読み込まれていることを確認します。よくある問題として、インターフェースが見つからないエラー(例:en0 が存在しない場合)では、ifconfig -l で使用可能なインターフェースを一覧表示し、コマンドを調整します。

グラフの関係

  • クラスター「macos」に関連します(例:macos-file-system、macos-security のスキルと依存関係を共有します)。
  • タグで関連します:「networking」(general-networking スキルに接続)、「vpn」(remote-access スキルにリンク)、「firewall」(security-monitoring スキルに関連)、「dns」(domain-resolution スキルと連携)。

コメント