ubuntu系统中端口的开放关闭与查看

使用 ufw 来开放端口,并使用 sslsof 来检查端口状态和占用情况。


一. 开放端口(使用 ufw)

ufw 是 Ubuntu 上最常用的防火墙管理工具,简单易用。

1.1 开放端口命令

sudo ufw allow 8080/tcp

解释:

  • sudo:以管理员权限运行命令。
  • ufw allow:允许某个端口或服务通过防火墙。
  • 8080/tcp:允许 TCP 协议的 8080 端口。

输出示例:

Rule added
Rule added (v6)
  • Rule added:表示 IPv4 的规则已添加。
  • Rule added (v6):表示 IPv6 的规则已添加。

1.2 验证端口是否开放

sudo ufw status

输出示例:

Status: active

To                         Action      From
--                         ------      ----
8080/tcp                   ALLOW       Anywhere
8080/tcp (v6)              ALLOW       Anywhere (v6)
  • 8080/tcp ALLOW Anywhere:表示 8080 端口已开放,允许所有来源访问。
  • 8080/tcp (v6) ALLOW Anywhere (v6):表示 IPv6 的 8080 端口也已开放。

1.3 查看端口是否已经开放(使用 ss)

ss 是一个强大的工具,用于查看系统的网络连接和端口状态。

命令:

sudo ss -tuln | grep 8080

解释:

  • ss:查看网络连接和端口状态。
  • -t:显示 TCP 端口。
  • -u:显示 UDP 端口。
  • -l:仅显示监听中的端口。
  • -n:以数字形式显示端口和 IP 地址(不解析域名和服务名称)。
  • grep 8080:过滤出与 8080 端口相关的行。

输出示例:

LISTEN 0      128        0.0.0.0:8080      0.0.0.0:*
  • LISTEN:表示端口正在监听。
  • 0.0.0.0:8080:表示 8080 端口对所有 IP 地址开放。
  • 如果没有输出,说明端口没有开放或没有程序监听该端口。

二、端口占用及开放状态查询

2.1 查看端口是否被占用(使用 lsof)

lsof 可以查看哪个进程正在使用某个端口。

命令:

sudo lsof -i :8080

解释:

  • lsof:列出打开的文件(包括网络端口)。
  • -i :8080:仅显示与 8080 端口相关的信息。

输出示例:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3  1234   user    3u  IPv4  12345      0t0  TCP *:8080 (LISTEN)
  • COMMAND:使用该端口的进程名称(例如 python3)。
  • PID:进程 ID(例如 1234)。
  • USER:运行该进程的用户(例如 user)。
  • NAME:端口状态(例如 *:8080 (LISTEN) 表示 8080 端口正在监听)。

如果没有输出,说明端口没有被占用。


三、关闭端口

使用 ufw 解除端口占用并关闭端口开放的操作非常简单。以下是详细步骤:


3.1 查看当前开放的端口

首先,检查当前开放的端口,确认需要关闭的端口。

命令:

sudo ufw status

输出示例:

Status: active

To                         Action      From
--                         ------      ----
8080/tcp                   ALLOW       Anywhere
8080/tcp (v6)              ALLOW       Anywhere (v6)
  • 这里显示 8080/tcp 端口已开放。

3.2 关闭端口开放

使用 ufw 关闭指定端口的访问规则。

命令:

sudo ufw delete allow 8080/tcp

输出示例:

Rule deleted
Rule deleted (v6)
  • Rule deleted:表示 IPv4 的规则已删除。
  • Rule deleted (v6):表示 IPv6 的规则已删除。

验证:
再次运行 sudo ufw status,确认端口规则已删除:

sudo ufw status
  • 如果输出中不再显示 8080/tcp,说明端口已关闭。

3.3 解除端口占用

如果端口被某个程序占用,需要停止该程序以释放端口。

查找占用端口的程序
使用 lsofss 查找占用端口的程序。

(1) 使用 lsof

sudo lsof -i :8080

输出示例:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3  1234   user    3u  IPv4  12345      0t0  TCP *:8080 (LISTEN)
  • COMMAND:占用端口的程序名称(例如 python3)。
  • PID:进程 ID(例如 1234)。

(2) 使用 ss

sudo ss -tuln | grep 8080

输出示例:

LISTEN 0      128        0.0.0.0:8080      0.0.0.0:*
  • 如果输出为空,说明端口未被占用。

3.4 停止占用端口的程序

根据 lsofss 的输出,找到占用端口的程序并停止它。

(1) 通过 PID 停止程序:

sudo kill -9 <PID>
  • 例如,停止 PID 为 1234 的程序:
    sudo kill -9 1234
    

(2) 通过服务名称停止程序:

如果程序是通过服务运行的(如 Nginx、Apache),可以使用 systemctl 停止服务。

例如,停止 Nginx:

sudo systemctl stop nginx

3.5 验证端口是否关闭

检查端口是否仍开放:

sudo ufw status
  • 确保输出中不再显示 8080/tcp

检查端口是否仍被占用:

sudo ss -tuln | grep 8080
  • 如果输出为空,说明端口已关闭且未被占用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小树苗m

您的打赏,是我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值