原标题:如何在 Linux 中查看正在使用嘚端口
在对网络连接或特定于应用程序的问题进行故障排除时首先要检查的是应该在系统上实际使用哪些端口以及哪个应用程序正在侦聽特定端口。
本文会介绍如何使用 netstat ss 和 lsof 命令找出哪些服务上使用哪些端口。这些说明适用于所有基于 Linux 和 Unix 的操作系统如 macOS 。
网络端口由他的編号关联的 IP 地址以及 TCP 或 UDP 等通信协议的类型来标识。
侦听端口是应用程序或进程侦听的网络端口充当通信端点。
可以使用防火墙打开或關闭(过滤)每个侦听端口一般而言,开放端口是一个接收来自远程位置的传入数据包的网络端口
您不能在同一个 IP 地址上有两个不同的服務侦听同一端口。
例如如果你运行的 Apache Web 服务器正在监听 80 和 443 端口,您尝试安装 Nginx 以后将无法启动因为 HTTP 和 HTTPS 端口已在使用。
netstat 是一个命令行工具鈳以提供有关网络连接的信息。
要列出正在侦听的所有 TCP 或 UDP 端口包括使用端口和套接字状态的服务,请使用以下命令:
此命令中使用的选項具有以下含义:
- -n - 显示数字地址而不是主机名
- -l - 仅显示侦听端口。
- -p - 显示进程的 PID 和名称仅当您以 root 或 sudo 用户身份运行命令时,才会显示此信息
输出显示在此机器端口 80 由 nginx 服务器使用:
输出几乎与 netstat 报告的输出相同 :
- -n - 不要将端口号转换为端口名称。
- -p - 不要解析主机名显示数字地址。