Linuxコマンド--netstat

目次

1.はじめに

2.主なパラメータ

         3、出力情報の説明

4、ユースケース


1.はじめに

netstatコマンドは、IP、TCP、UDP、およびICMPプロトコルに関連する統計を表示するために使用され、通常、マシンの各ポートのネットワーク接続を確認するために使用されます。netstatは、カーネル内のネットワークおよび関連情報にアクセスするプログラムであり、TCP接続、TCPおよびUDPの監視、およびプロセス管理に関するレポートを提供できます。

2.主なパラメータ

-a		显示所有连接和监听端口
-t		显示tcp链接
-u		显示udp链接
-p		显示程序名字
-n		拒绝显示别名,能显示数字的全部转换位数字
-l		仅列出有在Listen(监听)的服务状态

-r		显示路由信息,路由表
-e		显示扩展信息,如Inode等
-s		按各个协议统计
-c		每隔一个固定时间,执行netstat命令
-i      显示网卡接口。即显示所有网络接口的信息。

提示LISTEN和ESTABLISHED的状态只有用-a或者-l才能看到

 

3、出力情報の説明

[root@sy-suz-srv51 ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:34880 SYN_RECV
tcp        0      0 k8sdev.suiyi.com.c:2379 10.1.62.21:47910        ESTABLISHED
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                    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

netstatの出力は2つの部分に分けることができます

1.アクティブなインターネット接続アクティブなTCP接続。「Recv-Q」と「Send-Q」は受信キューと送信キューを指します。これらの数値は通常0である必要があります。そうでない場合は、パッケージがキューに蓄積されていることを意味します。この状況は非常にまれなケースでのみ見られます。

2.アクティブなUNIXドメインソケットアクティブなUnixドメインソケット(ネットワークソケットと同じですが、ローカル通信にのみ使用でき、パフォーマンスを2倍にすることができます)。

列名の説明:

Proto:接続で使用されているプロトコルを表示します。

RefCnt:このソケットに接続されているプロセス番号を表します。

タイプ:ソケットのタイプを表示します。

状態:ソケットの現在の状態を表示します。

LISTEN  :在监听状态中。   
ESTABLISHED:已建立联机的联机情况。 
TIME_WAIT:该联机在目前已经是等待的状态。 

パス:ソケットに接続されている他のプロセスによって使用されるパス名を表します。

 

4、ユースケース

マシンのネットワーク接続の各状態の数を数えます。

netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

すべての状態を取り出し、uniq-cを使用してソートする前にそれらをカウントします。

netstat -nat |awk '{print $6}'|sort|uniq -c

最も接続されているサービスポートのIPアドレスを表示します。

netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20

sshプログラムが実行されているポートを見つけます。

 netstat -ap | grep ssh

netstat出力にPIDとプロセス名を表示します。

netstat -pt

指定されたポートで実行されているプロセスを確認します。次に、psコマンドを使用して特定のアプリケーションを見つけることができます。

netstat -anpt | grep ':16064' 

  ルーティング情報を表示する

[root@boke ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 eth0
link-local      0.0.0.0         255.255.0.0     U         0 0          0 eth0
172.17.96.0     0.0.0.0         255.255.240.0   U         0 0          0 eth0

 

おすすめ

転載: blog.csdn.net/xiao__jia__jia/article/details/114107956