netstatのヒントとコツ


13

「便利なコマンドライン」の質問(WindowsLinux、およびMacの場合)と同じように、「ユーティリティxを使用する便利な方法」の質問があると便利だと思います。マニュアルページには、パラメーターの内容が記載されていますが、必ずしもパラメーターを使用する理由、結果の意味、広範な実験なしではコマンドが知らない有用なこと、または本当に必要な答えを得る方法については説明していません。

netstatについて知りたいのですが。どのプロセスが帯域幅を使用しているか、そして実際にシステムが帯域幅をどれだけ高速に使用しているかを把握できるはずです。また、不要な接続(おそらくvirii)を検出するのに便利であり、あらゆる種類のルーティング情報を提供します(Sharp Zaurus PDAでUSB経由のTCP / IPを使用する場合にのみ使用する必要がありました)。金鉱山のように聞こえますが、私はあなたがあなたが見つけた情報のナゲットを共有することを望んでいました。

返信にnetstatのバージョンとOSを含めてください。いくつかのサンプル出力を見て、それが何を意味するかを知っているといいでしょう。この質問をコミュニティWikiとしてマークしました。同じOSを知っている他の人が同じ答えを知っていれば、ほぼ同等のコマンドを出すことができるように、あなたも同じように答えてください。次に、どの回答が最も役立つかについて投票できます。

回答:


4

ローカルのリスニングTCP / UDPポートと、それらが属するプロセスを表示します。

sudo netstat -tulpn

4
ほぼ同等のMacは「sudo lsof -i -n -P | grep LISTEN」のようです。(-nおよび-Pフラグを省略すると、ホスト名とポート名が検索されます)。
クリントンブラックモア

1
クリントン-それは素晴らしいコマンドです。
SpacemanSpiff

3

Netstatルーティングテーブル

[これはMac OS X 10.5.7でテストされました。Solarisで動作することが示されたため、結果はすべてのプラットフォームでほぼ同じであると思われます。

netstat -r 

ルーティングテーブルが提供されます。

netstat -nr

は同じですが、マシン名を検索する代わりに生のIPを提供します。出力は次のようになります(より長くなるだけです):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

列:

宛先とゲートウェイ: 宛先は、情報の送信先のアドレス(またはアドレス範囲)です。その宛先に送信されるすべてのデータは、関連するゲートウェイに送られます。ゲートウェイは、旅の次の「ホップ」のためにデータを送信する場所を知っています。ルーティングテーブルにエントリがない宛先にデータを送信する場合、デフォルトゲートウェイを通過します。

フラグ: man / infoページには、すべてのフラグがリストされています。デフォルトゲートウェイの設定の意味は次のとおりです。

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

DHCP経由で手作業で追加されたと主張するのは興味深いことです。

参照:「refcntフィールドは、ルートのアクティブな使用の現在の数を示します。接続指向のプロトコルは、通常、接続中は単一のルートを保持しますが、コネクションレスプロトコルは同じ宛先に送信中にルートを取得します。」(マニュアルページ)

使用:「使用フィールドは、そのルートを使用して送信されたパケット数のカウントを提供します。」

Netif:「インターフェイスエントリは、ルートに使用されるネットワークインターフェイスを示します。」

私のMacでは、

  • lo0はループバックインターフェイスです。
  • en0はイーサネットです。
  • en1はワイヤレスです。
  • en2およびen3は、仮想マシンによって使用されます。

期限切れ: netstatコマンドの異なるバージョンのマンページから:「ルートの有効期限が切れるまでの残り時間(分)を表示します。」



2

Windowsの場合:

c:>netstat -a | find /c "TCP"
68

TCP / IP接続の数を示します。TCPポートが不足しているMaxUserPortsを増やす必要がある高ネットワークシステムのトラブルシューティングを行う場合に役立ちます。


OS X 10.5.7 equiv:netstat -a | grep -c tcp
クリントンブラックモア

2

送受信率

Mac [OS X 10.5.7]の場合:

netstat -i -w 10

[ SolarisおよびLinuxでの使用に関するメモについては、チャックの回答を参照してください。]

出力は次のようになります。

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

これは、一定の時間内に転送されたパケットとバイト数を示します。(この例では10秒)。私はyoutubeに接続し、ブラウザタブを閉じてレートが底を打つまで、1 MBを超える間隔でダウンロードしていました。

これは、アップロードまたはダウンロードが完了するのを待っている場合に便利です。レートを監視し、それが劇的に低下したとき、あなたはそれが完了したことを知っています。

上記のコマンドは、すべてのインターフェイスのすべてのスループットを表示することに注意してください。特定のインターフェイス(この例ではWiFi)にスコープするには、次のように-Iフラグを使用します。

netstat -I en1 -w 10

1

ウィンドウズ:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

アクティブなTCP接続を表示しますが、UDPアクティビティは表示しません。

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

すべてのアクティブなTCP接続と、リスニングTCPおよびUDP接続を表示します。ここにアウトバウンドUDPアクティビティを表示しません。


ここではコメントを追加しますが、十分な担当者がいる場合は、回答を編集します。Mac OS X 10.5.7と同等のnetstat-tcpプロトコルに限定されるように-p tcpを追加します。すなわち。 netstat -p tcp -nまたはnetstat -p tcp -an
クリントンブラックモア

Windowsのもう1つの便利なスイッチは、-o(各ソケットの所有PIDを表示)と-b(各ソケットの所有プロセス名を表示)です。侵害された疑いのあるマシンを調査するときに特に便利です。
ムラリSuriar

netstat -ntは同じことを行います(数値とtcpのみ)
Jauder Ho

1

ウィンドウズ

netstat -b

接続を使用してプロセスを表示する


1

Windows 7(ただし、おそらく以前から):

netstat -ano

アクティブなセッションと関連するPIDをリストします

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

またはステップを保存する

netstat -anb

(昇格したCMDプロンプトから)プロセス名を提供します

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING

1

車輪を再発明していると確信していますが、 netstatを実行し、現在接続されているIPが一番上に来るように出力を並べ替える簡単なPerlスクリプトを次に示します。これは、2秒間隔で更新するために「監視」プログラムで使用するのが最適です。

更新:2013-02-11を大幅に書き直して、多くの問題を取り除き、ホスト名を表示

サンプル出力:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED


0

Wicked Cool Shell Scriptsブックから:

スクリプト#90.1:「n」分ごとに、netstats値を取得します(crontab経由)

スクリプト#90.2:netstat実行パフォーマンスログを分析して、重要な結果と傾向を特定します。

(この本が大好き-買う価値は十分!)


0

Solarisでは、「netstat -i 1」を実行して実行中のパケットカウントを取得することに慣れています。Linuxのnetstatには、デルタではなくrawカウントが表示されるため、この機能の無用なバージョンがあります。同様の結果を得るには、「sar -n DEV 1 0」を実行します。実際に「LANG = C sar -n DEV 1 0 | grep interfacename」を考慮してください(sarは特定のロケールでAMとPMの行の先頭に時間を置くため、常に「LANG = C sar」を解析します)。


サンプル出力とMacの使用法については、serverfault.com / questions / 11289 / netstat-tips- and -tricks /…を参照してください。
クリントンブラックモア


0

まだ誰も言及していないので:

netstat -s 

Linuxのプロトコルごとに便利な統計情報を提供します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.