可以,但要看你说的“屏蔽域名”具体想做到什么程度。下面按常见场景给你说明(以 CentOS 7/8 为例,CentOS 6 类似但命令略有差异)。
/etc/hosts把域名解析到一个无效或本地地址:
vi /etc/hosts
添加:
127.0.0.1 www.example.com
0.0.0.0 example.com
✅ 优点:简单、立即生效
❌ 缺点:
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
⚠️ 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
可通过黑名单插件实现,较复杂,不推荐新手。
| 需求 | 是否可行 |
|---|---|
| 本机屏蔽某域名 | ✅ /etc/hosts |
| 局域网屏蔽域名 | ✅ dnsmasq |
| 防火墙按域名屏蔽 | ❌ 只能按 IP |
| 彻底全网屏蔽 | ⚠️ 需 DNS + 代理 |
如果你能告诉我:
我可以直接给你可复制的配置方案。