Ubuntu网络管理命令:netstat

安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客

顾名思义,netstat命令不是用来配置网络的,而是用来查看各种网络信息的,包括网络连接、路由表以及网络接口的各种统计数据等。

netstat命令的基本语法如下:

netstat options

常用的选项如下:

  • -a:显示所有处于活动状态的套接字。
  • -A:显示指定协议族的网络连接信息。
  • -c:持续列出网络状态信息,刷新频率为1s。
  • -e:显示更加详细的信息。
  • -i:列出所有的网络接口。
  • -l:列出处于监听状态的套接字。
  • -n:直接显示IP地址,不转换成域名。
  • -p:显示使用套接字的进程ID和程序名称。
  • -r:显示路由表信息。
  • -s:显示每个协议的统计信息。
  • -t:显示TCP/IP协议的连接信息。
  • -u:显示UDP协议的连接信息。

下面的例子列出了所有的端口,包括监听和未监听的:

复制代码
liu@ubuntu:~$ netstat -a
Active Internet connections (servers and established)
Proto 	Recv-Q 	Send-Q 	Local Address    		Foreign Address     	State      
tcp      	0      	0 		localhost:ipp       0.0.0.0:*             	LISTEN     
tcp    	    0      	0 		localhost:mysql    	0.0.0.0:*             	LISTEN     
tcp     	0      	0 		0.0.0.0:hostmon  	0.0.0.0:*             	LISTEN     
tcp6       	0      	0 		ip6-localhost:ipp   [::]:*                 	LISTEN     
tcp6    	0      	0 		localhost:8005    	[::]:*                	LISTEN     
tcp6    	0      	0 		[::]:hostmon      	[::]:*                	LISTEN     
tcp6    	0      	0 		[::]:http-alt      	[::]:*                	LISTEN     
udp     	0      	0 		localhost:domain  	0.0.0.0:* 
udp     	0      	0 		0.0.0.0:bootpc     	0.0.0.0:* 
...

netstat --a命令的输出结果一共有6列。第1列为协议,包括tcp、tcp6以及udp等。第2列为用户未读取的套接字中的数据。第3列为远程主机未读取的套接字中的数据。第4列为本地地址和端口号。第5列为远程地址和端口号。第6列为套接字状态,可以是ESTABLISHED、TIME_WAIT、CLOSE以及LISTEN等值,分别表示连接已建立、连接已关闭等待处理完数据、连接已关闭以及正在监听进入的连接请求等。

使用-t选项可以只显示TCP/IP协议的连接,排除掉其他的协议,例如udp等,如下所示:

复制代码
liu@ubuntu:~$ netstat -at
Active Internet connections (servers and established)
Proto 	Recv-Q 	Send-Q 	Local Address     	Foreign Address      	State      
tcp     	0      	0 		localhost:ipp      	0.0.0.0:*             	LISTEN     
tcp     	0      	0 		localhost:mysql    	0.0.0.0:*             	LISTEN     
tcp     	0      	0 		0.0.0.0:hostmon   	0.0.0.0:*             	LISTEN     
tcp6    	0      	0 		ip6-localhost:ipp   [::]:*               	LISTEN     
tcp6    	0      	0 		localhost:8005     	[::]:*               	LISTEN     
tcp6    	0      	0 		[::]:hostmon       	[::]:*               	LISTEN     
tcp6    	0      	0 		[::]:http-alt      	[::]:*               	LISTEN     
...

下面的命令用于通过状态对连接进行筛选,只显示处于监听状态的TCP连接:

复制代码
liu@ubuntu:~$ netstat -tl
Active Internet connections (only servers)
Proto 	Recv-Q 	Send-Q 	Local Address   		Foreign Address      		State      
tcp     	0      	0		localhost:ipp       0.0.0.0:*               	LISTEN     
tcp     	0      	0 		localhost:mysql    	0.0.0.0:*               	LISTEN     
tcp     	0      	0 		0.0.0.0:hostmon    	0.0.0.0:*               	LISTEN     
...

在上面的例子中,本地地址是采用名称来显示的,例如localhost:ipp以及localhost:mysql等,并没有把数字形式的地址显示出来,不是很直观。用户可以使用-n选项来直接显示数字形式的地址,而不转换成名称,如下所示:

复制代码
liu@ubuntu:~$ netstat -tlan
Active Internet connections (servers and established)
Proto 	Recv-Q 	Send-Q 	Local Address        	Foreign Address 		State      
tcp     	0      	0 		127.0.0.1:631      	0.0.0.0:*          	    LISTEN     
tcp     	0      	0 		127.0.0.1:3306    	0.0.0.0:*           	LISTEN     
tcp     	0      	0 		0.0.0.0:5355      	0.0.0.0:*           	LISTEN     
tcp6    	0      	0 		::1:631             :::*                	LISTEN     
...

当某个端口被占用而导致服务无法启动时,可以使用netstat命令进行排查。例如,下面的命令用于将在8080端口监听的程序名称及其状态显示出来:

复制代码
liu@ubuntu:~$ sudo netstat -anp|grep ":8080"
tcp6     	0      0 			:::8080     			:::*         	LISTEN      1162/java   

本文节选自《Ubuntu Linux运维从零开始学》,获出版社和作者授权发布。

《Ubuntu Linux运维从零开始学 肖志健 清华大学出版社9787302662525》【摘要 书评 试读】- 京东图书 (jd.com)

相关推荐
阿洛学长17 分钟前
Python笔记:dir() 和 help() 完整用法(适配Python二级 + IDLE实操)
服务器·笔记·python
云生信24 分钟前
服务器上新 OmicOS,体验生信 AI 计算
运维·服务器·人工智能
keyipatience26 分钟前
5种IO模型与阻塞IO,select,poll,epoll,LT和ET模式
linux·服务器·网络·数据结构·c++·算法
荣合技术服务28 分钟前
高校HPC超算集群平台建设服务商——荣合科算
服务器·云计算·超算集群·hpc超算·服务器集群·科研计算
DFT计算杂谈28 分钟前
无图形界面服务器用 Codex 终端连接本地部署的 DeepSeek
运维·服务器·网络
Dream Cosmos43 分钟前
C++ 中 static 关键字的作用与使用规则
linux·c++
小此方2 小时前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu
wuyk5554 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
一技安身9 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI9 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go