Linux中netstat命令

1、Netstat是什么?

在Internet [RFC]中,Netstat的[定义]是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

2、实例

[root@ localhost ~]# netstat -a       

这条命令会列出所有的端口,包括监听的和未监听的。

[root@ localhost ~]# netstat -t

列出所有的tcp协议的端口,结果如下:

[root@ localhost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 localhost:1024              *:*                         LISTEN      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:ipp               *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0      0 localhost:40312             localhost:1024              ESTABLISHED 
tcp        0      0 localhost:1024              localhost:40312             ESTABLISHED 
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:ipp               *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN   
[root@ localhost ~]# netstat -ua

同样,这条命令表示列出所有的UDP协议的端口。

找出程序运行的端口

[root@ localhost ~]# netstat -ap | grep '程序名'

例如:

[root@ localhost ~]# netstat -ap | grep './server'
tcp        0      0 localhost:1024              *:*                         LISTEN      6130/./server       
tcp        0      0 localhost:1024              localhost:40312             ESTABLISHED 6130/./server       
You have new mail in /var/spool/mail/lzh

找出端口的程序名

[root@ localhost ~]# netstat -ap | grep '端口号'

例如:

[root@ localhost ~]#  netstat -ap | grep '1024'
tcp        0      0 localhost:1024              *:*                         LISTEN      6130/./server       
tcp        0      0 localhost:40312             localhost:1024              ESTABLISHED 6323/./client       
tcp        0      0 localhost:1024              localhost:40312             ESTABLISHED 6130/./server   

禁止域名解析
这个主要netstat中的-n选项有关,我们先来看看不带n时所输出的结果。

[root@ localhost ~]# netstat -ltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 localhost:1024              *:*                         LISTEN      6130/./server       
tcp        0      0 *:ssh                       *:*                         LISTEN      1800/sshd           
tcp        0      0 localhost:ipp               *:*                         LISTEN      1690/cupsd          
tcp        0      0 localhost:smtp              *:*                         LISTEN      1925/master         
tcp        0      0 *:ssh                       *:*                         LISTEN      1800/sshd           
tcp        0      0 localhost:ipp               *:*                         LISTEN      1690/cupsd          
tcp        0      0 localhost:smtp              *:*                         LISTEN      1925/master    

下面我们再来看看加上n 选项后的输入结果。

[root@ localhost ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 127.0.0.1:1024              0.0.0.0:*                   LISTEN      6130/./server       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1800/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1690/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1925/master         
tcp        0      0 :::22                       :::*                        LISTEN      1800/sshd           
tcp        0      0 ::1:631                     :::*                        LISTEN      1690/cupsd          
tcp        0      0 ::1:25                      :::*                        LISTEN      1925/master         

我们发现在local address 即主机地址这一栏中,如果没有带n选项,会将套接字所对应的域名解析出来,如果加上n选项,那么就不会显示,即禁止域名解析的功能,这样做有助于提高查询速度,因为减少了对主机域名的查询。

持续输出netstat信息

这个没有什么好说的,大家自己试一试指令即可。

[root@ localhost ~]# netstat -c

显示路由表的信息

[root@ localhost ~]# netstat -r

这条指令相当于route指令,会输出核心路由信息。

[root@ localhost ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.3.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.168.3.1     0.0.0.0         UG        0 0          0 eth0

显示接口信息

netstat -i
[root@ localhost ~]#  netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0     5277      0      0      0      578      0      0      0 BMRU
lo        16436   0      820      0      0      0      820      0      0      0 LRU

分类统计各个协议的相关信息

[root@ localhost ~]# netstat -sa
发布了41 篇原创文章 · 获赞 35 · 访问量 3639

猜你喜欢

转载自blog.csdn.net/chen_jimo_c/article/details/104360906