当前位置:首页 > 服务器技术 > 正文

Linux进程网络连接(小白也能看懂的详细教程)

在 Linux 系统中,了解某个进程正在使用哪些网络连接是非常重要的技能。无论是排查网络故障、监控系统安全,还是优化服务性能,掌握查看进程网络连接的方法都必不可少。本教程将带你从零开始,一步步学会如何查看和分析 Linux 进程的网络连接。

什么是进程网络连接?

每个运行在 Linux 上的程序(即“进程”)如果需要访问网络(比如 Web 服务器监听 80 端口,或浏览器连接远程网站),就会建立一个或多个“网络连接”。这些连接包括本地 IP 和端口、远程 IP 和端口、连接状态(如 LISTEN、ESTABLISHED)等信息。

Linux进程网络连接(小白也能看懂的详细教程) Linux网络连接  netstat命令 ss命令 lsof命令 第1张

常用命令介绍

在 Linux 中,有多个命令可以查看进程的网络连接。下面我们将重点介绍三个最常用的工具:netstatsslsof。这些命令也是我们 SEO 关键词中的核心内容:Linux网络连接、netstat命令、ss命令、lsof命令。

1. netstat 命令(传统但逐渐被替代)

netstat 是一个老牌的网络统计工具,虽然现在官方推荐使用 ss,但它仍然广泛存在于各种系统中。

要查看所有监听和已建立的连接及其对应的进程,可以使用:

netstat -tulnp

参数说明:

  • -t:显示 TCP 连接
  • -u:显示 UDP 连接
  • -l:仅显示监听状态的套接字
  • -n:以数字形式显示地址和端口(不解析主机名和服务名)
  • -p:显示进程 ID 和进程名称(需要 root 权限)

2. ss 命令(现代推荐工具)

ss(Socket Statistics)是 netstat 的更快、更高效的替代品,由 iproute2 工具包提供。

同样查看所有连接及进程信息:

ss -tulnp

参数含义与 netstat 类似。你也可以只查看 ESTABLISHED 连接:

ss -tn

3. lsof 命令(列出打开的文件)

在 Linux 中,“一切皆文件”,网络连接也被视为一种“文件”。lsof 可以列出进程打开的所有文件,包括网络套接字。

查看所有网络连接:

lsof -i

查看特定端口(如 80)的连接:

lsof -i :80

查看某个进程(如 nginx)的网络连接:

lsof -i -c nginx

实际案例演示

假设你发现服务器 CPU 占用很高,怀疑某个未知进程在偷偷外连。你可以按以下步骤排查:

  1. 运行 ss -tulnp 查看所有监听和连接
  2. 找到可疑的远程 IP 或高频率连接
  3. 记录其 PID(进程 ID)
  4. 使用 ps -p <PID> 查看该进程详情
  5. 必要时用 kill <PID> 终止恶意进程

小贴士

  • 使用 sudo 执行命令可看到所有进程的连接(普通用户只能看到自己的)
  • netstat 在较新系统中可能未默认安装,可用 apt install net-tools(Debian/Ubuntu)或 yum install net-tools(CentOS/RHEL)安装
  • ss 通常已预装,无需额外安装
  • 结合 grep 可快速过滤结果,例如:ss -tulnp | grep :80

总结

掌握 Linux 进程网络连接的查看方法,是系统管理员和开发者的必备技能。通过 netstat命令ss命令lsof命令,你可以轻松监控、诊断和管理系统的网络行为。无论你是刚接触 Linux 的小白,还是有一定经验的用户,希望这篇关于 Linux网络连接 的教程都能帮到你!