GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxnetstatコマンドチュートリアル(8つの例)

Linuxコマンドラインを初めて使用し、ネットワーク関連の学習に興味がある場合は、知っておくべきコマンドラインユーティリティがたくさんあります。そのようなツールの1つがnetstatです 。この記事では、わかりやすい例を使用してこのコマンドについて説明します。

ただし、その前に、これらの例はすべてUbuntu16.04LTSマシンでテストされていることに注意してください。

Linuxnetstatコマンド

netstatコマンドを使用すると、ネットワーク接続、ルーティングテーブル、インターフェイス統計、マスカレード接続、およびマルチキャストメンバーシップを印刷できます。その構文は次のとおりです。

netstat[オプション]

マニュアルページで説明されている方法は次のとおりです。

 Netstatは、Linuxネットワークサブシステムに関する情報を出力します。 
印刷される情報の種類は、最初の引数によって制御されます。
次のようになります。

(なし)
デフォルトでは、netstatは開いているソケットのリストを表示します。
アドレスファミリを指定しない場合、設定されているすべてのアドレスファミリのアクティブなソケットが印刷されます。

--route、-r
表示カーネルルーティングテーブル。
詳細については、route(8)の説明を参照してください。 netstat-rとroute-eは同じ出力を生成します。

--groups、-g
IPv4とIPv6のマルチキャストグループメンバーシップ情報を表示します。

- interfaces、-i
すべてのネットワークインターフェイスのテーブルを表示します。

--masquerade、-M
マスカレードされた接続のリストを表示します。

- -statistics、-s
各プロトコルの要約統計を表示します。

以下は、netstatコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。

Q1。 netstatコマンドの使用方法は?

基本的な使用法は非常に簡単です。オプションなしでnetstatコマンドを実行するだけです。

 netstat 

たとえば、私の場合、次の出力が生成されました。

アクティブなインターネット接続(サーバーなし)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
tcp 0 0 192.168.1.7:59510> tcp 0 0 192.168.1.7:57318 13.70.5.200:https ESTABLISHED
tcp 0 1 192.168.1.7:51238 cp .1:https ESTABLISHED
tcp 0 1 192.168.1.7:51240 52.114.32.7:https SYN_SENT
tcp 0 192.168.1.7:50196 0 0 192.168.1.7:41996 maa05s05-in-f4.1e:https TIME_WAIT
tcp 0 192.168.1.7:56680 wa-in-f94.1e100.n:https ESTABLISHED
tcp 1.7:54578 del03s10-in-f14.1:https TIME_WAIT
tcp 0 0 192.168.1.7:51310 del03s10-in-f2.1e:https TIME_WAIT

したがって、デフォルトでは、コマンドは開いているすべてのソケットのリストを表示します。

Q2。 netstatに数値アドレスを表示させる方法は?

デフォルトでは、netstatコマンドはシンボリックホスト、ポート、またはユーザー名を判別しようとします。これにより、ツールの速度が低下する可能性があります。ただし、数値に問題がない場合は、-nコマンドラインオプションを使用してツールに数値を出力させることができます。

 netstat -n 

たとえば、私の場合、次の出力が生成されました。

アクティブなインターネット接続(サーバーなし)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
tcp 0 0 192.168.1.7:59510 ESH 149.154.171.22:443 0 0 192.168.1.7:57318 13.70.5.200:443 TCP
TCP 0 0 192.168.1.7:51682 52.114.32.7:443 TIME_WAIT
TCP 0 0 192.168.1.7:54884 172.217.161.14:443 TIME_WAIT ESTABLISHED
tcp 0 0 192.168.1.7:35112 172.217.161.5:443 ESTABLISHED
tcp 0 0 192.168.2.97:45662 STP 0 192.168.2.97:45662 158.251.237.53:21 0 164.224:443 ESTABLISHED
tcp 0 192.168.1.7:58772 172.217.194.189:443 TIME_WAIT
tcp 443 :47730 144.76.158.93:443 SYN_SENT
tcp 0 0 192.168.1.7:59548 149.154.171.22:443 ESTABLISHED
tcp 0 192.168.1.7:35818 169.55.74.50:443 ISH:384 154 ESTABLISHED
tcp 0 /> tcp 0 0 192.168.1.7:44156 152.195.11.6:443 ESTABLISHED
tcp 0 0 192.168.1.7:58478 ISH:50. 12 139 ESTABLISHED
tcp 0 192.168.1.7:58820 172.217.161.3:443 ESTABLISHED
tcp。 149.154.164.224:443 ESTABLISHED
tcp 0 192.168.1.7:58192 52.77.195.144:443 ESTABLISHED
tcp 0 7.3 tcp 0 192.168.1.7:542 0 192.168.1.7:542 .1.1:139 127.0.0.1:60342ESTABLISHE D
tcp 0 0 192.168.1.7:34500 192.241.190.153:443 ESTABLISHED
tcp 0 0 192.168.1.7:54888 E172.217.161.14:443

