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、しかし最も重要なものは UDP と TCP.
- -r ルーティングテーブルを表示し、パケットがネットワークを介してどのようにルーティングされるかを示します。
- -s は、アクティブであるかどうかに関係なく、すべてのプロトコルのネットワーク統計を示します。
- -v 特に、開いている各ポートに関連付けられたプロセスID(PID)を示す列を追加することにより、冗長性を高めます。
Netstatの例
次の例を検討してください。
netstat -apv TCP
このコマンドは、開いているポートとアクティブなポートを含む、Mac上のTCP接続のみを返します。 また、詳細出力を使用して、各接続に関連付けられたPIDを一覧表示します。
netstat -a | grep -i "listen"
この組み合わせ netstat と grep 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が含まれます。