如安在Ubuntu上检查、开启、关闭端口?

[复制链接]
发表于 2026-10-3 21:01:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Ubuntu 上如何检查、开启、关闭端口

排查服务连不上、端口起不来这类问题,绕不开的就是「端口」。这篇先把 port 在网络里的位置说清楚,再给一套 Ubuntu 上查端口、开端口、关端口的实操命令。

一、先理解端口在哪一层

网络通信的基础是 TCP/IP 协议栈,模型由四个层次组成:链路层、网络层、传输层、应用层。端口正是位于传输层和应用层之间的关键概念。

传输层

负责端到端通信,两个主要协议:

  • TCP(Transmission Control Protocol):提供可靠的数据传输服务,保证数据包按序无误到达;
  • UDP(User Datagram Protocol):无连接、不可靠,适用于对速率要求高于数据完整性的场景(音视频、实时心跳等)。

应用层

不同的网络服务通过不同的端口号来区分。端口是一个逻辑上的结构,范围从 0 到 65535,每个端口对应一个正在运行的服务,或者等待接收特定类型数据的应用程序。

二、端口的三类划分

  • 熟知端口(Well-Known Ports):范围 0–1023,被分配给特定服务,比如 HTTP 用 80、HTTPS 用 443。装服务时想用这类端口需要 root 权限(或用 80/443 的 1024 以下绑定技巧)。
  • 注册端口(Registered Ports):范围 1024–49151,给普通用户程序注册使用,日常绝大部分服务都落在这段(比如 3306 MySQL、8080 Tomcat、8089)。
  • 动态/私有端口(Ephemeral Ports):49152–65535,系统临时分配给客户端连接用。

三、Ubuntu 上检查端口

1. 看哪些端口在监听

ss -lntp
# 老系统没有 ss 就退回到
netstat -lntp

-l 只显示监听中的,-n 直接显示数字不解析服务名,-t TCP、-u UDP,-p 显示占用它的进程。输出里的 LISTEN 行就是当前开放着的端口。

2. 查某个端口有没有被占

ss -lntp | grep :8080
netstat -lntp | grep :443

3. 测试端口能不能连上(通不通网络)

# 测本机端口
nc -zv 127.0.0.1 3306

# 测远端端口
nc -zv 192.168.1.10 22

或者用 telnet:

telnet 127.0.0.1 3306

四、开启端口

「开端口」其实是两件事,而且都要做:

1. 让服务真的监听这个端口

典型是改配置文件重启服务,比如 Nginx 里加一个 listen 8080;,然后 systemctl restart nginx。服务没起来,端口当然不存在。

2. 放行防火墙

Ubuntu 默认用 ufw(无图形界面):

# 放行单个端口(TCP)
sudo ufw allow 8080/tcp

# 放行一段端口
sudo ufw allow 8000:9000/tcp

# 放行服务名
sudo ufw allow OpenSSH

# 查看状态和已放行规则
sudo ufw status

如果是云服务器,还要到控制台安全组里加规则——安全组和系统防火墙是两层墙,只开一层外网还是连不上,这是新手最常踩的坑。

五、关闭端口

1. firewall 层面先关掉

sudo ufw deny 8080/tcp
sudo ufw delete allow 8080/tcp

2. 让进程不再监听(关服务)

sudo systemctl stop nginx
sudo systemctl disable nginx     # 顺手禁止开机自启

3. 直接杀掉占用端口的进程

sudo fuser -k 8080/tcp

或者查到 PID 再杀:

ss -lntp | grep :8080
sudo kill -9 进程PID

六、一条实用排错链

  1. 服务起了吗:systemctl status 服务名;
  2. 端口监听了吗:ss -lntp | grep 端口——如果 LISTEN 里根本没有,问题在服务本身;
  3. 本机能连吗:nc -zv 127.0.0.1 端口——本机都不通,是应用问题;
  4. 局域网能连吗:nc -zv 内网IP 端口——不通就是 ufw/安全组没放行;
  5. 外网能连吗:从另一台机器上 nc -zv 公网IP 端口——不通查云安全组。

小结

端口范围 0–65535,0–1023 是熟知端口(80/443 在此),1024–49151 是注册端口(日常服务多在这段),位置在传输层与应用层之间。Ubuntu 上排查就三板斧:ss -lntp 看监听 → ufw 放行 → 云安全组也加规则;要关就 ufw deny + 停服务 + 杀进程,三步齐活。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表