Linux-netstat命令小结

#####netstat命令在面试以及日常开发使用中都会经常出现,所以特地小结一波;首先要知道Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 ,连接,多播成员等等。


####常见参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到


####例出当前所有的tcp链接
#####(所有的信息为参数-a,关于tcp的链接信息为-t)

root@ubuntu:/home/suhw# netstat -a
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 ubuntu:domain           *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 192.168.101.137:ssh     192.168.101.1:9139      ESTABLISHED
tcp        0      0 192.168.101.137:ssh     192.168.101.1:10056     ESTABLISHED
tcp        0      0 192.168.101.144:ssh     192.168.101.1:11414     ESTABLISHED
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     

......

####例出所有的udp链接,并且禁止反向域名解析
#####想查看tcp相关的就将u更改为t即可

root@ubuntu:/home/suhw# netstat -aun
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp        0      0 0.0.0.0:42000           0.0.0.0:*                          
udp        0      0 0.0.0.0:38453           0.0.0.0:*                          
udp        0      0 127.0.1.1:53            0.0.0.0:*                          
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:631             0.0.0.0:*                          
udp6       0      0 :::5353                 :::*                               
udp6       0      0 :::60305                :::*    

####列出正在监听的连接

root@ubuntu:/home/suhw# netstat -tnl
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 :::3306                 :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN    

####获取正在连接的进程名、进程号

root@ubuntu:/home/suhw# netstat -tlnp
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      2759/dnsmasq    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      945/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2118/cupsd      
tcp6       0      0 :::3306                 :::*                    LISTEN      967/mysqld      
tcp6       0      0 :::22                   :::*                    LISTEN      945/sshd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      2118/cupsd   

(主要的是要加上-p参数,即可打印出对应的PID以及进程名,再加上-e选项还可查看对应的用户名)

####查看每个协议的统计信息:

root@ubuntu:/home/suhw# netstat -s
Ip:
    80713 total packets received
    7 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    80706 incoming packets delivered
    83232 requests sent out
    4043 outgoing packets dropped
    9 dropped because of missing route
Icmp:
    10635 ICMP messages received
    0 input ICMP message failed.
    ICMP接收历史
        destination unreachable: 10633
        echo requests: 2
    10635 ICMP messages sent
    0 ICMP messages failed
    ICMP发出历史
        destination unreachable: 10633
        echo replies: 2
......

#####若查询tcp协议相关的信息,加上-t即可。


####每隔n秒输出一次netstat信息:

root@ubuntu:/home/suhw# netstat -c 3
激活Internet连接 (w/o 服务器)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.101.137:ssh     192.168.101.1:6334      ESTABLISHED
tcp        0      0 192.168.101.137:ssh     192.168.101.1:9139      ESTABLISHED
tcp        0      0 192.168.101.137:ssh     192.168.101.1:10056     ESTABLISHED
活跃的UNIX域套接字 (w/o 服务器)
Proto RefCnt Flags       Type       State         I-Node   路径
unix  7      [ ]         数据报                14849    /run/systemd/journal/socket
unix  2      [ ]         数据报                23699    /run/user/1000/systemd/notify
unix  3      [ ]         数据报                14830    /run/systemd/notify
unix  2      [ ]         数据报                14840    /run/systemd/journal/syslog
unix  22     [ ]         数据报                14845    /run/systemd/journal/dev-log

......

####查出对应进程的端口号
#####过滤信息就需要配合grep,假设我们要查看mysqld的端口号:

root@ubuntu:/home/suhw# netstat -apn | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      967/mysqld      
unix  2      [ ACC ]     流        LISTENING     20960    967/mysqld          /var/run/mysqld/mysqld.sock
root@ubuntu:/home/suhw# netstat -apn | head -n2
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

#####通过grep过滤后可以看出mysqld所占用的端口号为3306


####查出对应端口号的进程
#####和上一个例子相同,这次我们查看3306端口被哪个进程所占用:注意筛选条件为grep ‘:xxx’

root@ubuntu:/home/suhw# netstat -apn | grep ':3306'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp6       0      0 :::3306                 :::*                    LISTEN      967/mysqld    

####显示内核路由表信息

root@ubuntu:/home/suhw# netstat -r
内核 IP 路由表
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.101.2   0.0.0.0         UG        0 0          0 ens33
link-local      *               255.255.0.0     U         0 0          0 ens33
192.168.101.0   *               255.255.255.0   U         0 0          0 ens33

#####还有一些其他的参数可通过netstat --help查看并自己尝试,需要注意的就是在使用中常常是伴随着grep的使用以及多个参数 之间的配合最终才能筛选出符合条件的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值