Linux 查看某一端口是否开放(以 80 端口为例)

0
10

在 Linux 中,你可以通过多种方式检查端口是否被某个服务占用、是否已监听或是否开放。以下方法适用于 CentOS、Ubuntu、Debian、AlmaLinux、RockyLinux 等系统。


一、使用 lsof 查看端口占用情况

适用于大多数系统,但需要安装 lsof(通常已预装)。

lsof -i:80

示例输出可能类似:

nginx   1234  root  6u  IPv4  123456  0t0  TCP *:http (LISTEN)

说明:

  • 程序 nginx 正在监听 80 端口
  • LISTEN 状态表示端口已开放

若提示 command not found

Ubuntu/Debian:

apt install -y lsof

CentOS/RHEL:

yum install -y lsof

二、使用 netstat 查看端口是否监听

netstat -ntulp | grep 80

说明:

  • -n:显示数字地址
  • -t:显示 TCP
  • -u:显示 UDP
  • -l:仅显示监听状态 LISTEN
  • -p:显示程序名

典型输出:

tcp   0   0 0.0.0.0:80   0.0.0.0:*   LISTEN   1234/nginx

如果提示错误:

-bash: netstat: command not found

请安装 net-tools

Ubuntu/Debian:

apt-get install -y net-tools

CentOS/RHEL:

yum install -y net-tools

三、使用 ss 查看端口(推荐新系统)

ssnetstat 的升级版,现代 Linux(CentOS 7+、Ubuntu 18+)都推荐使用。

ss -ntulp | grep 80

输出示例:

LISTEN 0 128 *:80 *:* users:(("nginx",pid=1234,fd=6))

✔ 快
✔ 默认带系统
✔ 推荐使用


四、使用 nmap 远程扫描端口(检查是否对外开放)

如果你想测试端口是否 外网可访问,可以使用 nmap:

nmap -p 80 your_server_ip

若输出:

80/tcp open  http

表示 80 端口对外访问正常。

安装 nmap:

Ubuntu/Debian:

apt install -y nmap

CentOS/RHEL:

yum install -y nmap

五、查看防火墙是否放行端口(常见问题)

端口监听 ≠ 端口开放
你还需确保防火墙开放 80 端口。

5.1 检查 firewalld(CentOS 7+)

firewall-cmd --list-ports

开放 80 端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

5.2 Ubuntu ufw 防火墙

查看状态:

ufw status

开放端口:

ufw allow 80/tcp

六、快速检查汇总

常用命令总结:

目的命令
查看被哪个程序占用lsof -i:80
查看监听端口`netstat -ntulp
推荐查看端口监听(现代系统)`ss -ntulp
检查外网访问情况nmap -p 80 x.x.x.x
查看 firewalld 状态firewall-cmd --list-ports

发布回复

请输入评论!
请输入你的名字