コンピューティングにおいて、コマンドラインネットワークユーティリティnetstatは、開いているネットワークソケット、ルーティングテーブル、および多数のネットワークインターフェース(ネットワークインターフェースコントローラまたはソフトウェア定義ネットワークインターフェース)とネットワークプロトコルの統計情報を表示するユーティリティです。Unix、Plan 9 、 Inferno 、およびmacOS、Linux、Solaris、BSDなどのUnix系オペレーティングシステムで利用可能です。また、IBM OS / 2 、およびWindows XP 、 Windows Vista 、Windows 7、Windows 8 、 Windows 10などのMicrosoft Windows NTベースのオペレーティングシステムでも利用可能です。
これは、ネットワークの問題を発見したり、パフォーマンス測定としてネットワーク上のトラフィック量を測定するために使用されます。[1] Linuxでは、このプログラムはほとんど廃止されていますが、多くのディストリビューションにまだ含まれています。
Linuxでは、 (「net-tools」の一部)は(iproute2netstatの一部)に置き換えられました。is の代替、 isの代替、 isの代替は、いずれも代わりに推奨されます。[2] [3] [4] [5]ssnetstat -rip routenetstat -iip -s linknetstat -gip maddr
Netstat は次の統計情報を提供します。
-nパラメータが指定されていない場合は、IPアドレスに対応するローカルコンピュータの名前とポート名が表示されます。サーバーがすべてのインターフェースをリッスンしている場合、ホストにはアスタリスク(*)が表示されます。ポートがまだ確立されていない場合は、ポート番号がアスタリスクで表示されます。-nが指定されていない場合は、IPアドレスとポートに対応する名前が表示されます。ポートがまだ確立されていない場合は、ポート番号はアスタリスク(*)で表示されます。このコマンドで使用するパラメータには、スラッシュ ( / )ではなくハイフン ( - )を先頭に付ける必要があります。一部のパラメータは、すべてのプラットフォームでサポートされていません。
macOS、BSD システム、Linux ディストリビューション、Microsoft Windows の場合:
TCP または UDP プロトコルのみの統計情報を表示するには、次のいずれかのコマンドを入力します。
netstat -sp tcp
netstat -sp udp
Unix 系システムの場合:
ID pidのプロセスによって開かれているすべてのポートを表示するには:
netstat -aop | grep "pid"
Linux 上で開いている TCP および UDP 接続を数値で継続的に表示し、どのプログラムがそれらを使用しているかを表示するには、次の手順を実行します。
netstat -nutpacw
Microsoft Windows の場合:
アクティブな TCP 接続とプロセス ID を5秒ごとに表示するには、次のコマンドを入力します (NT ベースのシステムのみ、または修正プログラムを適用した Windows 2000 でのみ機能します)。
netstat -o 5
アクティブな TCP 接続とプロセス ID を数値形式で表示するには、次のコマンドを入力します (NT ベースのシステムのみ、または修正プログラムを適用した Windows 2000 でのみ機能します)。
netstat -no
Netstatはアスタリスク*を「任意」を意味するワイルドカードとして使います。例えば
出力例:
....ローカルアドレス 外部アドレス 状態
... *:smtp *:* LISTEN
「ローカルアドレス」の*は、*:smtpプロセスがマシン上のすべてのネットワークインターフェースで、SMTPとしてマッピングされたポートをリッスンしていることを意味します(サービス解決については/etc/servicesを参照してください)。これは0.0.0.0と表示されることもあります。最初の*は、*:*接続が任意のIPアドレスから可能であることを意味し、2番目の*は、*:*接続がリモートマシン上の任意のポートから可能であることを意味します。
の一部のバージョンでは、netstatprintf で生成された出力に明示的なフィールド区切り文字がないため、数値フィールドが連続して実行され、出力データが破損します。

netstat
netstatLinuxでは、問題が修正されるまで、netstat のネットワーク インターフェイス統計サマリーで発生するprintf出力の破損を回避するために、多くの場合、/proc/net/devから生データを取得できます。[引用が必要]netstat -i
Windowsプラットフォームでは、 IP ヘルパーAPIまたは IPHLPAPI.DLLのGetTcpTable関数とGetUdpTable関数を呼び出すことで、netstat 情報を取得できます。返される情報には、ローカルおよびリモートのIP アドレス、ローカルおよびリモートのポート、そして (GetTcpTable の場合) TCPステータスコードが含まれます。Windows に付属するコマンドラインツールの netstat.exe に加えて、GUIベースの netstat プログラムも利用できます。
Windows プラットフォームでは、このコマンドは、ネットワーク接続のネットワーク アダプタのプロパティで インターネット プロトコル ( TCP / IP )プロトコルがコンポーネントとしてインストールされている場合にのみ使用できます。
リモート デスクトップ サービス (旧ターミナル サービス) を実行しているWindowsプラットフォームでは、コンピュータ全体の接続ではなく、現在のユーザーの接続のみが表示されます。
macOSでは、/System/Library/CoreServices/Applications フォルダ ( OS X Mountain Lion以前では /Applications/Utilities) にNetwork Utilityと呼ばれるネットワーク GUI ユーティリティが含まれており、そのNetstatタブで netstat コマンドを実行し、その出力をタブに表示します。
このプログラムは廃止されました。netstatの代替はssです。netstat -rの代替はip routeです。netstat -iの代替はip -s linkです。netstat -gの代替はip maddrです。