当前位置:首页>Linux>Linux防火墙配置指南!快速开放/关闭端口,安全又省心

Linux防火墙配置指南!快速开放/关闭端口,安全又省心

  • 2026-08-23 01:56:08
Linux防火墙配置指南!快速开放/关闭端口,安全又省心

Linux防火墙配置指南!快速开放/关闭端口,安全又省心

Linux防火墙配置容易踩坑,新手要么开放端口后服务仍无法访问,要么误关关键端口导致远程登录失败,甚至开放过宽权限留下安全隐患。其实主流Linux系统(Ubuntu、CentOS)的防火墙操作很简单,掌握几个核心命令,不管是开放端口、限制IP访问,还是查看规则,都能快速搞定。

一、先搞懂:不同系统的防火墙工具

  • • Ubuntu 18.04+ 默认用 ufw
  • • CentOS 7+ 默认用 firewalld
  • • 旧系统可能用 iptables

下面分别讲 ufw 和 firewalld 的核心用法。

二、Ubuntu 系统:ufw 防火墙操作

1. 基础状态管理

1
2
3
4
5
6
7
8
9
10
11

# 查看防火墙状态(inactive 未启用,active 已启用)sudo ufw status# 启用防火墙(启用后默认拒绝所有入站连接,需手动开放端口)sudo ufw enable# 禁用防火墙(临时关闭,重启后失效)sudo ufw disable# 重置防火墙(恢复默认设置,清空所有规则)sudo ufw reset

2. 开放/关闭端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 开放单个端口(比如开放80端口,HTTP服务)sudo ufw allow 80# 开放指定协议的端口(比如开放443端口,HTTPS服务,TCP协议)sudo ufw allow 443/tcp# 开放端口范围(比如开放3306-3389端口,数据库、远程桌面相关)sudo ufw allow 3306:3389/tcp# 关闭端口(比如关闭22端口,SSH服务,谨慎操作!)sudo ufw deny 22# 允许特定IP访问所有端口(比如允许办公IP 192.168.1.100访问)sudo ufw allow from 192.168.1.100

3. 查看已配置规则

1
2

# 查看详细规则(包含端口、协议、状态)sudo ufw status verbose

三、CentOS 系统:firewalld 防火墙操作

1. 基础状态管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 查看防火墙状态(dead 未启用,running 已启用)sudo firewall-cmd --state# 启动防火墙sudo systemctl start firewalld# 启用开机自启防火墙sudo systemctl enable firewalld# 停止防火墙sudo systemctl stop firewalld# 禁用开机自启防火墙sudo systemctl disable firewalld

2. 开放/关闭端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 开放单个端口(比如开放80端口,--permanent 表示永久生效,需重载规则)sudo firewall-cmd --permanent --add-port=80/tcp# 开放端口范围(比如开放3306-3389端口)sudo firewall-cmd --permanent --add-port=3306:3389/tcp# 关闭端口(比如关闭22端口)sudo firewall-cmd --permanent --remove-port=22/tcp# 允许特定IP访问(比如允许192.168.1.100访问所有端口)sudo firewall-cmd --permanent --add-source=192.168.1.100# 重载规则(修改配置后必须执行,让规则生效)sudo firewall-cmd --reload

3. 查看已配置规则

1
2
3

# 查看所有开放的端口和服务sudo firewall-cmd --permanent --list-portssudo firewall-cmd --permanent --list-services

四、常见场景

1. 部署网站后,开放80(HTTP)和443(HTTPS)端口

  • • Ubuntu:
    1
    2

    sudo ufw allow 80/tcpsudo ufw allow 443/tcp

  • • CentOS:
    1
    2
    3

    sudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=443/tcpsudo firewall-cmd --reload

2. 只允许办公IP访问SSH(22端口),拒绝其他IP

  • • Ubuntu:
    1
    2
    3
    4

    # 先拒绝所有IP访问22端口sudo ufw deny 22# 再允许办公IP 192.168.1.100访问22端口sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

  • • CentOS:
    1
    2
    3
    4
    5

    # 先移除默认的22端口开放规则(如果有)sudo firewall-cmd --permanent --remove-port=22/tcp# 添加允许办公IP访问22端口的规则sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'sudo firewall-cmd --reload

五、避坑指南:3个关键提醒

  1. 1. 开放端口后先验证:比如开放80端口后,用 curl http://服务器IP测试,能访问说明端口开放成功;
  2. 2. 远程操作别误关22端口:如果是远程登录服务器配置,先开放22端口再启用防火墙,避免配置后无法登录;
  3. 3. 规则修改后记得重载:firewalld 必须执行 firewall-cmd --reload才会生效,ufw 则无需额外重载。

还有什么防火墙相关的小技巧?评论区聊聊

点击下方 卡片关注订阅

推荐阅读:

  • Linux

一句话讲清楚Linux是什么?

【Linux命令基础】7个高频命令:覆盖80%日常场景

【Linux命令详解】文件查看比用6大命令:Head/tail/cat等,按需选择不踩坑!

欢迎 关注 视频号2

最新文章

随机文章