在使用 Ubuntu 或其他 Linux 系统时,你是否曾遇到过网络连接异常、某个端口被占用却不知道是哪个程序在使用?这时,netstat 命令就派上用场了!本文将手把手教你如何使用
netstat查看网络连接状态、监听端口、路由表等信息,即使你是 Linux 新手,也能轻松掌握。
什么是 netstat?
netstat(Network Statistics 的缩写)是一个用于显示网络连接、路由表、接口统计、伪装连接和多播成员的命令行工具。虽然在较新的系统中它正逐渐被
ss(socket statistics)命令取代,但因其语法直观、功能全面,仍被广泛使用。
安装 netstat(如未预装)
在某些精简版的 Ubuntu 系统中,
netstat可能未默认安装。它属于
net-tools软件包,可通过以下命令安装:
sudo apt updatesudo apt install net-tools
常用 netstat 命令示例
1. 查看所有活动的网络连接
使用以下命令可以列出所有 TCP 和 UDP 连接:
netstat -a
2. 仅查看 TCP 连接
netstat -t
3. 仅查看 UDP 连接
netstat -u
4. 显示监听中的端口(重要!)
这是排查“端口被占用”问题的关键命令:
netstat -l
5. 同时显示 PID 和程序名(强烈推荐)
加上
-p参数可以知道是哪个进程占用了端口,这对 查看端口占用 非常有用:
sudo netstat -tulnp
参数说明:
-t:TCP 协议
-u:UDP 协议
-l:仅显示监听(listening)状态的套接字
-n:以数字形式显示地址和端口号(不解析主机名和服务名,速度更快)
-p:显示进程 ID(PID)和程序名称
实战案例:找出占用 80 端口的程序
假设你启动 Nginx 时提示“Address already in use”,说明 80 端口已被占用。你可以这样查:
sudo netstat -tulnp | grep :80
输出可能如下:
tcp6 0 0 :::80 :::* LISTEN 1234/nginx: master
这说明 PID 为 1234 的 nginx 主进程正在监听 80 端口。
常见问题与注意事项
使用-p参数通常需要
sudo权限,否则看不到非当前用户的进程信息。
netstat在较新版本的 Ubuntu 中已不推荐使用,官方建议改用
ss命令(如
ss -tuln),但
netstat更易理解,适合初学者。 若只想快速查看某个端口是否被占用,也可结合
lsof命令:
sudo lsof -i :80 总结
通过本文,你应该已经掌握了如何在 Ubuntu 中使用 netstat 命令 进行基本的 网络连接状态 查看和 Linux 网络诊断。无论是排查服务启动失败、检查防火墙规则,还是学习网络知识,
netstat
都是一个实用的工具。 记住关键命令:
sudo netstat -tulnp
,它能帮你快速定位问题所在。希望这篇教程对你有帮助! 关键词回顾:Ubuntu netstat命令、网络连接状态、Linux网络诊断、查看端口占用
