Linux自学之旅-基础命令(netstat网络状态查看命令)

Linux自学之旅-基础命令(netstat网络状态查看命令)


前言

1.上一节我们讲述了网路探测命令ping,还没看过的可点击下方链接进入查看:ping

2.这一节我们讲述网络状态查看命令netstat


提示:以下是本篇文章正文内容

一、netstat命令格式

  • 命令名称:netstat
  • 命令全称:Print network connections,routing tables,interface statistics,masquerade connections,and multicast memberships。
  • 所在路径:/usr/bin/netstat
  • 执行权限:所有用户
  • 功能描述:输出网络连接、路由表、接口统计、伪装连接、组播成员
命令格式
[root@dns ~]# netstat [选项]
常用选项:
-a:列出所有网络状态
-c 秒数:指定每隔几秒刷新一次网络状态
-n:使用IP地址和端口号显示,不使用域名与服务名
-p:显示PID和程序名
-t:显示使用Tcp协议端口的连接状态
-u:显示使用UDP协议端口的连接状态
-l:仅显示监听状态的连接
-r:显示路由表

二、netstat使用

1.查看本机开启的端口

比较常用,选项搭配是“-tuln”。

[root@dns ~]# netstat -tuln
Active Internet connections (only servers)

(协议)(接受队列)(发送队列)(本机的IP与端口号)		(远程主机的IP与端口号)		(状态)

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN
tcp        0      0 192.168.122.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
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:35802           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:41435           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::6000                 :::*                    LISTEN
tcp6       0      0 :::20048                :::*                    LISTEN
tcp6       0      0 :::21                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
tcp6       0      0 ::1:6010                :::*                    LISTEN
tcp6       0      0 :::32956                :::*                    LISTEN
tcp6       0      0 :::2049                 :::*                    LISTEN
tcp6       0      0 :::35716                :::*                    LISTEN
udp        0      0 0.0.0.0:976             0.0.0.0:*
udp        0      0 0.0.0.0:2049            0.0.0.0:*
udp        0      0 192.168.122.1:53        0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
udp        0      0 0.0.0.0:20048           0.0.0.0:*
udp        0      0 0.0.0.0:111             0.0.0.0:*
udp        0      0 127.0.0.1:659           0.0.0.0:*
udp        0      0 0.0.0.0:47837           0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*
udp        0      0 0.0.0.0:56042           0.0.0.0:*
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp        0      0 0.0.0.0:47489           0.0.0.0:*
udp6       0      0 :::56234                :::*
udp6       0      0 :::976                  :::*
udp6       0      0 :::2049                 :::*
udp6       0      0 :::20048                :::*
udp6       0      0 :::111                  :::*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::53662                :::*

  • Proto:网络连接的协议,一般是Tcp和UDP协议
  • Recv-Q:接收的数据(已经在本地缓冲中,还没被进程取走的数据)
  • Send-Q:发送出去的,对方还没接收的数据
  • Local Address:本机的IP地址和端口号
  • Foreign Address:远程主机的IP地址和端口号
  • State:状态。
    1.LISTEN:监听状态,只有Tcp协议需要监听,UDP不需要
    2.ESTABLISHED:已经建立连接的状态。使用了“-l”选项则看不到此状态。
    (这两个是我们常用的状态,一个代表正在监听,一个代表已经建立连接;其他状态大家自查)

2.查看本机有哪些程序开启的端口

使用“-p”选项即可看到占用端口的程序名称和程序的PID

[root@dns ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      6316/rpcbind
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      6927/X
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      6799/rpc.mountd
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      7248/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6779/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      6781/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6913/master
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      8867/sshd: root@pts
tcp        0      0 0.0.0.0:35802           0.0.0.0:*               LISTEN      6798/rpc.statd
tcp        0      0 0.0.0.0:41435           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      6316/rpcbind
tcp6       0      0 :::6000                 :::*                    LISTEN      6927/X
tcp6       0      0 :::20048                :::*                    LISTEN      6799/rpc.mountd
tcp6       0      0 :::21                   :::*                    LISTEN      6797/vsftpd
tcp6       0      0 :::22                   :::*                    LISTEN      6779/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      6781/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      6913/master
tcp6       0      0 ::1:6010                :::*                    LISTEN      8867/sshd: root@pts
tcp6       0      0 :::32956                :::*                    LISTEN      6798/rpc.statd
tcp6       0      0 :::2049                 :::*                    LISTEN      -
tcp6       0      0 :::35716                :::*                    LISTEN      -
udp        0      0 0.0.0.0:976             0.0.0.0:*                           6316/rpcbind
udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -
udp        0      0 192.168.122.1:53        0.0.0.0:*                           7248/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                           7248/dnsmasq
udp        0      0 0.0.0.0:20048           0.0.0.0:*                           6799/rpc.mountd
udp        0      0 0.0.0.0:111             0.0.0.0:*                           6316/rpcbind
udp        0   1536 0.0.0.0:123             0.0.0.0:*                           23260/ntpdate
udp        0      0 127.0.0.1:659           0.0.0.0:*                           6798/rpc.statd
udp        0      0 0.0.0.0:47837           0.0.0.0:*                           -
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           6364/avahi-daemon:
udp        0      0 0.0.0.0:56042           0.0.0.0:*                           6798/rpc.statd
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6335/chronyd
udp        0      0 0.0.0.0:47489           0.0.0.0:*                           6364/avahi-daemon:
udp6       0      0 :::56234                :::*                                -
udp6       0      0 :::976                  :::*                                6316/rpcbind
udp6       0      0 :::2049                 :::*                                -
udp6       0      0 :::20048                :::*                                6799/rpc.mountd
udp6       0      0 :::111                  :::*                                6316/rpcbind
udp6       0      0 :::123                  :::*                                23260/ntpdate
udp6       0      0 ::1:323                 :::*                                6335/chronyd
udp6       0      0 :::53662                :::*                                6798/rpc.statd

大家可以看到结果多了“PID/程序名”,可以知道是哪个程序占用了端口。(一般配合管道符可以轻松过滤你想过滤的程序)

3.查看所有连接

配合选项“-an”即可,不过输出结果过多,一般很多状态都会出现,这里就不演示了,大家可以自己试试。(netstat -an即可)


总结

本节我们主要讲述了netstat命令,及其常用用法。
查看程序占用了计算机哪些端口:netstat -tulnp(常用)

猜你喜欢

转载自blog.csdn.net/qq313088385/article/details/115028268