そのため、今回は出力([外国の住所]列)で生成された数値のみを確認できます。

Q3。 netstatにtcp接続のみを表示させる方法は?

これは、-tコマンドラインオプションを使用して実行できます。

 netstat -t 

たとえば、私の場合、次の出力が生成されました。

アクティブなインターネット接続(サーバーなし)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
tcp 0 0 192.168.1.7:44236 ED 152.195.11.6:https tcp 0 0 192.168.1.7:59510 mails11.telegram.:https ESTABLISHED
tcp 0 0 192.168.1.7:57318 cp 13.70.5.200:https .1e:https ESTABLISHED
tcp 0 0 192.168.1.7:51984 del03s10-in-f2.1e:https ESTABLISHED
tcp 0 ISH 0 192.168.1.7:51786 ED 0 192.168.1.7:51786 ED <52.114.3 0 0 192.168.1.7:52294 xx-fbcdn-shv-01-m:https ESTABLISHED
tcp 0 192.168.1.7:54372 del03s01-in-f2.1e:https ESTABLISHED
tcp 0 1.7:47788 hyperserver.semse:https SYN_SENT
tcp 0 192.168.1.7:52298 xx-fbcdn-shv-01-m:https ESTABLISHED
tcp 0 0 192.168.1.7:51840 149.154.164.224:https TIME_WAIT
tcp 0 192.168.1.7:35258 del03s10-in-f1.1e:https ESTABLISHED
tcp 7 com:ftp ESTABLISHED
tcp 0 0 192.168.1.7:50728 del03s10-in-f10.1:https TIME_WAIT
tcp 0 192.168.1.7:56468 /> tcp 0 0 192.168.1.7:50892 149.154.164.224:https ESTABLISHED
tcp 0 0 192.168.1.7:45670 s f14.1:https TIME_WAIT
tcp 0 1 192.168.1.7:47790 hyperserver.semse:https SYN_SENT
tcp 0 SSH 0 STP 0 192.168.1.7:59548 E 192.168.1.7:35818 32.4a.37a9.ip4.st:https ESTABLISHED
tcp 0 0 192.168.1.7:50888 149.154.164.224:https ESTABLISHE D
tcp 0 0 192.168.1.7:33360 del03s10-in-f13.1:https TIME_WAIT
tcp 0 0 192.168.1.7:52332 ISH 207.46.140.70:https 0 E 1.7:58478 52.229.174.94:https ESTABLISHED
tcp 0 192.168.1.7:54374 del03s01-in-f2.1e:https TIME_WAIT
tcp tcp 52 0 localhost:60342 ansh:netbios-ssn ESTABLISHED
tcp 0 0 192.168.1.7:50890 STA 0 192.168.1.7:50890 ED 149.154.164.224:https .1:https TIME_WAIT
tcp 0 192.168.1.7:54224 del03s01-in-f2.1e:https ESTABLISHED
tcp localhost 0 s60 SP 0 ansh:netbios-ssn 0 tcp 0 1 192.168.1.7:47800 hyperserver.se mse:https SYN_SENT
tcp 0 0 192.168.1.7:45668 52.175.17.224:https 0 192.168.1.7:34500 do-11.lastpass.co:https ESTABLISHED
tcp 0 0 192.168.1.7:41844 a23-35-40-198.dep:https ESTABLISHED

Q4。 netstatにudp接続のみを表示させる方法

これは、-uコマンドラインオプションを使用して実行できます。

 netstat -u 

Q5。 netstatにリスニングソケットのみを表示させるにはどうすればよいですか?

これは、-lコマンドラインオプションを使用することで可能になります。

 netstat -l <​​/ pre> 

たとえば、私の場合、次の出力が生成されました。

アクティブなインターネット接続(サーバーのみ)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
tcp 0 0 ansh:domain pp 0 0 />:* *:* LISTEN
TCP 0 0 *:マイクロソフト-DS *:* LISTEN
TCP 0 0 *:NetBIOSの-SSN *:* LISTEN
にtcp6 0 0 IP6-はlocalhost:IPP [: :]:マイクロソフト-DS [::]:* LISTEN
にtcp6 0 [::]:*
にtcp6 0 [::] LISTENのNetBIOS-SSN [::]:* LISTEN
...
...
...

