English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
概要
Netstatコマンドは、ネットワーク接続、ルートテーブル、インターフェースステータス(Interface Statistics)、マスク接続、マルチキャストメンバー(Multicast Memberships)など、さまざまなネットワーク関連情報を表示するために使用されます。
出力情報の意味
netstatを実行した後、その出力結果は以下の通りです
Active Internet connections (w/o サーバー) プロトコル 受信-Q 送信-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE Active UNIX domain sockets (w/o サーバー) Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM CONNECTED 16178 @000000dd unix 1 [ ] STREAM CONNECTED 16176 @000000dc unix 9 [ ] DGRAM 5292 /dev/log unix 1 [ ] STREAM CONNECTED 16182 @000000df
全体として見ると、netstatの出力結果は二つの部分に分けることができます:
一つはActive Internet connections、有源TCP接続と呼ばれます、その中で"Recv-Q"と"Send-Q"は%0Aを指し、受信キューと送信キューを示します。これらの数字は通常0でなければなりません。それがそうでない場合、ソフトウェアパッケージがキューに積まれていることを示します。このような状況は非常に稀にしか見られません。
もう一つはActive UNIX domain sockets、有源Unixドメインソケットと呼ばれます(ネットワークソケットと同様ですが、本機通信のみに使用可能で、性能が2倍に向上します)。
Proto は接続に使用されるプロトコルを表示し、RefCnt は本套接続に接続するプロセス番号を示し、Types はソケットのタイプを表示し、State はソケットの現在の状態を表示し、Path は他のプロセスがソケットに接続するためのパス名を示します。
一般的なパラメータ
-a (all) 全てのオプションを表示します、デフォルトではLISTEN関連は表示されません
-t (tcp) tcpに関連するオプションのみを表示します
-u (udp) udpに関連するオプションのみを表示します
-n エイリアスを表示しない、数字で表示できる全てを数字に変換します。
-l みなぎっているListen(監听)のサービス状態のみをリスト表示します
-p 関連するリンクを構築したプログラム名を表示します
-r ルート情報、ルートテーブルを表示します
-e 拡張情報を表示します、例えばuidなど
-s 各プロトコルごとに統計を取ります
-c 指定された固定時間ごとに、このnetstatコマンドを実行します。
ヒント:LISTENおよびLISTENINGの状態は、以下のように使用する必要があります-またはa-lを通じてのみ見ることができます
実用コマンドの例
1. 全てのポート(監听および未監听を含む)をリスト表示
netstatで全てのポートをリスト表示 -a
# netstat -a | more アクティブなインターネット接続(サーバーおよび既存接続) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* アクティブなUNIXドメインソケット(サーバーおよび既存接続) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
netstatで全てのtcpポートをリスト表示 -at
# netstat -at アクティブなインターネット接続(サーバーおよび既存接続) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN
netstatで全てのudpポートをリスト表示 -au
# netstat -au アクティブなインターネット接続(サーバーおよび既存接続) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート udp 0 0 *:bootpc *:* udp 0 0 *:49119 *:* udp 0 0 *:mdns *:*
2. 監听状態の全てのSocketsをリスト表示
netstatで監听ポートのみを表示 -l
# netstat -l アクティブなインターネット接続(サーバーのみ) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN udp 0 0 *:49119 *:*
netstatで全ての監听tcpポートをリスト表示 -lt
# netstat -lt アクティブなインターネット接続(サーバーのみ) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN
netstatで全ての監听udpポートをリスト表示 -lu
# netstat -lu アクティブなインターネット接続(サーバーのみ) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート udp 0 0 *:49119 *:* udp 0 0 *:mdns *:*
netstatで全ての監听UNIXポートをリスト表示 -lx
# netstat -lx アクティブなUNIXドメインソケット(サーバーのみ) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6294 プライベート/maildrop unix 2 [ ACC ] STREAM LISTENING 6203 パブリック/cleanup unix 2 [ ACC ] STREAM LISTENING 6302 プライベート/ifmail unix 2 [ ACC ] STREAM LISTENING 6306 プライベート/bsmtp
3. 各プロトコルの統計情報を表示
netstatで全てのポートの統計情報を表示 -s
# netstat -s Ip: 11150総受信パケット 1 無効なアドレスで 0転送されました 0受信されたパケットが捨てられました 11149 受信されたパケット 11635 送信されたリクエスト Icmp: 0ICMPメッセージを受信 0入力ICMPメッセージが失敗しました。 Tcp: 582 アクティブな接続オープニング 2 失敗した接続試行 25 接続リセットを受信しました Udp: 1183 受信したパケット 4 未知のポートへのパケットを受信しました。 .....
netstatでTCPまたはUDPポートの統計情報を表示します -stまたは -su
# netstat -st # netstat -su
4. netstat出力にPIDとプロセス名を表示するnetstat -p
netstat -pは他のオプションと一緒に使用できるため、'PID'を追加できます。/プロセス名をnetstat出力に追加することで、debugging時に特定のポートで動作しているプログラムを簡単に見つけることができます。
# netstat -pt Active Internet connections (w/o サーバー) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート PID/プログラム名 tcp 1 0 ramesh-laptop.loc:47212 192.168.185.75:www CLOSE_WAIT 2109/firefox tcp 0 0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox
5. netstatの出力からホスト、ポート、ユーザー名(host, port or user)を表示させません
ホスト、ポート、ユーザー名を表示させたくない場合は、netstatを使用します -n。これらの名前の代わりに数字を使用します。
同様に、比較検索を行わないため、出力を高速化できます。
# netstat -an
これらの名前のいずれか1つを表示させたくない場合は、以下のコマンドを使用します
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
6. 持続的にnetstat情報を出力
netstatは毎秒に一度ネットワーク情報を出力します。
# netstat -c Active Internet connections (w/o サーバー) プロトコル 受信-Q 送信-Q ローカルアドレス 外部アドレス ステート tcp 0 0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHED tcp 1 1 ramesh-laptop.loc:52564 101.11.169.230:www CLOSING tcp 0 0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHED tcp 1 1 ramesh-laptop.loc:42367 101.101.34.101:www CLOSING ^C
7. システムがサポートしていないアドレス族(Address Families)を表示
netstat --verbose
出力の最後に以下のような情報があります
netstat: このシステムでは `AF IPX` に対するサポートがありません。 netstat: このシステムでは `AF AX` に対するサポートはありません。25このシステムでは `AF X` netstat: このシステムでは `AF AX`25このシステムでは `AF X` netstat: このシステムでは `AF NETROM` に対するサポートはありません。
8. ネットスタットを使用してカーネルルーティング情報を表示 -r
# netstat -r カーネルIPルーティングテーブル デスティネーション ゲートウェイ ゲンマスク フラッグ MSS ウィンドウ irtt インターフェース 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 リンク-ローカル * 255.255.0.0 U 0 0 0 eth2 デフォルト 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
注意:netstatを使用 -rn 数字形式で表示、ホスト名をクエリしません。
9. プログラムが実行しているポートを見つける
すべてのプロセスを見つけることができません、権限がない場合は表示されません。root権限ですべての情報を確認してください。
# netstat -ap | grep ssh tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT - tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -
指定されたポートで動作しているプロセスを見つける
# netstat -an | grep ':80'
10. ネットワークインターフェースリストを表示
# netstat -i カーネルインターフェーステーブル Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMU eth2 1500 0 26196 0 0 0 26883 6 0 0 BMRU lo 16436 0 4 0 0 0 4 0 0 0 LRU
詳細情報を表示します、ifconfigを使用してnetstat -ie:
# netstat -ie カーネルインターフェーステーブル eth0 リンクエンケプ:イーサネット HWaddr 00:10:40:11:11:11 UP ブロードキャスト マルチキャスト MTU:1500 メトリック:1 RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0 TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 カリャー:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Memory:f6ae0000-f6b00000
11IPとTCP分析
特定のサービスポートに接続しているIPアドレスを確認
wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22「 |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20 18 221.136.168.36 3 154.74.45.242 2 78.173.31.236 2 62.183.207.98 2 192.168.1.14 2 182.48.111.215 2 124.193.219.34 2 119.145.41.2 2 114.255.41.30 1 75.102.11.99
TCPの各状態リスト
wss8848@ubuntu:~$ netstat -nat |awk '{print $6} established) Foreign LISTEN TIME_WAIT ESTABLISHED TIME_WAIT SYN_SENT
まずすべてのステータスを取得し、uniqを使用してフィルタリングします。 -c統計を行い、その後ソートします。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c 143 ESTABLISHED 1 FIN_WAIT1 1 Foreign 1 LAST_ACK 36 LISTEN 6 SYN_SENT 113 TIME_WAIT 1 established)
最後のコマンドは以下の通りです:
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
分析access.logからアクセス前10のIPアドレス
awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10
以上は、編集者が皆さんに紹介したLinuxのnetstatコマンドの一般的な使用方法です。皆さんの役に立てば幸いです。
声明:本記事の内容はインターネットから取得しており、著作権者所有とされています。インターネットユーザーにより自発的に提供され、アップロードされています。本サイトは権利を所有しておらず、人工的な編集も行われていません。著作権侵害が疑われる内容を見つけた場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メール送信時は、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がついたら、本サイトは侵害が疑われる内容をすぐに削除します。)