linux-networking について
Linux のネットワーク管理向けスキルで、IP、DNS、ファイアウォール、VPN、インスタンス間ルーティングを設定します。適用前の検証と適用後の診断を重視します。
主な機能
- 01Netplan による IP 設定
- 02UFW と Nftables の管理
- 03DNS 解決の設定
- 04Wireguard または Tailscale VPN の設定
- 05インスタンス間ルーティングの設定
活用シーン
- 01Ubuntu または Debian サーバーのネットワーク設定
- 02SSH 接続を保ちながらサーバーポートを制限
- 03インスタンス間の VPN 接続
- 04コンテナ環境での DNS 問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill linux-networkingインストール後、Claude Code で/linux-networkingを入力して読み込まれたか確認します。
詳細
linux-networking
目的
このスキルでは、Netplan による IP 設定、UFW または Nftables によるファイアウォール管理、DNS の設定、Wireguard または Tailscale の VPN 設定、System76 などのシステムにおけるインスタンス間ルーティングなど、Linux のネットワーク関連タスクに対応します。
使用する場面
Ubuntu/Debian システムでのサーバー設定、ファイアウォールによるアプリケーションの保護、VPN による安全なリモートアクセスの確立、コンテナ化された環境での DNS の問題解決、データセンターやエッジデバイスにあるネットワーク接続されたインスタンス間のルーティング最適化に使用します。
主な機能
- Netplan の YAML ファイルを使って静的/動的 IP アドレスを設定します(例:インターフェースを DHCP または静的 IP に設定)。
- 簡単なルール(例:ポートの許可/拒否)には UFW、高度なパケットフィルタリングにはテーブルやチェーンを使う Nftables でファイアウォールを管理します。
- systemd-resolved などのツールや /etc/resolv.conf の編集によって DNS 名前解決を処理します。
- VPN を設定します。wg-quick を使ったピアツーピアトンネルには Wireguard、キー認証による自動メッシュネットワークには Tailscale を使用します。
- System76 ハードウェアで、OSPF や静的ルートを設定して複数デバイス間の通信を可能にするなど、インスタンス間ルーティングを実装します。
使用パターン
root 権限が必要なコマンドは、常に sudo を付けて実行してください。スクリプトでは、NetworkManager や systemd-networkd などのサービスが有効かどうかを確認してください。機密データには環境変数を使います。たとえば、Tailscale の操作前に export TAILSCALE_API_KEY=$SERVICE_API_KEY を実行します。AI の応答では、タスクを順序立てたコマンドとして構成してください。最初に設定ファイルを検証し、次に変更を適用し、最後に診断ツールで確認します。自動化では、エラー確認を含む bash スクリプトでコマンドを実行します。たとえば、失敗時に終了するよう set -e を使用します。
主なコマンド/API
- Netplan の設定:/etc/netplan/01-netcfg.yaml を編集して、
network: version: 2 renderer: networkd ethernets: eno1: dhcp4: trueのような内容を設定し、sudo netplan applyを実行します。 - UFW ファイアウォール:
sudo ufw enableで有効にし、sudo ufw allow 22/tcpのようなルールを追加して、sudo ufw status verboseで状態を確認します。 - Nftables ファイアウォール:/etc/nftables.conf からルールを読み込みます(例:
table ip filter { chain input { type filter hook input priority 0; policy accept; } })。その後、sudo nft -f /etc/nftables.confで適用します。 - DNS 管理:/etc/resolv.conf を編集して(例:
nameserver 8.8.8.8を追加)、またはsystemd-resolve --set-dns=8.8.8.8 eth0を使用します。 - Wireguard VPN:
wg genkey | tee privatekey | wg pubkey > publickeyでキーを生成し、[Interface] PrivateKey = Address = 10.0.0.1/24 を含むように /etc/wireguard/wg0.conf を設定して、sudo wg-quick up wg0で起動します。 - Tailscale VPN:
tailscale up --authkey $TAILSCALE_API_KEYで認証し、Tailscale API を使ってピアを管理します(例:GET https://api.tailscale.com/api/v2/devices)。 - インスタンス間ルーティング:
sudo ip route add 192.168.1.0/24 via 10.0.0.1で静的ルートを追加するか、quaggaを使って System76 で OSPF を設定し、vtysh でrouter ospfなどのコマンドを実行します。
統合に関する注意
Netplan コマンドの実行には ansible.builtin.shell などのモジュールを、ファイアウォールルールには community.general.ufw を使って、Ansible などのオーケストレーションツールと統合できます。Tailscale では、環境変数(例:$TAILSCALE_API_KEY)で API キーを渡し、デバイス管理に HTTP API を使用します。Wireguard は、sudo systemctl enable wg-quick@wg0 でサービスを有効にすることで systemd と統合できます。Netplan で NetworkManager との互換性を確保するには、NetworkManager を無効にします(例:sudo systemctl stop NetworkManager)。DNS については、/etc/resolv.conf をマウントして、コンテナ内で systemd-resolved に接続します。変更を適用する前に、nmcli や ip a などのツールで必ず設定を検証してください。
エラー処理
コマンドの先頭に sudo を付けて、権限エラーがないか確認します。netplan apply が「Invalid YAML」で失敗する場合は、yamllint /etc/netplan/01-netcfg.yaml でファイルを検証します。UFW/Nftables の場合は、sudo ufw status または sudo nft list ruleset を使ってルールをデバッグします。よくある問題としてポートの競合があります。ss -tuln で確認して解決してください。VPN のエラー:Wireguard の起動に失敗する場合は、wg show でキーを確認し、journalctl -u wg-quick@wg0 でログを確認します。Tailscale では、$TAILSCALE_API_KEY を再エクスポートして再試行し、認証エラーに対処します。ルーティングの問題:ip route show を使って診断します。ルートが伝播しない場合は、sudo systemctl restart networking でネットワークを再起動します。スクリプトでは、必ず >> error.log 2>&1 を使って出力を記録してください。
具体的な使用例
- Ubuntu で基本的なファイアウォールを設定する:まず、
sudo ufw enableで UFW を有効にします。次に、sudo ufw allow 22で SSH を許可します。sudo ufw statusで確認します。これにより、リモートアクセスを許可しながらサーバーを保護できます。 - Wireguard VPN トンネルを設定する:/etc/wireguard/wg0.conf に
[Interface] Address = 10.0.0.1/24 PrivateKey = <generated_key>を含む設定ファイルを作成します。sudo wg-quick up wg0で起動します。ping 10.0.0.2で接続をテストします。これにより、インスタンス間に安全なリンクが確立されます。
グラフの関係
- クラスター linux に関連
- タグ経由の接続:networking(直接リンク)、linux(親クラスター)、firewall(サブスキル)、vpn(依存関係)、tailscale(特定のツール)
- 出力エッジ:より広範な保護のため linux-security と統合し、ネットワークマウントされたボリュームのため linux-storage にリンク
- 入力エッジ:基本的な OS コマンドを linux-basics に依存し、自動化ワークフローのため devops-tools から参照されます