如何在Linux中显示网络连接、路由表、接口统计等信息?Netstat了解一下!

简介: 如何在Linux中显示网络连接、路由表、接口统计等信息?Netstat了解一下!

Netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令行工具。它在 Linux 和其他类 Unix 系统中都有提供,可以帮助我们分析和诊断网络问题。本文将介绍 Netstat 命令的基本用法和常见选项。

Netstat 命令的语法

Netstat 命令的基本语法如下:

netstat [选项] [地址族]

其中,选项可以用来指定显示的信息类型和格式,地址族可以用来过滤显示的协议类型,如 inet(IPv4)、inet6(IPv6)、unix(Unix 域套接字)等。如果不指定地址族,则默认显示所有协议类型的信息。

Netstat 命令的常见选项

Netstat 命令有很多选项,可以根据不同的需求进行组合使用。下面列举一些常见的选项及其含义:

  • -a:显示所有套接字(socket),包括监听(listening)和非监听(non-listening)的。
  • -l:只显示监听状态的套接字。
  • -n:以数字形式显示地址和端口,不进行域名或服务名的解析。
  • -p:显示每个套接字对应的进程标识符(PID)和程序名。
  • -t:只显示 TCP 协议的套接字。
  • -u:只显示 UDP 协议的套接字。
  • -r:显示路由表(routing table)。
  • -i:显示网络接口(network interface)的统计信息。
  • -s:显示网络协议的统计信息。

Netstat 命令的示例

下面给出一些使用 Netstat 命令的示例,以便更好地理解其用法。

显示所有 TCP 连接

netstat -at

这个命令会显示所有 TCP 协议的套接字,包括本地地址(Local Address)、远程地址(Foreign Address)和连接状态(State)。例如:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.100:ssh       192.168.1.101:49210     ESTABLISHED
tcp        0      0 192.168.1.100:49212     172.217.160.78:https    ESTABLISHED

其中,LISTEN 表示监听状态,ESTABLISHED 表示已建立连接,其他可能的状态还有 SYN_SENT、SYN_RECV、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSE、CLOSE_WAIT、LAST_ACK、CLOSING 等。

显示所有 UDP 连接

netstat -au

这个命令会显示所有 UDP 协议的套接字,包括本地地址和远程地址。例如:

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:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:ntp       0.0.0.0.0:*
udp 0 0 192.168.1.100:mdns 0.0.0.0:*

其中,bootpc 表示 DHCP 客户端端口,domain 表示 DNS 服务端口,ntp 表示网络时间协议(Network Time Protocol)端口,mdns 表示多播 DNS(Multicast DNS)端口。

显示所有监听套接字

netstat -l

这个命令会显示所有监听状态的套接字,包括 TCP 和 UDP 协议的。例如:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:mdns      0.0.0.0:*                          

显示所有套接字及其对应的进程

netstat -p

这个命令会显示所有套接字及其对应的进程标识符(PID)和程序名,如果有权限的话。例如:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        1      1 localhost:49214         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49216         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49218         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49220         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49222         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49224         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49226         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49228         localhost:domain        CLOSE_WAIT
目录
相关文章
|
12天前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
44 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
127 18
|
2月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
120 5
|
3月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
189 5
|
3月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
70 0
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
147 18
|
5月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
410 17
|
5月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
239 12
|
5月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
126 18
|
5月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
142 10