上一篇
"奇怪,我的网站服务明明启动了,怎么外网还是访问不了?" 小张盯着屏幕挠头,隔壁工位的老王探头看了一眼:"八成是防火墙拦住了,你先看看防火墙状态吧!"
在Linux系统中,防火墙就像大楼的保安,控制着哪些网络流量可以进出,无论是排查网络问题还是配置新服务,了解防火墙状态都是必备技能,下面我就用最直白的方式,教你几种查看防火墙状态的方法。
如果你的系统还在使用经典的iptables(比如CentOS 6或某些老系统),试试这些命令:
# 查看所有规则(包含输入/输出/转发链) sudo iptables -L -n -v # 只看INPUT链的规则(常用) sudo iptables -L INPUT -n -v
输出示例:
Chain INPUT (policy ACCEPT 100 packets, 15000 bytes)
pkts bytes target prot opt in out source destination
50 3000 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP tcp -- * * 192.168.1.100 0.0.0.0/0 tcp dpt:22
怎么看懂:
policy ACCEPT
表示默认允许所有流量现在大多数Linux发行版(如CentOS 7+/RHEL/Fedora)都用firewalld:
# 查看运行状态 sudo firewall-cmd --state # 获取详细信息(包含活跃区域和规则) sudo firewall-cmd --list-all
典型输出:
running # 表示防火墙正在运行
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client http
ports: 8080/tcp
forward: no
关键信息:
running
表示防火墙已启用services
列出允许的服务(如ssh/http)ports
显示额外开放的端口(比如这里的8080)Ubuntu/Debian用户常用的简化工具ufw:
# 查看状态(最简版) sudo ufw status # 详细模式(带规则编号) sudo ufw status numbered
输出示例:
Status: active # 防火墙已激活
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW 192.168.1.0/24
如果遇到"command not found",可能需要先安装:
sudo yum install firewalld
(CentOS/RHEL)sudo apt install ufw
(Ubuntu/Debian)用systemctl检查服务状态:
# 适用于firewalld sudo systemctl status firewalld # 适用于ufw sudo systemctl status ufw
看到active (running)
表示服务正常运行,如果是inactive
,需要启动:
sudo systemctl start firewalld sudo systemctl enable firewalld # 设置开机自启
快速检测端口是否开放:
sudo netstat -tuln | grep 80 # 检查80端口
临时关闭防火墙(调试用):
sudo systemctl stop firewalld # 停止firewalld sudo ufw disable # 禁用ufw
查看防火墙日志:
sudo journalctl -u firewalld -f # 实时查看firewalld日志 sudo grep UFW /var/log/syslog # 查看ufw日志
sudo iptables-save > ~/iptables_backup.txt
--dry-run
参数测试规则(firewalld支持)下次再遇到网络问题,先按这些方法检查防火墙状态,说不定一分钟就能解决问题!
本文由 陀侬 于2025-08-02发表在【云服务器提供商】,文中图片由(陀侬)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/514526.html
发表评论