文章目录

  • 1 netstat 简介
  • 2 选项说明
  • 3 实战例子
  • 4 IP 和 TCP 分析

1 netstat 简介

netstat 可以用来查 Linx 网络系统接口的状态信息,统计信息,打开的 socket 连接,以及路由表等等。

在 CentOS 7 操作系统中,此命令默认是未安装的,所以我们可以使用如下命令进行网络工具包的安装。

yum install -y net-tools

注意,在 Windows 操作系统也是有这个命令的,用法一样。

2 选项说明

我们可以使用netstat --help命令来查看帮助文档。

[root@chenpihost ~]# netstat --help
usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]-r, --route              display routing table-I, --interfaces=<Iface> display interface table for <Iface>-i, --interfaces         display interface table-g, --groups             display multicast group memberships-s, --statistics         display networking statistics (like SNMP)-M, --masquerade         display masqueraded connections-v, --verbose            be verbose-W, --wide               don't truncate IP addresses-n, --numeric            don't resolve names--numeric-hosts          don't resolve host names--numeric-ports          don't resolve port names--numeric-users          don't resolve user names-N, --symbolic           resolve hardware names-e, --extend             display other/more information-p, --programs           display PID/Program name for sockets-o, --timers             display timers-c, --continuous         continuous listing-l, --listening          display listening server sockets-a, --all                display all sockets (default: connected)-F, --fib                display Forwarding Information Base (default)-C, --cache              display routing cache instead of FIB-Z, --context            display SELinux security context for sockets<Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}{-x|--unix} --ax25 --ipx --netrom<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inetList of possible address families (which support routing):inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)

下面介绍几个常用的选项:

  • -a,–all:显示所有 socket 连接,默认显示已连接的。
  • -t,–tcp:仅显示 TCP 相关。
  • -u,–udp:仅显示 UDP 相关。
  • -p,–programs:显示建立 socket 连接的进程 ID 和程序名。
  • -n,–numeric:不解析别名,能显示数字的全部转为数字,例如 IP 和 Port。
  • -l,–listening:仅显示在监听(Listening)的 socket 服务。
  • -r,–toute:显示路由表。
  • -e,–extend:显示更多扩展信息。
  • -s,–statistics:按各个协议展示网络统计信息。
  • -c,–continuous:继续监听,即每隔一段时间执行一次 netstat 命令。

3 实战例子

下面演示几个比较经常用的命令选项搭配使用。

显示所有 socket 连接,包括监听和未监听的,一般很少使用这个选项来查看,因为无用信息比较多。

