DNSnitch
免责声明
这个工具是我自己用的,如果有人需要的话就放在这里。如果你发现 bug,欢迎提交 issue!
交互式终端 DNS 防火墙
DNSnitch 是一个本地、隐私优先的 DNS 服务器,让你完全掌控自己的网络流量。与被动屏蔽列表不同,DNSnitch 采用**“默认拒绝”理念**:所有未知域名默认被阻止,直到你通过实时终端仪表板授权。
主要特性
- 实时拦截:本地运行(端口 5353,可配置)以捕获离开你机器的每一个 DNS 请求。
- 默认拒绝策略:未知域名立即返回
NXDOMAIN,并出现在“待处理队列”中。
- 4 级权限系统:
- 永久: 永久加入白名单。
- 临时: 允许 5 分钟(自动过期,可配置)。
- 一次: 仅允许一次 DNS 请求(非常适合强制门户或一次性登录)。
- 阻止: 明确将域名加入黑名单,使其不再询问。
- 分阶段工作流: 更改在工作区中“暂存”,只有在你
Apply 后才会生效。
- 流量记录: 切换模式以允许流量,同时将唯一域名记录到历史列表。
- DNS 重定向: 将域名映射到特定 IP(本地开发)或其他域名(CNAME)。
- 实时 TUI 仪表板: 基于 Ncurses 构建的多标签、免鼠标界面。
- 控制台: 命令历史和彩色反馈。
- 监视器: 活动规则的 4 列实时视图。
- 队列: 被阻止请求的交互式列表。
- 日志: 原始 DNS 查询的实时滚动。
- 重定向: 预览当前生效的重定向。
- 记录: 显示记录的域名请求。
界面
使用 F 键 浏览仪表板:
- [F1] 控制台: 主要命令中心。在此输入命令。使用
PgUp/PgDn 滚动历史。
- [F2] 监视器: 规则的实时概览。
- 控制: 使用
Left/Right 方向键高亮列(临时、一次、永久、已阻止),使用 Up/Down 滚动该列。
- [F3] 队列: 被阻止域名的“收件箱”。
- [F4] 日志: 引擎处理的每个请求的原始数据流。
- [F5] 重定向: 管理自定义 A/CNAME 记录。
- [F6] 记录: 查看在“记录模式”下捕获的域名。
命令参考
DNSnitch 由键盘驱动。以下是在控制台 [F1] 中可用的完整命令列表。
选择与队列管理
在执行操作前,你必须选择目标。你可以按 ID 选择待处理请求,或按名称选择手动域名。
操作(暂存)
选定域名后,使用这些快捷方式设置其状态。
工作流(应用更改)
更改在应用之前不会生效。
模式与记录
更改防火墙的全局行为。
重定向
将域名映射到自定义目标(本地 DNS 欺骗)。
系统
使用场景
1. 标准工作流(解锁网站)
- 尝试访问
example.com。失败了。
- 按 F3(队列)。你看到
1. example.com。
- 输入
s 1。(行高亮)。
- 输入
p。(行显示 [PERM])。
- 输入
a。(应用)。
- 刷新浏览器。成功了。
2. 修改规则(纠正误操作)
- 你不小心阻止了
google.com。
- 输入
s google.com。
- 输入
rm(移除)或 p(永久)以覆盖阻止。
- 输入
a。
3. 本地开发
- 你正在构建一个网站,并希望通过
mysite.local 访问它。
- 按 F5。
- 输入
r mysite.local 127.0.0.1。
- 你的系统现在将该域名解析到 localhost。
4. 审计应用(记录模式)
- 你安装了一个新应用,并希望在不破坏它的情况下查看它连接了什么。
- 输入
m rec(模式:记录)。
- 使用该应用 5 分钟。
- 按 F6。
- 查看列表。
- 输入
m dft 返回安全模式。