Linux 命令:netstat

1. 写在前面

本文主要介绍 Linux netstat(network and statistics) 命令: 用于分析网络统计数据的命令行工具。可以显示各种统计数据,如主机系统上的开放端口和相应地址、路由表和伪装连接。

关注 公众号 获取最新博文: 滑翔的纸飞机

2. 如何在 Linux 中使用 netstat 命令?

2.1 前提条件

  • 终端命令行工具;

  • 已安装 net-tools 软件包:包含 netstat 的软件包称为 net-tools。在当前Linux系统中,netstat 工具已预装,无需安装。但在旧系统上,运行 netstat 命令时很可能会出错。

    bash: netstat: command not found
    

    因此,要在 Linux 发行版上安装 netstat,请运行以下命令:

    $ sudo apt install net-tools         [On Debian, Ubuntu and Mint]
    $ sudo yum install net-tools         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
    $ sudo emerge -a sys-apps/net-tools  [On Gentoo Linux]
    $ sudo apk add net-tools            [On Alpine Linux]
    $ sudo pacman -S net-tools           [On Arch Linux]
    $ sudo zypper install net-tools      [On OpenSUSE]    
    

2.2 基本用法

netstat 常用方式不带参数输出:

root@dev:~# netstat
-------------------------------------------------------------------------
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 postgres:58288          postgres:amqp           ESTABLISHED
tcp        0      0 postgres:45566          postgres:6379           ESTABLISHED
tcp        0      0 postgres:58312          postgres:amqp           ESTABLISHED
tcp        0      0 postgres:36178          postgres:postgresql     TIME_WAIT
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    23733    /var/lib/haproxy/dev/log
unix  2      [ ]         DGRAM                    1594464  /run/user/1000/systemd/notify
unix  2      [ ]         DGRAM                    40530    /run/user/0/systemd/notify

如上所示:netstat 输出包含上下2部分:

  • Active Internet connections (w/o servers): 显示主机上已建立的网络连接,详情如下(列表字段含义):
Proto – 连接协议(TCP、UDP);

Recv-Q – 已接收/准备接收 bytes 的接收队列;

Send-Q – 待发送 bytes 的发送队列;

Local address – 本地连接的详细地址和端口。如果端口尚未建立,主机中的星号 (*) 表示服务器正在监听;

Foreign address– 连接远端的详细地址和端口。如果端口尚未建立,则会出现星号 (*);

State – 本地 socket 的状态,通常为 ESTABLISHED、LISTENING、CLOSED 或空白;
  • Active UNIX domain sockets (w/o servers): 显示所有活动的 “Unix Domain” 开放套接字,详情如下(列表字段含义):

    Proto – 套接字使用的协议(始终为 unix);
    
    RefCnt – 连接到此套接字的进程数的引用计数;
    
    Flags – 通常是 ACC 或空白;
    
    Type – socket 类型;
    
    State – socket状态,通常为CONNECTED、LISTENING或空白;
    
    I-Node – 与此套接字关联的文件系统 inode(索引节点);
    
    Path – socket 系统路径;
    

    另外,除了这里介绍的主要用法外,还可以通过 netstat 选项过滤网络信息。语法如下:

    netstat [options]
    或
    netstat [option 1] [option 2] [option 3]
    

常用参数:

参数 描述
–route, -r 显示内核路由表。netstat -r 和 route -e 的输出结果相同
–groups, -g 显示 IPv4 和 IPv6 的多播组成员信息
–interfaces, -i 显示所有网络接口表
–masquerade, -M 显示伪装连接列表
–statistics, -s 显示每个协议的汇总统计数据
–verbose, -v 显示指令执行过程
–wide, -W 不截断 IP 地址,根据需要使用尽可能宽的输出
–numeric, -n 直接使用IP地址,而不通过域名、端口或用户名
–numeric-hosts 显示IP地址,但不影响端口或用户名的解析
–numeric-ports
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值