📌 温馨提示:
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
🛡️ CentOS 7 防火墙入门教程(适合小白)
防火墙就像是一道大门,用来保护你的服务器不被陌生人随意访问。本教程将手把手教你如何在 CentOS 7 系统中使用 firewalld 防火墙。
以下为防火墙的基础介绍与常用命令,其中部分常用的命令已经封装到wd脚本中了,详见wd中防火墙管理。
✅ 1. 什么是防火墙?
防火墙是一种保护工具,用来控制网络访问。你可以:
- 允许别人访问你想公开的端口(比如网页 80 端口)
- 拒绝别人访问你不想暴露的端口(比如数据库 3306 端口)
CentOS 7 默认使用的防火墙叫 firewalld,它是基于区域(zone)和服务(service)来管理规则的。
🔧 2. 防火墙常用命令速查
目的 | 命令 |
---|---|
查看防火墙状态 | firewall-cmd --state |
启动防火墙 | systemctl start firewalld |
停止防火墙 | systemctl stop firewalld |
设置开机自启 | systemctl enable firewalld |
重启防火墙 | systemctl restart firewalld |
重新加载配置 | firewall-cmd --reload |
📦 3. 开启或关闭某个端口
示例:开放网页服务(80端口)
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
示例:关闭 80 端口
firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
✅
--permanent
表示永久生效,不加这个就是临时的,下次重启就失效了。
📡 4. 开启常用服务(比开放端口更简单)
Firewalld 已内置一些服务名称,比如 http
, ssh
, ftp
,我们可以直接使用。
示例:开启 HTTP 和 SSH 服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
查看当前开启的服务:
firewall-cmd --list-services
🚫 5. 拒绝或限制某个 IP
示例:阻止某个 IP(比如 192.168.1.100)访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
firewall-cmd --reload
🧱 6. 显示当前防火墙规则
firewall-cmd --list-all
你可以看到当前打开的端口、服务、所属区域等等。
🧠 7. 常见问题解答(FAQ)
Q1:我明明放行了端口,但还是访问不了?
可能是 SELinux 限制了访问。你可以先关闭 SELinux 试试看:
setenforce 0 # 临时关闭
getenforce # 查看当前状态(Enforcing 表示开启)
如果关闭后就能访问,说明是 SELinux 的问题,可以再研究如何配置它。
🔄 8. 一键清空防火墙规则(仅测试用)
⚠️ 小心使用!这会关闭所有防火墙保护!
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --permanent --remove-service=http
firewall-cmd --permanent --remove-port=所有你开放过的端口
firewall-cmd --reload
或者直接停止防火墙(不推荐线上使用!)
systemctl stop firewalld
systemctl disable firewalld
✅ 9. 最简单的配置示例(开放 Web 端口)
# 开启防火墙
systemctl start firewalld
# 设置开机启动
systemctl enable firewalld
# 永久开放 HTTP 和 HTTPS
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# 应用更改
firewall-cmd --reload
📚 10. 推荐学习资源
- 菜鸟教程 firewalld 入门
- RedHat 官方 firewalld 文档
- 你可以随时用
man firewall-cmd
查看命令说明
THE END
暂无评论内容