Linux如何精确过滤域名?,白名单黑名单命令怎么用?

Linux上精确过滤域名,核心不在iptables,而在DNS解析层,白名单/黑名单最实用的路径是:单机用/etc/hosts,局域网用dnsmasq,防火墙配合ipset做兜底阻断。

先搞清Linux域名过滤和IP过滤区别

很多运维第一次做域名屏蔽,会直觉地往iptables里写域名,结果命令直接报错,或者当时生效、过两天失效,原因是iptables工作在网络层,只认IP地址和端口,不负责域名解析,域名到IP的转换发生在用户态,防火墙规则加载时并不知道某个域名当前对应哪些IP。

OpenWrt使用adguard home实现域名白名单功能
加载中
OpenWrt使用adguard home实现域名白名单功能

CDN和轮询DNS让这个问题更麻烦,一个域名可能对应几十个IP,还会动态增减,用IP过滤固定服务完全够用,但过滤大量域名或动态解析的域名,必须把DNS解析纳入控制范围。

下表对比三种常见方案的定位:

方案 过滤层级 精确度 维护成本 适用场景
/etc/hosts 本机DNS 单域名精确 单台Linux服务器或桌面
dnsmasq 局域网DNS 支持泛域名和通配 内网批量域名过滤
iptables+ipset 网络层兜底 依赖IP更新频率 阻断直连IP绕过DNS

Linux hosts文件屏蔽域名:最轻量黑白名单命令

/etc/hosts 是最原始的本地DNS覆盖文件,格式很固定:IP地址 域名,系统在查询DNS之前,会先读这个文件,命中就直接返回,不再向上游DNS服务器发请求。

黑名单操作只需要一行命令:

sudo sh -c 'echo "0.0.0.0 bad.example.com" >> /etc/hosts'

把域名指向 0.0.0 比指向 0.0.1 更好。0.0.1 会回环到本机,如果本机恰好有Web服务,屏蔽页面可能变成自己的默认站点,造成混淆。0.0.0 是不可路由地址,连接会立即失败,多数情况下失败速度更快。

白名单用hosts直接做不了,hosts只能指定单个域名解析到指定IP,没有“默认拒绝其他所有域名”的规则,想用hosts做白名单,需要配合防火墙或DNS服务把未列出的域名全部拦截,否则其他域名仍然正常解析。

Linux如何精确过滤域名?,白名单黑名单命令怎么用?

hosts的优点是不用装任何软件,改完立即生效,适合临时屏蔽某个跟踪域名或测试环境,缺点是不支持泛域名,.example.com 这种写法在hosts里无效;域名多时文件会膨胀,维护起来比较痛苦。

dnsmasq域名黑名单与DNS层精确过滤实操

dnsmasq是一个轻量DNS转发器,支持非常灵活的域名匹配规则,很多路由器固件和公司内网DNS都基于它构建。

安装命令按发行版区分:

# Debian/Ubuntu
sudo apt install dnsmasq -y
# CentOS/RHEL
sudo yum install dnsmasq -y

主配置文件是 /etc/dnsmasq.conf,也可以把自定义规则放进 /etc/dnsmasq.d/ 目录下独立文件,便于管理。

黑名单示例

# 在 /etc/dnsmasq.d/blacklist.conf 添加
address=/ads.example.com/0.0.0.0
address=/tracker.example.com/0.0.0.0

address=/域名/0.0.0.0 表示把该域名及其子域名都解析到 0.0.0,dnsmasq会自动处理 www.ads.example.com 等子域,比hosts灵活得多。

白名单示例

# /etc/dnsmasq.d/whitelist.conf
no-resolv
server=/api.allowed.com/223.5.5.5
server=/monitor.allowed.com/119.29.29.29
address=/#/0.0.0.0

关键在最后一行 address=/#/0.0.0.0,它代表所有未明确匹配的域名都返回 0.0.0,前面的 server= 只放行白名单域名走指定上游DNS。no-resolv 是必须的,否则dnsmasq会读取 /etc/resolv.conf 里的上游DNS,导致 target.com 也能被解析,白名单失效。

重启服务并验证:

sudo systemctl restart dnsmasq
dig @127.0.0.1 bad.example.com
# 应返回 0.0.0.0
dig @127.0.0.1 api.allowed.com
# 应返回白名单域名真实IP

局域网内要把客户机的DNS地址指向这台dnsmasq服务器,DHCP下发DNS选项或手动修改客户端 /etc/resolv.conf 都行,这样整个网段的域名过滤就统一管起来了。

Linux防火墙屏蔽域名命令:iptables/nftables的兜底方案

iptables本身不支持直接写域名,如果尝试:

iptables -A OUTPUT -d bad.example.com -j DROP

会收到 host/network 'bad.example.com' not found 报错,因为iptables只接受IP、网络段或主机名能在规则加载时解析一次,之后不会动态更新。

Linux如何精确过滤域名?,白名单黑名单命令怎么用?

但在实际场景里,仍有人需要“用防火墙屏蔽某个域名”,做法分两步:先解析域名得到IP,再把这些IP写进ipset集合,由iptables引用。

