温馨提示×

centos防火墙能拦端口吗

小樊
58
2026-10-05 19:24:18
栏目: 智能运维

可以的。CentOS 的防火墙是可以拦截(或放行)端口的,具体取决于你使用的防火墙管理工具。


一、CentOS 常见防火墙

1️⃣ firewalld(CentOS 7 及以上默认)

这是 CentOS 7/8/Stream 默认防火墙。

查看防火墙状态

systemctl status firewalld

查看已开放端口

firewall-cmd --list-ports

开放端口(如 80)

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

关闭/拦截端口

  • 不开放 = 默认拦截
  • 删除已开放端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload

2️⃣ iptables(CentOS 6 或手动使用)

老版本或某些场景仍使用。

拦截某端口(如 3306)

iptables -A INPUT -p tcp --dport 3306 -j DROP

保存规则

service iptables save

二、防火墙“拦端口”的本质

  • 不开放端口 = 外部无法访问
  • 防火墙工作在 网络层/传输层
  • 可基于:
    • 端口(port)
    • 协议(tcp/udp)
    • IP 来源
    • 网卡_zone

三、常见误区

❌ 防火墙拦不住“本机访问本机”
✅ 外部访问才会被拦

❌ 服务没起来 ≠ 防火墙问题
✅ 先 telnet/ip:port 测试


四、示例:只允许特定 IP 访问 22 端口

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="22" accept'
firewall-cmd --reload

如果你愿意,可以告诉我:

  • CentOS 版本
  • 想拦哪个端口
  • 是外部访问还是本机出站

我可以直接给你对应命令。

0 踩