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)。
- 未重启UFW(