Linux防火墙配置容易踩坑,新手要么开放端口后服务仍无法访问,要么误关关键端口导致远程登录失败,甚至开放过宽权限留下安全隐患。其实主流Linux系统(Ubuntu、CentOS)的防火墙操作很简单,掌握几个核心命令,不管是开放端口、限制IP访问,还是查看规则,都能快速搞定。
下面分别讲 ufw 和 firewalld 的核心用法。
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
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
1 2 # 查看详细规则(包含端口、协议、状态)sudo ufw status verbose
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
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
1 2 3 # 查看所有开放的端口和服务sudo firewall-cmd --permanent --list-portssudo firewall-cmd --permanent --list-services
1 2 sudo ufw allow 80/tcpsudo ufw allow 443/tcp
1 2 3 sudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=443/tcpsudo firewall-cmd --reload
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
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
curl http://服务器IP测试,能访问说明端口开放成功;firewall-cmd --reload才会生效,ufw 则无需额外重载。还有什么防火墙相关的小技巧?评论区聊聊
点击下方 卡片关注订阅
推荐阅读:
Linux
【Linux命令详解】文件查看比用6大命令:Head/tail/cat等,按需选择不踩坑!
欢迎 关注 视频号2