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

macOSのnetstatコマンドは、コンピューターのネットワーク通信に関する詳細情報を表示するターミナルコマンドです。 netstatを征服する コンピュータが確立している接続とその理由を理解するのに役立ちます。

Netstatの実行

netstatコマンドは、デフォルトでMacで使用できます。 ダウンロードしたりインストールしたりする必要はありません。

netstatを実行するには、でターミナルウィンドウを開きます。 事例・実績 > ユーティリティ > ターミナル。 タイプ netstat を押し 入力します コマンドを実行します。

ワキラ/ゲッティ画像

大量のテキストが画面上でスクロールし始めます。 If you don't use any of the available flags (see below),使用可能なフラグ(以下を参照)を使用しない場合は、 netstat Macでアクティブなネットワーク接続をすべて報告します。 最新のネットワークデバイスが実行する機能の数を考慮すると、リストが長くなることが予想されます。 標準レポートはXNUMX行をはるかに超えて実行できます。

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

Netstatのフラグとオプション

netstatで使用可能なすべてのオプションを表示するには、次のように入力します man netstat netstatのmanページのオンラインバージョンを表示することもできます。

「Man」は「manual」の略です。

構文

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

w wait]

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

上記の省略形が完全に理解できないように見える場合は、コマンド構文の読み方を学んでください。

便利なフラグ

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

  • -a netstatの出力にサーバーポートが含まれますが、デフォルトの出力には含まれていません。
  • -g マルチキャスト接続に関連する情報を表示します。
  • -I interfaceは、指定されたインターフェイスのパケットデータを提供します。 All available interfaces can be viewed with the利用可能なすべてのインターフェイスは、 -i フラグが、しかし en0 (小文字に注意してください。)
  • -n 名前によるリモートアドレスのラベル付けを抑制します。 これにより、限られた情報のみを犠牲にしながら、netstatの出力が劇的に高速化されます。
  • -p プロトコルは、特定のネットワークプロトコルに関連付けられたトラフィックを一覧表示します。 The full list of protocols is available atプロトコルの完全なリストは、次のURLで入手できます。 / etc / protocols、しかし最も重要なものは UDPTCP.
  • -r ルーティングテーブルを表示し、パケットがネットワークを介してどのようにルーティングされるかを示します。
  • -s は、アクティブであるかどうかに関係なく、すべてのプロトコルのネットワーク統計を示します。
  • -v 特に、開いている各ポートに関連付けられたプロセスID(PID)を示す列を追加することにより、冗長性を高めます。

Netstatの例

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

netstat -apv TCP

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

netstat -a | grep -i "listen"

この組み合わせ netstatgrep reveals open ports—開いているポート(メッセージをリッスンしているポート)を表示します。 The pipe characterパイプキャラクター | あるコマンドの出力を別のコマンドに送信します。 Here, the output ofここで、の出力 netstat へのパイプ grep、キーワード「listen」を検索して結果を見つけることができます。

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

また、いくつかにアクセスすることができます netstatの のネットワークユーティリティアプリを介した機能 エントルピー > 図書館 > CoreServices > 事例・実績.

ストリーミングを停止する場合は上部の Netstat グラフィカルインターフェイスにアクセスするためのタブ。

XNUMXつのラジオボタンの選択のそれぞれは、事前設定されたnetstatを実行します コマンドを実行し、出力を表示します。

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

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

NetstatにLsofを追加する

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

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

Lsofフラグとオプション

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

フラグの詳細とそれぞれの技術的な説明については、lsofのmanページを確認するか、実行してください。 男lsof ターミナルプロンプトで。

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

lsofの例

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

lsof -nP [email protected]:513

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

lsof -iTCP -sTCP:LISTEN

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

i -u ^ $(whoami)

このコマンドは、現在ログインしているユーザーが所有していないすべての接続を返します。

キャレット(^)は否定用です。 結果には、キャレットの後のテキストに一致するものは含まれません。 in user by runningを実行すると、現在ログインしているユーザーの名前を取得できます whoami 内部 lsof コマンド、に囲まれています $() させるために lsof sudoを使用して実行すると、自分が所有していないタスクを確認できます。 sudoを使用せずにこのコマンドを実行すると、空のリストが返されます。

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

ネットワークの調査に役立つ可能性のあるその他のターミナルネットワークコマンドには、arp、ping、およびipconfigが含まれます。