Repo-lab
CLIツール

Network Doctor(netdoc)とは?ネットワーク障害を層別に診断する CLI ツール

⭐ 371 stars GitHub →

ping は通るのに HTTP がつながらない」「DNS が疑わしいが dig の出力をどう読めばいいかわからない」――ネットワーク障害の切り分けは、熟練したインフラエンジニアでも時間のかかる作業です。Network Doctor(コマンド名: netdoc)は、そのプロセスを自動化した Go 製のクロスプラットフォーム CLI TUI ツールです。

2026年9月13日に v1.17.0 がリリースされ、OpenSSH キーワード構文のサポートや、オフラインスナップショット読み込みの改善が加わりました。スター数は371を超え、コントリビューター17人が継続的に開発に参加しています。


ネットワーク診断ツール CLI の比較――なぜ今このツールか

従来のネットワーク診断は pingdigcurltracerouteopenssl s_client など多数のコマンドを組み合わせる必要があり、それぞれの出力を人間が読み解かなければなりませんでした。

Network Doctor は依存グラフに基づくプローブ設計を採用しており、「DNS が失敗したら TCP・TLS・HTTP はスキップ(原因不明のフォールスラームを防ぐ)」という連鎖的な診断を自動で実行します。最終的な出力は「障害が発生しているレイヤーと、次にやるべきこと」という平易な英語の verdict です。

ツール 診断の深さ root権限 TUI JSON出力 クロスプラットフォーム
ping L3のみ 一部要
dig DNS のみ 不要
curl HTTP のみ 不要
netdoc L2〜L7 全層 不要
mtr L3 経路 一部要

root 権限なしで path-MTU チェックも実行できる点は、コンテナ環境や制限されたサーバー環境での利用に特に有用です。

最新 v1.17.0 の変更点

v1.17.0(2026-09-13)では、OpenSSH の Host, Match, Include などのキーワード形式の構文解析が強化されました。SSH 設定でエイリアスを多用している環境での SSH バナーチェックが正しく動作するようになっています。


インストール方法(Linux・macOS・Windows 対応)

macOS・Linux(Homebrew)

brew install network-doctor

Homebrew Core に収録されており、brew upgrade network-doctor で最新版に更新できます。

Windows(Scoop)

scoop bucket add heymaikol https://github.com/heymaikol/scoop-bucket
scoop install network-doctor

Linux(パッケージマネージャー)

各ディストリビューションに対応した prebuilt パッケージが Releases ページから取得できます。

# Debian/Ubuntu
sudo apt install ./network-doctor_X.Y.Z_linux_amd64.deb

# RHEL/Rocky/AlmaLinux
sudo dnf install ./network-doctor_X.Y.Z_linux_amd64.rpm

# Alpine Linux
sudo apk add --allow-untrusted ./network-doctor_X.Y.Z_linux_amd64.apk

Go から直接インストール

go install github.com/heymaikol/network-doctor/cmd/netdoc@latest

Go 1.27 以上が必要です。インストール後は netdoc --version でバージョンを確認してください。


DNS TCP TLS 障害 切り分け コマンドの基本的な使い方

ローカルネットワーク全体を診断する

netdoc

引数なしで実行すると、ローカルインターフェース・DNS・外部向け egress・Wi-Fi 接続を一括チェックします。

特定ホストを診断する

netdoc github.com           # DNS, TCP, TLS, HTTP を全レイヤーで確認
netdoc github.com:22        # ポート指定 → SSH バナーのチェックに切り替わる
netdoc https://api.example.com/health  # HTTPS エンドポイントの到達性確認

間欠的な障害を捕捉する(Watch モード)

netdoc --watch github.com

--watch は継続的に再実行し、障害発生〜復旧までのインシデントタイムラインをバッファに保持します。i キーでタイムライン確認、w でファイルに保存できます。

スクリプト向け JSON 出力

netdoc --json github.com

verdict フィールドに ok, degraded, dns, network, service, incomplete のいずれかが入り、終了コードも 0(正常)/ 1(異常)/ 2(実行不可)で返るため、CI/CD パイプラインや監視スクリプトへの組み込みに適しています。

診断スナップショットの保存と比較

# 障害時のスナップショット保存
netdoc --save snapshot_fail.ndoc github.com

# 2 つのスナップショットを比較(ソケットを開かずオフライン比較)
netdoc --compare snapshot_good.ndoc snapshot_fail.ndoc

サポートへの問い合わせ時は --support フラグで個人情報を匿名化したスナップショットを生成できます。


こんなインフラエンジニアに向いている

SRE・インフラエンジニアの日常業務

本番環境でアラートが発火したとき、障害の原因レイヤーを即座に特定したい SRE にとって、netdoc target.hostname の一発コマンドは非常に有効です。「DNS は問題なし、TCP 接続成功、TLS ハンドシェイク失敗」という具体的な verdict が出るため、無駄な調査を省けます。Watch モードを常駐させておくことで、間欠的な障害のタイムラインを自動記録できます。

DevOps エンジニア(CI/CD パイプライン組み込み)

--json オプションと終了コードを活用して、デプロイ後のスモークテストとして netdoc を組み込めます。例えば、ロードバランサーの背後にある新しいエンドポイントが正常に応答するか、TLS 証明書の有効期限が近づいていないかを CI パイプラインで自動チェックするユースケースです。

ネットワーク管理者・セキュリティエンジニア

--two-sided 診断モードでは、2 つの拠点から同じターゲットへの診断を比較し、障害がどちらの側に固有なのかを判定できます。--via server host を使えば SSH 経由でリモートマシンから診断を実行でき、エージェント不要・インストール不要で利用できます。


使う前に知っておきたいこと

プラットフォームと依存関係

netdoc は Linux・macOS・Windows に対応しており、バイナリ 1 本で動作します。Go ランタイムは実行時不要です。ただし、netdoc-sim(Challenge Mode 用シミュレーター)は Linux のみ提供されています。macOS/Windows では Challenge Mode は利用できません。

権限と制限

root 権限は一切不要ですが、一部の組み込みドリルダウンツール(例: traceroute の ICMP モード)は OS 側で root が必要な場合があります。netdoc 自身はその場合でも動作し、代替手法で診断を継続します。

ライセンス

Network Doctor は Apache-2.0 ライセンスです。商用利用・改変・再配布が可能ですが、NOTICE ファイルの記載を保持することが求められます。

--no-reference-egress フラグ

netdoc は外部の参照サービス(egress チェック用)と通信します。エアギャップ環境・閉じたネットワーク環境では --no-reference-egress フラグを付けることで外部通信なしの診断に限定できます。

Issue のトレンド

2026年9月時点のオープン Issue は主にシミュレーターのバウンドチェック・プロキシ診断の改善に集中しており、コアの診断ロジックは安定しています。


まとめ

Network Doctor(netdoc)は、pingdig の結果をコピペして読み解く手間を省き、「どのレイヤーで何が壊れているか」を一発で教えてくれるCLI TUI ツールです。root 権限不要・クロスプラットフォーム・JSON 出力対応と、個人の開発環境から CI/CD 組み込みまで幅広く活用できます。

まずは brew install network-doctor でインストールして、netdoc github.com を実行してみてください。診断フローを見るだけでも、ネットワーク障害の切り分け方法を体感できます。

関連ツール・おすすめサービス

  • DigitalOcean — 開発者向けクラウド・App Platformでかんたんデプロイ
  • さくらVPS — 国内ホスティングでのセルフホストならこちら

この技術を学ぶ

CLIに興味を持った方には、Udemyのオンラインコースもおすすめです。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください