在Linux上使用netstat和ss检查开放和监听端口
监控 Linux 系统上的开放和监听端口是维护 系统安全、执行 网络故障排除 和有效管理您的 服务器基础设施 的重要实践。 🛡️ 通过定期检查哪些端口是开放的以及哪些服务正在使用它们,您可以提前识别潜在的 安全风险,识别 未经授权的访问尝试,并确保您的系统不暴露于漏洞之中。 🔍
了解哪些服务绑定到特定端口有助于检测 配置错误 或 意外行为,例如在敏感端口上监听的不熟悉的进程。这些知识可以显著降低 安全漏洞 的可能性,因为它提供了关闭不必要端口或保护正在使用的端口所需的信息。 🚪🔒
在本文中,我们将介绍如何使用 netstat 和 ss 命令检查 Linux 系统上的开放和监听端口。
1. 理解端口及其类型
在我们深入工具之前,了解您可能遇到的基本端口类型是很重要的:
- 开放端口:这些是应用程序正在积极监听连接的端口。
- 监听端口:这些是服务或应用程序已绑定并正在积极等待传入网络流量的端口。
- 常见协议:
- TCP:传输控制协议(可靠、基于连接)。
- UDP:用户数据报协议(无连接、可靠性较低,但速度更快)。
2. 使用 netstat 检查端口
什么是 netstat?
netstat 是一个经典的命令行工具,提供网络统计信息和网络连接的信息,包括开放和监听端口。尽管它已被更现代的工具如 ss 所取代,但仍然被广泛使用。
安装 netstat
netstat 是 net-tools 包的一部分。在现代 Linux 发行版上,您可能需要手动安装它:
- Debian/Ubuntu:
- CentOS/RHEL:
使用 netstat 检查开放和监听端口
要检查您系统上的所有监听端口,包括 TCP 和 UDP,请使用以下命令:
- -t:显示 TCP 端口。
- -u:显示 UDP 端口。
- -l:仅显示监听端口。
- -n:显示数字地址,而不是解析主机名和服务。
示例输出:
- 本地地址:服务正在监听的 IP 和端口。
- 外部地址:远程客户端的 IP 和端口(对于活动连接)。
- 状态:连接的状态(例如,开放端口的 LISTEN 状态)。
使用 netstat 过滤特定端口或服务
您可以过滤输出以关注特定端口或服务。例如,要检查与 HTTP(端口 80) 相关的端口:
这将显示所有在端口 80 上监听的服务。
3. 使用 ss 检查端口
什么是 ss?
ss 是一个现代工具,已在许多 Linux 发行版中取代了 netstat。它比 netstat 更快、更高效,特别是在处理大量连接时。 ss 可以显示开放端口、网络套接字信息等。
使用 ss 检查开放和监听端口
ss 的语法与 netstat 非常相似。要检查所有监听的 TCP 和 UDP 端口,请使用:
- -t:显示 TCP 套接字。
- -u:显示 UDP 套接字。
- -l:仅显示监听套接字。
- -n:显示数字地址(不解析主机名)。
示例输出:
此输出显示所有监听端口及其状态(类似于 netstat)。
高级 ss 用法
ss 提供了更多高级选项,可以根据不同标准过滤和显示连接。
仅显示监听 TCP 端口:
仅显示监听 UDP 端口:
按进程 ID (PID) 显示监听端口:
要查看与监听端口关联的进程,请使用:
p 选项显示使用该端口的进程,这对于故障排除非常有帮助。
4. 比较 netstat 和 ss
netstat 和 ss 的用途相似,但有一些值得注意的区别:
- 速度和效率:ss 比 netstat 更快,消耗更少的资源。它可以更高效地处理大量连接。
- 可用性:ss 在大多数现代 Linux 发行版中默认包含,而 netstat 在某些系统上需要安装 net-tools 包。
- 输出格式:两者都提供有关端口和连接的详细信息,但 ss 具有更多过滤和显示特定信息的选项。
何时使用 netstat:
- 在较旧的 Linux 系统上工作时。
- 当您熟悉 netstat 语法并且不想切换时。
何时使用 ss:
- 当您需要更好的性能,特别是在连接数量较多的系统上。
- 用于更高级的过滤和网络分析。
5. 检查开放端口的其他工具
除了 netstat 和 ss,还有其他工具可以用来检查 Linux 中的开放和监听端口:
lsof 列出打开的文件,其中可能包括网络套接字。您可以使用它检查哪个进程正在特定端口上监听
这显示了使用端口 80 的进程。
nmap 是一个网络扫描工具,可用于检查系统上的开放端口。
此命令扫描本地主机上的 TCP 端口。
结论
监控开放和监听端口是系统管理员的一项基本任务,像 netstat 和 ss 这样的工具使这一过程变得简单。虽然 netstat 仍在较旧的系统上使用,但 ss 已成为由于其速度和效率而首选的工具。无论您是在排除网络问题还是在保护您的 Linux 服务器,这些工具将帮助您跟踪活动服务并确保您的端口得到适当管理。
如果您更熟悉 netstat,请使用它,或者切换到 ss 以更快、更高效地监控系统的开放和监听端口。
如需进一步澄清或帮助,请告诉我!




