当前位置:首页 > 系统教程 > 正文

Linux netstat命令从入门到实战:别再瞎找端口了!(解决90%网络问题)

Linux netstat命令从入门到实战:别再瞎找端口了!(解决90%网络问题)

Linux netstat命令从入门到实战:别再瞎找端口了!(解决90%网络问题) netstat命令  Linux网络排查 端口占用 网络连接状态 第1张

1. 为什么需要netstat?

在Linux系统中,网络问题层出不穷:服务启动失败、端口冲突、连接超时……新手往往盲目寻找端口,浪费时间。而netstat命令正是解决这些问题的“瑞士军刀”。它全称network statistics,可以显示网络连接、路由表、接口统计等,覆盖了90%的日常Linux网络排查需求。

2. 安装netstat

netstat通常包含在net-tools包中。如果你的系统没有预装,可以使用以下命令安装: sudo apt install net-tools (Debian/Ubuntu) sudo yum install net-tools (CentOS/RHEL)

3. 基础用法与选项

执行 netstat -anp 可以列出所有连接和监听端口。常用选项组合: - -t:显示TCP连接 - -u:显示UDP连接 - -n:以数字形式显示地址和端口 - -l:仅显示监听套接字 - -p:显示进程PID和名称 组合起来:netstat -tunlp 可以清晰查看系统监听的TCP/UDP端口及对应程序,是排查端口占用的首选。

4. 实战案例:快速定位问题

案例1:查看所有监听端口

输入 netstat -tunlp,输出示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd           tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld         
这里我们看到SSH监听22端口,MySQL监听3306,PID分别为1234和5678。

案例2:检查特定端口是否被占用

比如要查8080端口,使用 netstat -tunlp | grep 8080。如果输出为空,说明端口未被监听;若有记录,则显示占用进程,快速解决端口占用冲突。

案例3:分析网络连接状态

执行 netstat -anp 可以看到所有连接的网络连接状态,如ESTABLISHED(已建立)、TIME_WAIT(等待)等。如果大量连接处于TIME_WAIT,可能需要优化系统参数。

案例4:根据进程名查看端口

知道进程名想查端口,可结合grep:netstat -tunlp | grep nginx,立马看到nginx监听的80/443端口。

5. 解决实际问题:端口被占用怎么办?

假设启动服务时提示“Address already in use”,按以下步骤解决: 1. 查找占用端口的PID:netstat -tunlp | grep 端口号 2. 杀死进程:sudo kill -9 PID 3. 重新启动服务即可。

6. 总结与拓展

netstat命令虽然强大,但在新版Linux中已被ss命令替代(性能更好)。不过netstat依然广泛使用,掌握它足以应对大部分网络故障。无论是Linux网络排查还是日常运维,netstat都是必备工具。希望这篇教程让你告别盲目找端口,高效解决网络问题!