MacでNetstatコマンドを使用する方法

知っておくべきこと

  • netstatを実行して、Macのネットワークに関する詳細データを表示するには、新しい ターミナル ウィンドウ、タイプ netstat、andpress 入力.
  • フラグとオプションを使用してnetstatの出力を制限します。 netstatで使用可能なオプションを表示するには、次のように入力します man netstat コマンドプロンプトで。
  • 使用 lsofコマンド 現在任意のアプリで開いているファイルの表示など、netstatの欠落または制限された機能を補うため。

この記事では、netstatを実行する方法について説明します ターミナルコマンド MacOSで、Macのネットワーク通信に関する詳細情報を確認できます。これには、Macがすべてのポートとすべてのアプリケーションにわたって、外の世界と通信する方法が含まれます。

Netstatを実行する方法

netstatの使用方法を学ぶことは、コンピューターが確立している接続とその理由を理解するのに役立ちます。 netstatコマンドは、デフォルトでMacで使用できます。 ダウンロードやインストールは必要ありません。

netstatを実行するには:

  1. に移動 ファインダ > 行け > ユーティリティ.

    ユーティリティが強調表示されたFinderの[移動]メニュー
  2. ダブルクリック ターミナル.

    ターミナルが強調表示されたユーティリティフォルダ
  3. 新しいターミナルウィンドウで、次のように入力します netstat を押して 戻る (また 入力)コマンドを実行します。

    netstatコマンドが強調表示されたターミナルウィンドウ
  4. 大量のテキストが画面上でスクロールし始めます。 使用可能なフラグ(以下を参照)を使用しない場合、netstatはMac上のアクティブなネットワーク接続を報告します。 最新のネットワークデバイスが実行する機能の数を考慮すると、リストが長くなることが予想されます。 標準レポートは1,000行を超える可能性があります。

    ターミナルウィンドウの長いnetstatレポート

Netstatのフラグとオプション

Netstatの出力をフィルタリングすることは、Macのアクティブなポートで何が起こっているかを理解するために不可欠です。 Netstatの組み込みフラグを使用すると、オプションを設定して、コマンドのスコープを制限できます。

netstatで使用可能なすべてのオプションを表示するには、次のように入力します man netstat コマンドプロンプトで、netstatのman( "manual"の略)ページを表示します。 また、表示することができます netstatのmanページのオンラインバージョン.

構文

macOSのnetstatはと同じようには機能しないことに注意することが重要です Windows上のnetstat およびLinux。 netstatのこれらの実装からのフラグまたは構文を使用すると、期待される動作が得られない場合があります。

macOSのnetstatにフラグとオプションを追加するには、次の構文を使用します。

netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]

上記の速記が完全に理解できないように見える場合は、 コマンド構文の読み方。

便利なフラグ

最も一般的に使用されるフラグのいくつかを次に示します。

  • -NS netstatの出力にサーバーポートが含まれますが、デフォルトの出力には含まれていません。
  • -NS マルチキャスト接続に関連する情報を表示します。
  • -私インターフェース 指定されたインターフェイスのパケットデータを提供します。 利用可能なすべてのインターフェースは、 -私 フラグが、しかし en0 通常、デフォルトの発信ネットワークインターフェイスです。 (小文字に注意してください。)
  • -NS 名前付きのリモートアドレスのラベルを抑制します。 これにより、限られた情報のみを排除しながら、netstatの出力が高速化されます。
  • -NSプロトコル 特定のに関連付けられたトラフィックを一覧表示します ネットワークプロトコル. プロトコルの完全なリストは、次のURLで入手できます。 /etc/protocols、しかし最も重要なものは udptcp.
  • -NS を表示します ルーティングテーブル、方法を示す パケット それは ルーティング ネットワークの周り。
  • -NS は、プロトコルがアクティブであるかどうかに関係なく、すべてのプロトコルのネットワーク統計を示します。
  • -v 特に、開いている各ポートに関連付けられたプロセスID(PID)を示す列を追加することにより、冗長性を高めます。

Netstatの例

次の例を検討してください。

netstat -apv TCP

このコマンドは、開いているポートとアクティブなポートを含む、Mac上のTCP接続のみを返します。 また、詳細な出力を使用して、各接続に関連付けられているPIDを一覧表示します。

netstat -a | grep -i "listen"

この組み合わせ netstatgrep メッセージをリッスンしているポートである開いているポートを明らかにします。 パイプキャラクター | あるコマンドの出力を別のコマンドに送信します。 ここで、の出力 netstat へのパイプ grep、キーワード「listen」を検索して結果を見つけることができます。

ネットワークユーティリティを介したNetstatへのアクセス

