文档首页> Linux命令> ubuntu系统ufw开放端口教程

ubuntu系统ufw开放端口教程

发布时间:2025-05-16 00:03       

Ubuntu系统UFW防火墙开放端口教程 🔐

UFW(Uncomplicated Firewall)是Ubuntu默认的防火墙工具,基于iptables,简化了防火墙规则管理。本教程详细介绍如何用UFW 开放/关闭端口,并确保安全配置。


📌 一、检查UFW状态

在操作前,先确认UFW是否已启用:

sudo ufw status
​
  • 如果显示 Status: inactive,表示防火墙未启用。
  • 如果显示 Status: active,表示已启用,并列出当前规则。

📌 二、启用UFW(如未开启)

sudo ufw enable
​

注意:

  • 启用后,默认 拒绝所有入站(incoming)连接,仅允许出站(outgoing)。
  • 如果通过SSH远程操作,务必先放行SSH端口(22),否则可能失去连接!

📌 三、开放指定端口

1. 开放单个端口(如80)

sudo ufw allow 80
​

说明:

  • 默认同时放行 TCP和UDP 协议。
  • 适用于HTTP服务(Web服务器)。

2. 仅开放TCP或UDP(如443/TCP)

sudo ufw allow 443/tcp
​

适用场景:

  • HTTPS(443/TCP)
  • DNS(53/UDP)

3. 开放端口范围(如8000-9000)

sudo ufw allow 8000:9000/tcp
​

适用场景:

  • 游戏服务器
  • P2P应用

4. 放行特定IP访问端口(如仅允许192.168.1.100访问22)

sudo ufw allow from 192.168.1.100 to any port 22
​

适用场景:

  • 限制SSH访问来源
  • 内部管理端口保护

📌 四、关闭已开放的端口

1. 删除允许规则(如关闭80端口)

sudo ufw delete allow 80
​

2. 查看规则编号再删除(精准操作)

sudo ufw status numbered  # 显示规则编号
sudo ufw delete [编号]    # 如 sudo ufw delete 2
​

📌 五、高级配置

1. 限制IP访问(如拒绝192.168.1.200)

sudo ufw deny from 192.168.1.200
​

2. 允许特定服务(如SSH、Nginx)

UFW内置了一些常见服务的规则别名:

sudo ufw allow ssh    # 等同于 allow 22/tcp
sudo ufw allow http   # 等同于 allow 80/tcp
sudo ufw allow https  # 等同于 allow 443/tcp
​

查看支持的服务列表:

less /etc/services
​

3. 日志记录(排查连接问题)

sudo ufw logging on   # 开启日志
sudo tail -f /var/log/ufw.log  # 实时查看日志
​

📌 六、验证端口是否开放

方法1:UFW状态检查

sudo ufw status
​

示例输出:

Status: active

To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       192.168.1.100
22/tcp                     ALLOW       Anywhere
​

方法2:使用 netstat或 ss

sudo netstat -tulnp | grep 80
# 或
sudo ss -tulnp | grep 80
​

如果显示监听状态(LISTEN),说明服务已绑定端口。

方法3:外部测试(如 telnet或 nc)

telnet [你的IP] 80
# 或
nc -zv [你的IP] 80
​

如果连接成功,说明端口已开放。


📌 七、常见问题解决 ❓

Q1:UFW规则不生效?

  • 可能原因:
    • 未重启UFW(sudo ufw reload)。
    • 端口被其他防火墙(如iptables)拦截。
    • 服务未正确监听端口(检查 netstat)。