# 创建IP集合
sudo ipset create blocked hash:ip
# 添加一条OUTPUT规则,匹配集合内的目的IP直接丢弃
sudo iptables -I OUTPUT -m set --match-set blocked dst -j DROP
# 解析域名并加入集合
ip=$(dig +short bad.example.com | tail -1)
sudo ipset add blocked $ip

CDN域名会返回多个IP,需要把全部IP都加进去,更规范的做法是写一个cron脚本,每5分钟解析一次域名,清空旧集合再重新填充:

#!/bin/bash
ipset flush blocked
for ip in $(dig +short bad.example.com); do
    ipset add blocked $ip
done

nftables同样不支持域名匹配,但可以用动态集合或配合系统解析服务实现类似逻辑,如果环境中已经全面切换到nftables,思路相同:维护一个IP集合,定期刷新。

这种方案的优点是能在网络层直接阻断连接,即使应用程序绕过本地DNS、直接使用IP连接也会被拦截,缺点是IP变化有滞后,且维护成本明显高于DNS层过滤。

只允许白名单域名出站:生产服务器精确过滤场景

生产服务器如果只允许访问固定的几个API域名和监控上报域名,其他域名全部拒绝,单纯靠DNS白名单还不够,攻击者或恶意程序可能内置IP地址,不走DNS解析,直接连C2服务器,要封死这条路,必须配合防火墙默认拒绝策略。

完整操作步骤如下:

  1. 安装dnsmasq并按前文白名单配置,只放行指定域名。
  2. 将本机DNS指向本地服务:
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf

设置iptables出站白名单:

sudo iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -d 127.0.0.1 -j ACCEPT
sudo iptables -A OUTPUT -j DROP

第一条放行已建立连接,第二条只允许向本地DNS查询,第三条默认拒绝所有新出站连接。

测试验证:

curl https://api.allowed.com
# 应正常返回
curl https://blocked.example.com
# 应超时或连接拒绝

这种配置下,白名单域名通过DNS正确解析后,连接会被ESTABLISHED规则放行,未允许的域名要么被dnsmasq解析为0.0.0.0直接失败,要么即使程序绕过DNS直连IP,也会被OUTPUT默认DROP拦住,两条路径同时封死,才算精确过滤。

Linux如何精确过滤域名?,白名单黑名单命令怎么用?

选型建议与避开加密DNS坑

不同场景的推荐方案差异较大:

  • 单台Linux桌面临时屏蔽广告域名:直接用hosts,改动小、即时生效。
  • 内网几十台服务器统一屏蔽恶意域名:部署dnsmasq做DNS黑名单,DHCP下发内网DNS地址。
  • 高安全等级的生产服务器只开放白名单域名:dnsmasq白名单 + iptables默认拒绝出站。
  • 需要防止用户改DNS绕过过滤:在网关防火墙上阻断外部53端口UDP/TCP出站,只允许内网DNS服务器查询上游。

业内专家指出,单纯依赖域名过滤存在被加密DNS绕过的风险,生产环境应结合IP信誉库和出站白名单策略,近年来DoH(DNS over HTTPS)流行后,传统DNS过滤的部分场景确实被削弱,因为查询内容加密后无法在DNS层看到域名,这类环境必须把防火墙管控前移,从连接目标IP上做兜底。

Linux精确过滤域名没有单一命令能包打天下,先控DNS,再加防火墙默认拒绝,白名单场景尤其要把两条路径同时封死。

常见问题

Linux服务器屏蔽某个域名最简单命令是什么?

使用hosts文件把域名指向 0.0.0

sudo sh -c 'echo "0.0.0.0 bad.example.com" >> /etc/hosts'

该命令立即生效,不需要重启网络服务,但hosts不支持泛域名,域名数量多时建议改用dnsmasq。

Linux防火墙iptables可以直接配置域名白名单吗?

不能,iptables的 -d 参数只接受IP地址或网络段,不支持域名,即使某些工具在规则加载时解析一次域名,之后IP变化也会导致规则失效,正确的做法是解析域名后写入ipset,再让iptables引用ipset集合。

白名单过滤后为何还要设置防火墙DROP出站?

因为DNS白名单只能控制域名解析结果,无法阻止程序使用硬编码IP地址直连外部服务器,将iptables的OUTPUT链默认策略设为DROP,只放行到本地DNS的查询和已建立连接,可以阻断所有绕过DNS的直连尝试,默认DROP是域名白名单能落地的必要条件。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/662430.html

(0)
虚拟机多开游戏卡顿怎么办,提升流畅度有哪些技巧?
上一篇 2026年9月17日 11:14
高防的服务器有哪些类型值得选,高防服务器哪家好
下一篇 2026年9月17日 11:16