Q6。 netstatにプログラムの名前とPIDを表示させる方法は?

各ソケットが属するプロセスのプロセスIDの名前をnetstatに表示する場合は、-pコマンドラインオプションを使用します。

 netstat -p 

例:

アクティブなインターネット接続(サーバーなし)
ProtoRecv-QSend-Qローカルアドレス外部アドレスPID/プログラム名
tcp0 ISH 0 192.168.1.7:57318 ED 13.70.5 3247 / firefox
tcp 0 0 192.168.1.7:36732 13.76.170.95:https ESTABLISHED 3247 / firefox
tcp ISH 164。 0 0 192.168.1.7:55974 del03s10-in-f14.1:https ESTABLISHED 3247 / firefox
tcp 0 0 192.168.1.7:52074 fox 149.154.164.224:https 0 cp 0 1.7:60590 mails11.telegram.:https ESTABLISHED 3247 / firefox
tcp 0 192.168.1.7:52254 149.154.164.224:https ESTABLISHED 3247 / firefox 456 0 2.9 7 cp
t com:ftp ESTABLISHED 3160 / filezilla
tcp 00192.168.1。 7:35818 32.4a.37a9.ip4.st:https ESTABLISHED 3247 / firefox
tcp 0 192.168.1.7:52528 52.114.32.7:https 0 del03s10-in-f14.1:https ESTABLISHED 3247 / firefox
tcp 68 0 localhost:60342 ansh:netbios-ssn 449 ESTABLISHED 2625 / gvfsd-smb-brow
0 195 / gvfsd-smb-brow
11.6:HTTPS ESTABLISHED 3247 / Firefoxの
TCP 0 192.168.1.7:36730 13.76.170.95:https ESTABLISHED 3247 / Firefoxの
TCP 0 ansh:のNetBIOS-SSNはlocalhost:60342 ESTABLISHED -
TCP 0 0 192.168.1.7:52732 del03s10-in-f2.1e:https ESTABLISHED 3247 / firefox
tcp 0 0 192.168.1.7:60314 fox 52.229.174.94:https 0 1.7:53072 207.46.140.70:https ESTABLISHED 3247 / firefox
tcp 0 0 192.168.1.7:34500 do-11.lastpass.co:https ESTABLISHED 3247 / firefox

PID /プログラム名情報については、最後の列を参照してください。

Q7。 netstatでネットワーク統計を印刷する方法は?

これは、-sコマンドラインオプションを使用して実行できます。

 netstat -s 

この場合、ツールは、受信、破棄、配信されたパケットの総数などの情報を生成します。以下は、-sコマンドラインオプションを使用した場合の出力例です。

 Ip:
592215受信パケット総数
41無効なアドレス
0転送
0受信パケット破棄
580699受信パケット配信
539118リクエスト送信out
627個の送信パケットがドロップされました
ルートが見つからないために482個がドロップされました
2つのフラグメントが失敗しました
Icmp:
2337個のICMPメッセージを受信しました
6個の入力ICMPメッセージが失敗しました。
ICMP入力ヒストグラム:
宛先到達不能:2337
3917ICMPメッセージの送信
0ICMPメッセージの失敗
ICMP出力ヒストグラム:
宛先到達不能:3917
IcmpMsg:
InType3:2337
OutType3:3917
Tcp:
10943アクティブ接続開口部
127パッシブ接続開口部
38回の接続試行の失敗
467の接続リセットを受信しました
34の接続を確立しました
443643のセグメントを受信しました
414589のセグメントを送信しました
6929のセグメント再送信
428個の不良セグメントを受信しました。
11713リセットを送信しました

...
...
...

Q8。 netstatにカーネルルーティングテーブルを表示させる方法は?

これは、-rコマンドラインオプションを使用して実行できます。

 netstat -r 

私の場合、次の出力が生成されます。

カーネルIPルーティングテーブル
先ゲートウェイGenmaskフラグMSSウィンドウirtt IFACE
デフォルト192.168.1.1 0.0.0.0 UG 0 0 0 wlx18a6f713679b
リンクローカル* 255.255.0.0 U 0 0 0 wlx18a6f713679b
192.168.1.0 * 255.255.255.0 U 0 0 0 wlx18a6f713679b

netstat -r およびroute-e 同じ出力を生成します。

結論

したがって、これまでに理解したように、netstatコマンドは非常に重要なツールです。それは多くの機能を提供します-ここで表面を引っかいただけです。このチュートリアルで説明した内容の練習が終わったら、ツールのマニュアルページにアクセスして詳細を確認してください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)