netstat
このコマンドは、システム全体のネットワークの状態を照会するために使用することができます。次のようにBaiduの百科事典が定義されています。
netstatの定義は次のとおりです。netstatがであるカーネルのアクセスに関するネットワークの接続状況や情報プログラム、プロセス、TCPとUDPの監視、TCP接続を提供し、メモリ管理関連するレポート。
netstatコマンドは、コンソールの TCP / IPネットワークを監視するための非常に有用なツールであり、それは表示することができ、コマンドルーティングテーブルを、実際のネットワークの接続状態を、各ネットワークインターフェースデバイス情報。IP、表示用のnetstat TCP、UDP、およびICMPの一般ごとに使用するマシンのテスト、プロトコル関連の統計を、ポートネットワーク接続状態を。
私たちは、上記の説明ウィキペディアから見ることができるnetstat
コマンドが時にクエリネットワークの問題に有用です。ここでは詳細な紹介しますnetstat
使用を。
構文を使用します。
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
パラメータ説明
- -aまたはソケット内のすべての接続を表示--all。
- -A <ネットワークタイプ>または - <ネットワークタイプ>リストアドレスのネットワーク接続のタイプ。
- -cまたは--continuousネットワークステータスのリストを保持します。
- または-C --cache表示情報ルータは、コンフィギュレーションをキャッシュします。
- -eディスプレイネットワークまたは他の関連情報を--extend。
- -Fまたは--fib表示FIB。
- -gまたは--groupsは、複数のブロードキャスト機能グループメンバーのリストを表示します。
- -hまたは--helpオンラインヘルプを参照してください。
- -i --interfacesまたはウェブインターフェース情報の表示形態。
- -lまたはサーバーを監視表示ソケットを--listening。
- -M --masqueradeクロークまたはネットワーク接続。
- --numericまたは直接IPアドレスを使用して-nはなく、ドメインネームサーバーによって。
- または-nは--symbolic表示記号またはネットワーク接続名のハードウェア周辺機器を--netlink。
- -oまたは--timersは、タイマーを表示します。
- -pまたは表示プログラム識別コードとソケットを使用しているプログラム名を--programs。
- -rまたは--route表示ルーティングテーブル。
- -sまたは--statistice表示ジョブ情報ネットワーク統計。
- -tは、接続状況や--tcp TCPトランスポートプロトコルを表示します。
- -u接続状態表示--udpまたはUDPトランスポートプロトコル。
- -v --verbose表示処理や実行指示。
- -Vまたは--versionバージョン情報を表示。
- -wまたは--raw接続状況表示RAW伝送プロトコル。
- -xこのパラメータの指定と同じか--unix「-A UNIX」パラメータの影響。
- または--inetこのパラメータの影響および指定された「-A INET」同じパラメータを--ip。
ユースケース
[root@SHA-L0161171 arthas]$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11052 0.0.0.0:* LISTEN
tcp 0 0 172.24.248.108:8004 192.168.202.31:57588 ESTABLISHED
tcp 0 0 127.0.0.1:51092 127.0.0.1:8091 TIME_WAIT
tcp 0 0 172.24.248.108:8004 192.168.202.38:32283 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.38:58923 TIME_WAIT
tcp 0 0 172.24.248.108:8004 192.168.202.32:39983 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.37:38230 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.34:5081 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.32:17240 ESTABLISHED
tcp 0 0 127.0.0.1:38784 127.0.0.1:12050 TIME_WAIT
...
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] DGRAM 18442 /run/systemd/notify
unix 2 [ ] DGRAM 18444 /run/systemd/cgroups-agent
unix 2 [ ] DGRAM 23822 /var/run/chrony/chronyd.sock
unix 8 [ ] DGRAM 18455 /run/systemd/journal/socket
unix 18 [ ] DGRAM 18457 /dev/log
unix 2 [ ] DGRAM 14151 /var/run/nscd/socket
unix 2 [ ] DGRAM 584 /run/systemd/shutdownd
unix 3 [ ] STREAM CONNECTED 124439388 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 42312 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 39909
上記の出力には2つの部分が含まれています。
1、アクティブなインターネット接続「のRecv-Q」と「送信-Q」は、送信キューを参照し、受信キューをアクティブなTCP接続、。これらの数字は、一般的にゼロにする必要がありますされています。そうでない場合には、パッケージがキューの蓄積であることを意味します。この状況は、ごく少数の例で見ることができます。
図2に示すように、アクティブなUNIXドメインソケットアクティブUNIXドメインソケット(ソケットと同じネットワークが、唯一の天然の通信のために、性能を倍にすることができます)。
出力パラメータのインターネット接続の部分については、次のハイライトを行います
- プロト:共通、接続プロトコルを用いることを示し
tcp
、udp
そしてtcp6
ように。 - RECV-Q:キュー手段を受け取るパケットがキューの蓄積が言われていない場合は、この数は、一般的に、0でなければなりません。Tomcatサーバーギブ列子ください:TCP接続が確立されると、そのワーカースレッドので、この接続の外にスレッドアクセプタTomcatサーバーが存在しますが、接続は、スレッドテイク接続アクセプタはるかに速い速度よりも確立されている場合、今、接続がキューにありますバルクで、Recv関数-Qは、この時点では0より大きくなります。別の可能性は、システムがDoS攻撃は、外部の要求にもはや対応することができ遭遇したということです。
- 送信-Q:送信キュー、データ受信者はACKを受信していないか、ないか、またはローカルバッファ、送信キュー送信-Qはすぐにクリアすることができない場合は、パケットを送信するために、過剰な外向きのアプリケーションがあるかもしれない、あるいはん他には十分な速さのデータパケットを受信しています。
ローカルアドレスは:ローカルアドレス、フィールドの一般的なことを示し、値の3つの形式があります。
- 172.24.248.108:8004:この値は、値の最も一般的な形態であり、マシンがIPアドレス172.24.248.108を示し、機械を使用して接続ポート8004と外部プログラムを確立するための手順があります。
- 0.0.0.0:8004:値のこの形式は、すべてのマシンのIPアドレスを表すことができ0.0.0.0手段の一つ、実際には、かなり奇妙なようです。私たちは、マシンは、そのような今、私たちのマシンは、アドレスの設定が172.24.248.108である、2枚のネットワークカードで構成されているように、複数のネットワークカードを設定することができることを知って、アドレスの他の構成はので、ここで、172.24.248.109である0.0.0.0です127.0.0.1は172.24.248.108,172.24.248.109と3つのIPを表します。
- ::: 8004 ::のような::: *すべてゼロのIPアドレスを示す場合、全て0のIPv6アドレスを示す*すべてゼロと同じ意味の0.0.0.0を意味し、任意のポート番号を表します。
- 外国住所:マシンと外部との通信、および表示同様の規則ローカルアドレスのIPアドレス、繰り返しません。
状態:次のように、一般的な接続状態を接続状態を示します。
LISTEN:まず、サーバが聞くためにソケットをオープンする必要があり、状態LISTEN./ ソケットでは、リモートのTCPリスニングポートからの着信接続要求をリスニング接続されています。 /
SYN_SENT :. Activeopenクライアントの呼び出しがクライアントので、アプリケーションを介して接続します接続要求SYN_SENT状態を確立するためのSYNを送信した後、TCP。/ ザ・ソケットは、積極的に試合を待って、接続要求を送信した後aconnection接続を確立要求しようとしている。 /
SYN_RECVを:.サーバーた後、ACK確認応答クライアントSYNを送信する必要があり、その状態がSYN_RECV / * Aに設定されているクライアントにSYNを送信しながら、接続要求は、接続要求を受信した後、ネットワークから受信し、確認を待って、接続要求を送信してきた。/
ESTABLISHED:オープン接続を表し、またはその両方がデータ交換で既に実行されてもよいです。/ 。ANがソケット接続がオープン接続を表している、データをユーザに送信することができるESTABLISHEDうち /
FIN_WAIT1:それは接続要求を閉じるために、TCP FINを放射すると、近いアクティブ近い(activeclose)クライアント・アプリケーションの呼び出しは、状態FIN_WAIT1 ./入力した後、アクティブになっている のをソケットが閉じられ、接続がされてシャットダウンする。 要求割り込みリモートTCP接続、または前の接続確認割り込み要求を待っています /
CLOSE_WAIT:パッシブ(passiveclose)オフエンドTCP FINを受信した後に、ACK要求(ファイルの終わりを上位アプリケーションに伝送されるようにも受信する)FINに応答して送信され、そしてCLOSE_WAIT./入り、ザ・エンドのリモートシャット・ダウンを有します。閉じる割り込み要求に接続されたローカルユーザーから送信された待ちsocketto待っ/
FIN_WAIT2:ACKの後端に活性近い、FIN-WAIT-2./入力された接続である閉じ、shutdownfrom Aを待っているとソケットTCP割り込み、リモートからの接続要求のためのリモートエンドのを待つ。/
LAST_ACK:時間の受動的な期間の閉鎖端、アプリケーションがファイルの終わりがCLOSEが接続を閉じると呼ばれる受け取ります。そのTCPにつながっまた、これはお互いのACKを待って、FINを送信します。入社LAST-ACK./終了時にはリモートシャットダウンを持っており、ソケットで閉じられている。待機中foracknowledgement。ウェイティング割り込み要求を送信するために、元のリモートTCP接続のために承認/
TIME_WAIT:アクティブ決算はFINを受信した後、TCPはACKパケットを送信し、TIME-WAIT状態に。/ Thesocket IS待機それでもネットワーク内でのハンドルパケットに使用した後閉じる。十分な時間がリモートTCPが要求割り込みの受け付けの接続を受けていることを確認することを許可します/
CLOSING:比較的まれな./ Bothsockets WEがシャットダウンしかし、スティルリモートTCP接続が確認のために中断されたすべての当社のdatasentを待つ必要はありませんされている。 /
CLOSED:ACKパケットを受信した後、受動的な閉鎖端は、閉じた状態に入りました。接続が./終了される。任意の接続状況なしでされていない使用されるソケットで /
UNKNOWN:不明ソケット状態。/ 不明ザ・ソケットのThestateです。* /
リマーク
- SYN:(同期シリアル番号、SynchronizeSequence番号)このフラグは、3ウェイハンドシェイクは、TCP接続を確立するときにのみ有効です。これは、新しいTCP接続要求を表します。
- ACK:エンドシステムの先端が正常にすべてのデータを受信したが(確認番号、AcknowledgementNumber)は、要求のTCP確認応答フラグです。
- FIN(終了フラグ、完了)がコールバックを終了するために使用されるが、対応するTCPポートは、後続のデータを受信する準備ができて、まだ開いています。
共通のnetstatコマンド
1.リストのすべての情報
netstat -a
# 其中n表示使用IP地址表示机器信息,而不是使用域名
netstat -an
このコマンドは、grep
最も一般的に使用されます。
2.表示のみポートをリスニング
netstat -l
3.ディスプレイのPIDとプロセス名
netstat -anp
4.ステータス情報が連続して出力されます
netstat -anpc
5.(20前に)サービスポートIPアドレスまでの接続を確認してください
netstat -nat | grep "xx.xx.xx.xx:port" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
輸出
4 192.168.202.38
4 192.168.202.37
4 192.168.202.36
4 192.168.202.35
3 192.168.202.34
3 192.168.202.33
3 192.168.202.32
2 192.168.202.31
参照
- https://blog.csdn.net/dongl890426/article/details/86981901
- https://blog.csdn.net/qq_42014600/article/details/90372315
- https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html