また、CatalinaまでのmacOSバージョンに含まれているネットワークユーティリティアプリを介してnetstatの機能の一部にアクセスすることもできます(Big Surには含まれていません)。

ネットワークユーティリティにアクセスするには、次のように入力します ネットワークユーティリティ Spotlight Searchに移動してアプリを起動し、[ Netstat グラフィカルインターフェイスにアクセスするためのタブ。

ネットワークユーティリティの[Netstat]タブ

ネットワークユーティリティ内のオプションは、コマンドラインから利用できるオプションよりも制限されています。 4つのラジオボタンを選択するたびに、事前設定されたnetstatコマンドが実行され、出力が表示されます。

各ラジオボタンのnetstatコマンドは次のとおりです。

  • ルーティングテーブル情報を表示する 実行します netstat -r.
  • 各プロトコルの包括的なネットワーク統計を表示します 実行します netstat -s.
  • マルチキャスト情報を表示する 実行します netstat -g.
  • 現在のすべてのソケット接続の状態を表示します 実行します netstat.
ネットワークユーティリティNetstat

NetstatにLsofを追加する

netstatのmacOS実装には、ユーザーが期待および必要とする機能の多くが含まれていません。 用途はありますが、netstatはWindowsほどmacOSでは役に立ちません。 別のコマンド、 lsof、不足している機能の多くを置き換えます。

Lsofは、アプリで現在開いているファイルを表示します。 また、アプリに関連付けられている開いているポートを検査するためにも使用できます。 走る lsof -i インターネットを介して通信するアプリケーションのリストを表示します。 これは通常、Windowsマシンでnetstatを使用する場合の目標です。 ただし、macOSでそのタスクを実行するための唯一の意味のある方法は、netstatではなく、lsofを使用することです。

Lsof出力

Lsofフラグとオプション

開いているすべてのファイルまたはインターネット接続を表示することは、通常、冗長です。 そのため、lsofには、特定の基準で結果を制限するためのフラグが付属しています。 最も重要なものは以下のとおりです。

その他のフラグとそれぞれの技術的な説明については、チェックアウトしてください lsofのmanページ または実行 man lsof ターミナルプロンプトで。

  • -私 開いているネットワーク接続と、接続を使用しているプロセスの名前が表示されます。 追加する 4、のように -i4、表示のみ IPv4接続. 追加する 6 代わりは (-i6)表示のみ IPv6接続.
  • NS -私 フラグを展開して、詳細を指定することもできます。 -iTCPまたは-iUDPは、TCPおよびUDP接続のみを返します。 -iTCP:25は、ポート25でTCP接続のみを返します。 ポートの範囲は、-iTCP:25-50のように、ダッシュで指定できます。
  • [email protected]を使用すると、IPv4アドレス1.2.3.4への接続のみが返されます。 IPv6アドレスも同様に指定できます。 @プリカーサーを使用して、同じ方法でホスト名を指定することもできますが、両方ともリモートです IPアドレス およびホスト名を同時に使用することはできません。
  • -NS 通常、lsofはファイルサイズを表示します。 しかし、と組み合わせると -私 国旗、 -NS 動作が異なります。 代わりに、ユーザーはコマンドが返すプロトコルとステータスを指定できます。
  • -NS lsofを特定のプロセスID(PID)に制限します。 -p 123,456,789などのコモンを使用して、複数のPIDを設定できます。 プロセスIDは、123、^ 456のように、^を使用して除外することもできます。これにより、特にPID456が除外されます。
  • -NS ポート番号からポート名への変換を無効にし、出力を高速化します。
  • -NS ネットワーク番号からホスト名への変換を無効にします。 と一緒に使用する場合 -NS 上記では、lsofの出力を大幅に高速化できます。
  • -u ユーザー 指定されたユーザーが所有するコマンドのみを返します。

lsofの例

lsofを使用するいくつかの方法があります。

lsof -nP [email protected]:513

この複雑に見えるコマンドは、ホスト名を使用してTCP接続を一覧表示します lsof.itap とポート 513. また、名前をIPアドレスやポートに接続せずにlsofを実行するため、コマンドの実行速度が大幅に向上します。

lsof -iTCP -sTCP:聞く

このコマンドは、ステータスのあるすべてのTCP接続を返します 聞く、Macで開いているTCPポートを表示します。 また、これらの開いているポートに関連付けられているプロセスも一覧表示されます。 これは大幅なアップグレードです netstat、最大でPIDを一覧表示します。

Lsofリッスンコマンド

sudo lsof -i -u ^ $(whoami)

ターミナルでのWhoamiコマンド

その他のネットワークコマンド

ネットワークの調査に役立つ可能性のあるその他のターミナルネットワークコマンドには、次のものがあります。 arp, ping、 と ipconfig.