相关推荐

  • 个人服务器有必要用云锁吗,云锁对个人服务器安全有用吗

    个人服务器并非必须安装云锁,核心取决于你的业务场景、技术能力以及对外暴露的风险等级;对于仅用于内网穿透或测试的轻量级应用,系统自带防护已足够,但对于涉及用户数据或公网暴露的Web服务,云锁等主机安全软件能提供至关重要的最后一道防线,很多刚接触个人服务器的朋友,在搭建好环境后都会面临一个选择题:要不要装个云锁?这……

    2026年5月29日
    4000
  • 服务器cdn计划有哪些注意事项,怎么选?

    服务器cdn计划的核心是找到与业务匹配的方案,融合CDN因其灵活性和高性价比成为大多数企业的首选,服务器cdn计划怎么选才不踩坑选错方案不仅浪费预算,还可能影响用户体验,先理清自己的需求,再对照主流方案的特点做决定,先搞清楚你的业务场景不同业务对CDN的依赖程度完全不同,你需要问自己三个问题:类型是什么,静态文……

    2026年7月21日
    100
  • 为什么java文件打不开?java文件关联设置教程

    遇到“该后缀java打不开”的提示,通常是因为系统未关联Java运行环境,或文件扩展名被隐藏导致实际格式并非真正的Java程序,只需重新关联默认应用或确认文件真实性即可解决,当你双击一个文件却弹出“该后缀java打不开”或者找不到合适的应用时,这种挫败感非常普遍,这往往不是电脑坏了,而是Windows系统不知道……

    2026年7月3日
    17200
  • 防火墙技术难题频发?30字揭秘常见问题及高效解决方案!

    防火墙技术常见问题及深度解决方法防火墙作为网络安全的核心防线,其稳定高效运行至关重要,管理员在日常运维中常遭遇规则冲突、性能下降、策略失效等挑战,以下是六大核心问题及其专业解决方案:规则配置冲突与失效问题本质: 规则库庞大、顺序错乱、冗余规则、过期策略导致预期防护失效或阻断合法流量,深度解决:定期审计与清理……

    2026年2月4日
    10830
  • 如何高效进行服务器硬件开发?服务器硬件开发全流程解析

    服务器硬件开发是构建高性能、可靠且高效的计算基础设施的核心过程,专注于设计、测试和生产用于数据中心、企业环境和云服务的物理组件,它涉及从处理器到冷却系统的全链条创新,确保服务器能处理海量数据、支持AI应用并保障业务连续性,随着数字化转型加速,服务器硬件开发已成为推动技术进步的关键驱动力,直接影响性能、成本和可持……

    2026年2月7日
    13230
  • 数据库服务器要启动哪些服务,具体操作步骤是什么?

    数据库服务器启动涉及操作系统、数据库实例、网络监听和存储四个层面,核心步骤是先拉起系统服务,再启动实例进程,最后验证监听与数据文件可用性,这一过程直接影响业务连续性和数据安全,尤其在多实例、分布式架构下,启动顺序错误可能导致主从延迟、锁竞争甚至数据页损坏,本文从实战角度拆解启动全流程,并给出可验证的检查命令与故……

    2026年8月28日
    600
  • 高级威胁检测系统免费试用吗?高级威胁检测系统哪家免费试用

    面对日益隐蔽的0day漏洞与勒索软件,部署高级威胁检测系统免费试用是企业验证防御有效性、降低试错成本的唯一快速路径,2026年头部厂商的试用版已具备全流量溯源与AI行为分析实战能力,为何企业急需高级威胁检测系统免费试用2026年威胁态势的实战倒逼根据国家计算机网络应急技术处理协调中心2026年初发布的态势报告……

    2026年4月26日
    3600
  • 哪些LOL服务器上过推荐服,推荐服怎么进?

    LOL国服曾被官方标记为“推荐服”的区服包括艾欧尼亚、祖安、诺克萨斯、黑色玫瑰、比尔吉沃特、峡谷之巅(高端认证服),以及早期开服时被重点推广的男爵领域和教育网专区,其中峡谷之巅属于特殊推荐机制,其余多为人气大区被官方在客户端内推荐给新玩家,需要说明的是,“推荐服”在游戏界并没有固定名单,它更多是官方根据区服活跃……

    2026年9月1日
    400
  • 服务器带宽图怎么看?服务器带宽监控图表详解

    服务器带宽图不仅是运维人员监控网络状态的视觉工具,更是企业优化IT成本、保障业务稳定运行的核心决策依据,通过对带宽流量的可视化分析,企业能够迅速识别网络瓶颈、检测异常流量并合理规划资源分配,一张清晰、准确的带宽监控图表,往往能直观反映出服务器在特定时间段内的负载情况,为技术团队的故障排查和性能调优提供最直接的数……

    2026年4月10日
    7500
  • 高级威胁检测系统双十一有优惠吗?高级威胁检测系统双十一优惠活动怎么买

    2026年双十一期间,高级威胁检测系统迎来年度最佳采购窗口,企业通过锁定头部厂商的满减与买赠优惠,不仅能以更低成本获取符合国家标准的新一代APT防御能力,更能为明年的重保场景提前筑牢安全底座,2026双十一优惠风向:安全采购的战略契机为什么双十一是安全建设的黄金节点?双十一已从消费互联网的狂欢,演变为企业级IT……

    2026年4月26日
    5100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注