netstat

来源:互联网 发布:mac 139邮彩云同步盘 编辑:程序博客网 时间:2024/05/16 01:08

netstat 命令可以帮助检查本机的网络状况,man netstat 可以看到对其的基本描述:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships


显示tcp协议

先来一个简单的例子,要显示tcp协议,使用-t参数,包括了tcp和tcp6

 netstat -tActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State      tcp        0      0 localhost:59226         localhost:8527          ESTABLISHEDtcp        0      0 bogon:44385             117.79.93.222:http      TIME_WAIT  tcp        0      0 localhost:8527          localhost:59305         CLOSE_WAIT tcp        0      0 localhost:8527          localhost:59235         ESTABLISHEDtcp        0      1 bogon:36113             tf-in-f19.1e100.n:https SYN_SENT   tcp        0      0 bogon:49941             117.79.93.196:http      TIME_WAIT  tcp        0      0 bogon:53574             117.79.93.208:http      ESTABLISHEDtcp        0      0 localhost:59259         localhost:8527          ESTABLISHED

数量太多,只显示了一部分。


显示本地TCP协议

添加一个-l参数,会只显示监听本地端口的TCP程序,现在一下子程序少了很多。

netstat -tlActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State      tcp        0      0 localhost:8527          *:*                     LISTEN     tcp        0      0 *:http                  *:*                     LISTEN     tcp        0      0 localhost:domain        *:*                     LISTEN     tcp        0      0 localhost:ipp           *:*                     LISTEN     tcp        0      0 *:https                 *:*                     LISTEN     tcp6       0      0 ip6-localhost:8527      [::]:*                  LISTEN     tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN 


显示IP地址

注意上面的Local Address一列,显示的不是ip地址,而是localhost, 如果想要显示IP地址,添加一个参数-n

netstat -tlnActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State      tcp        0      0 127.0.0.1:8527          0.0.0.0:*               LISTEN     tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     tcp6       0      0 ::1:8527                :::*                    LISTEN     tcp6       0      0 ::1:631                 :::*                    LISTEN 

显示进程名称和ID

如果还想显示进程名称和ID,再添加一个参数-p

netstat -tlnpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program nametcp        0      0 127.0.0.1:8527          0.0.0.0:*               LISTEN      6506/ssh        tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      889/nginx       tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1268/dnsmasq    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      590/cupsd       tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      889/nginx       tcp6       0      0 ::1:8527                :::*                    LISTEN      6506/ssh        tcp6       0      0 ::1:631                 :::*                    LISTEN      590/cupsd 


用grep查找进程

配合grep,就可以查找监听本地某端口的进程

netstat -tlnp | grep 127.0.0.1:8527tcp        0      0 127.0.0.1:8527          0.0.0.0:*               LISTEN      6506/ssh


用awk提取进程名称

配合awk,就可以快速找到进程名称

netstat -tlnp | grep 127.0.0.1:8527 | awk '{print $7}'7458/ssh


用awk提取进程id

再做一次awk查找,去掉斜线后面的,只保留进程id

netstat -tlnp | grep 127.0.0.1:8527 | awk '{print $7}' | awk -F '/' '{print $1}'7458

另外-a 参数代表显示所有连接,如果不用,则默认显示状态为connected的连接。

TCP连接状态详解 LISTEN: 侦听来自远方的TCP端口的连接请求SYN-SENT: 再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED: 代表一个打开的连接FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2: 从远程TCP等待连接中断请求CLOSE-WAIT: 等待从本地用户发来的连接中断请求CLOSING: 等待远程TCP对连接中断的确认LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认CLOSED: 没有任何连接状态


查看UDP协议

将-t参数换成-u


原创粉丝点击