温馨提示×

centos能屏蔽域名吗

小樊
39
2026-10-11 15:53:06
栏目: 云计算

可以,但要看你说的“屏蔽域名”具体想做到什么程度。下面按常见场景给你说明(以 CentOS 7/8 为例,CentOS 6 类似但命令略有差异)。


一、最简单:在本机屏蔽域名(仅本机生效)

方法 1:修改 /etc/hosts

把域名解析到一个无效或本地地址:

vi /etc/hosts

添加:

127.0.0.1   www.example.com
0.0.0.0     example.com

✅ 优点:简单、立即生效
❌ 缺点:

  • 只对本机有效
  • 如果程序直接用 IP 访问无效
  • 对 DNS 加密请求(DoH)无效

二、在 CentOS 上做 DNS 层屏蔽(局域网/本机)

方法 2:使用 dnsmasq

适合:

  • 局域网网关
  • 或本机跑 dnsmasq

安装

yum install -y dnsmasq

配置

vi /etc/dnsmasq.conf

添加:

address=/example.com/0.0.0.0
address=/www.example.com/0.0.0.0

启动

systemctl enable --now dnsmasq

✅ 可屏蔽整个域名(含子域)
❌ 需要客户端使用该 DNS


三、用防火墙屏蔽(按 IP,不按域名)

⚠️ iptables / firewalld 不能直接屏蔽域名,只能屏蔽 IP。

如果你知道域名解析后的 IP:

firewall-cmd --add-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'

❌ 域名 IP 一变就失效


四、用 systemd-resolved(部分 CentOS)

CentOS 默认一般不用,但如果你启用了:

resolvectl query example.com

可通过黑名单插件实现,较复杂,不推荐新手。


五、企业级方案(如果你是想“真正管控”)

  • Squid 代理(HTTP/HTTPS 域名过滤)
  • DNS 黑名单(RPZ)
  • 深信服 / 路由器 ACL
  • eBPF / nftables + 动态域名解析

六、总结一句话

需求 是否可行
本机屏蔽某域名 ✅ /etc/hosts
局域网屏蔽域名 ✅ dnsmasq
防火墙按域名屏蔽 ❌ 只能按 IP
彻底全网屏蔽 ⚠️ 需 DNS + 代理

如果你能告诉我:

  • 是 本机 / 服务器 / 局域网
  • 想屏蔽 访问外网还是内网
  • CentOS 版本

我可以直接给你可复制的配置方案。

0 踩