[root@chenpihost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp        0     96 chenpihost:ssh          192.168.1.6:52061       ESTABLISHED
tcp6       0      0 [::]:6379               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp6       0      0 localhost:323           [::]:*
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     20432    private/verify
unix  2      [ ACC ]     STREAM     LISTENING     21315    private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     21318    private/proxywrite
unix  2      [ ACC ]     STREAM     LISTENING     21321    private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     21324    private/relay
unix  2      [ ACC ]     STREAM     LISTENING     21330    private/error
unix  2      [ ACC ]     STREAM     LISTENING     21333    private/retry

查看路由表信息。

[root@chenpihost ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.1.1     0.0.0.0         UG        0 0          0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 ens32

查看所有 TCP 相关。

[root@chenpihost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp        0     96 chenpihost:ssh          desktop-ca0ir74:52061   ESTABLISHED
tcp6       0      0 [::]:6379               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN

查看所有 UDP 相关,使用得也少。

[root@chenpihost ~]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp6       0      0 localhost:323           [::]:*

查看所有监听状态的 TCP 相关,并打印相关的程序名。我们一般使用此命令来查找主机上哪个程序占用哪个端口;或者是否服务正常启动,正常监听端口。这个选项搭配是平时最常用到的

Local Address 列中,如果 IP 是 0.0.0.0 则表示监听所有的 IP 地址,如果是监听 127.0.0.1 则表示此端口只能在本地访问。

[root@chenpihost ~]# netstat -nltp
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:6379            0.0.0.0:*               LISTEN      1449/redis-server *
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1070/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1171/master
tcp6       0      0 :::6379                 :::*                    LISTEN      1449/redis-server *
tcp6       0      0 :::22                   :::*                    LISTEN      1070/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1171/master

如果要实时监听端口情况,则可以使用watch netstat -ntpl命令,它会每2秒刷新一次,如下所示:

Every 2.0s: netstat -ntpl                                                                                                                                                                                                               Wed Dec 29 23:59:20 2021Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      1449/redis-server *
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1070/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1171/master
tcp6       0      0 :::6379                 :::*                    LISTEN      1449/redis-server *
tcp6       0      0 :::22                   :::*                    LISTEN      1070/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1171/master

当然,也可以使用-c选项来实时监听端口情况,命令如下:

[root@chenpihost ~]# netstat -ntplc
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:6379            0.0.0.0:*               LISTEN      1449/redis-server *
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1070/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1171/master
tcp6       0      0 :::6379                 :::*                    LISTEN      1449/redis-server *
tcp6       0      0 :::22                   :::*                    LISTEN      1070/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1171/master
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:6379            0.0.0.0:*               LISTEN      1449/redis-server *
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1070/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1171/master
tcp6       0      0 :::6379                 :::*                    LISTEN      1449/redis-server *
tcp6       0      0 :::22                   :::*                    LISTEN      1070/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1171/master
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:6379            0.0.0.0:*               LISTEN      1449/redis-server *
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1070/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1171/master
tcp6       0      0 :::6379                 :::*                    LISTEN      1449/redis-server *
tcp6       0      0 :::22                   :::*                    LISTEN      1070/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1171/master

4 IP 和 TCP 分析

查看连接某服务端口最多的的 IP 地址。例如下面查看6379端口的。

[root@chenpihost ~]# netstat -ntu | grep :6379 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
2        127.0.0.1

TCP 各种状态列表。

[root@chenpihost ~]# netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
ESTABLISHED      1

查看 redis 进程数,如果接近预设值,说明不够用,需要增加。

[root@chenpihost ~]# netstat -anpo | grep "redis" | wc -l
4

本次分享到此结束啦~~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的支持就是我创作最大的动力!

Linux netstat 命令详解相关推荐

  1. Linux netstat命令详解和使用例子(显示各种网络相关信息)

    netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...

  2. linux基础命令netstat,Linux netstat命令详解与常用选项

    netstat是控制台命令,是一个很有用的监控TCP/IP网络工具,通过netstat命令我们可以查看路由表与实际网络连接的状态信息,这样可以让我们更加的方便了解到网络连接,下面随豆豆了解netsta ...

  3. linux的Netstat命令详解

    关注 Linux 的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务;另外一个就是 有什么连接或服务可用.使用 ps 命令可以查看处于活跃状态的服务;使用 netstat 命令则可以显示所 ...

  4. linux的ping命令含义,Linux ping命令详解

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 ...

  5. linux who命令功能,Linux who命令详解

    who 命令显示关于当前在本地系统上的所有用户的信息.显示以下内容:登录名.tty.登录日期和时间.输入whoami 显示您的登录名.tty.您登录的日期和时间.如果用户是从一个远程机器登录的,那么该 ...

  6. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  7. linux rm -rf删除文件,Linux rm命令详解

    Linux rm命令 Linux rm命令用于删除一个文件或者目录 语法: rm [options] name... 参数解释: -f, --force 强制删除.忽略不存在的文件,不提示确认 -i ...

  8. linux ntpdate代码,Linux ntpdate命令详解

    ntpdate命令用于同步更新互联网时间,或者NTP服务器时间 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源 ...

  9. linux wc -l效率,Linux wc命令详解

    wc常见命令参数 wc -l : 统计行 wc -c: 统计字节数 wc -m:统计字符数,不能与-c同时使用 wc -w:统计字数 wc -L:打印最长长度 注意: wc 可以直接后面跟文件使用,但 ...

  10. 【linux】循序渐进学运维-基础篇-netstat命令详解

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第62篇文章 文章目录 前言 一. netstat命令详解 作用 1. 常用参数 2. 命令使用 1) 参数作用详解 2) 网络连接状 ...

最新文章

  1. alibaba sentinel限流组件 源码分析
  2. 神奇的HyperLogLog算法
  3. VTK:vtkArrayToTable用法实战
  4. c++Selection Sort选择排序的实现算法(附完整源码)
  5. 前端学习(1756):前端调试值之如何监控页面的动画
  6. java删除有序数组中的重复元素_算法刷刷刷Leetcode第26题删除排序数组中的重复项...
  7. WebDAV被启用(转)
  8. nbu备份win平台oracle,NBU备份ORACLE错
  9. 使用油猴脚本在网页中插入按键
  10. python模拟登录教务系统
  11. 向量叉乘公式_大物学习笔记(公式总结)
  12. 基于51单片机的多功能温度监测系统(附代码)
  13. Mount is denied because the NTFS volume is already exclusively opened.The volume may be already ...
  14. 东大oj1155 等凹函数
  15. 2023中职网络安全竞赛Web安全应用任务解析答案
  16. 《人类简史》——一场引人入胜的人类征途
  17. php 怎么远程包含,利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制...
  18. 【C语言刷LeetCode】717. 1 比特与 2 比特字符(E)
  19. python自定义html_Python 第十二篇:HTML基础
  20. python股票全套系统下载_GitHub - xiangjiaowangzi/stock: stock,股票系统。使用python进行开发。...

热门文章

  1. Perl脚本语言学习1:
  2. Unicode字符编码
  3. VB 源码 产生任意数之间随机数,支持负数
  4. 【电子书】Head First Java
  5. 推荐《程序设计导引及在线实践》
  6. HttpClient之Java爬虫工具
  7. 单片机原理及应用复习
  8. ESP32 开发笔记(十一)使用 ESP32 做为 WebServer
  9. Oracle安装基本步骤
  10. Hadoop_23_oozie