教程Mac禁止 App 联网Mac 防火墙TinyShield

如何在 Mac 上禁止 App 联网

了解如何在 Mac 上阻止某个 App 联网、阻止域名,或拦截不需要的出站流量。对比 macOS 防火墙、hosts 文件和 TinyShield,附分步教程。

🚫产品团队

有些 App 根本不需要联网也能正常工作。但修图软件、PDF 阅读器,或者一次性买断的游戏,仍可能在后台发送分析数据、验证许可证或下载广告。

你想禁止这个 App 联网,同时不影响其他一切。在 Mac 上该怎么做?

在本指南中,你将了解:

  • 为什么 macOS 自带的防火墙无法阻止出站流量
  • 如何用 hosts 文件阻止网站或域名
  • 如何用 TinyShield 阻止单个 App、单个域名或所有未知流量
  • 如何测试规则并安全地撤销

为什么要阻止 App 联网?

常见原因:

  • 隐私:阻止分析、遥测和跟踪请求。
  • 专注:工作时让分散注意力的 App 保持离线。
  • 安全:阻止不信任的 App 发送数据。
  • 带宽:在网速慢或使用移动网络时,阻止后台的大型下载。
  • 测试:查看自己开发的 App 在服务器无法访问时的表现。

macOS 防火墙能阻止出站流量吗?

不能。很多人首先会尝试它,所以值得解释一下。

  1. 打开系统设置 → 网络 → 防火墙。
  2. 打开防火墙,然后点按选项。
  3. 你可以为某个 App 阻止入站连接。

macOS 防火墙保护 Mac 免受外部传入的连接,但它不会阻止 App 主动向外连接互联网。要阻止 App 发送数据,需要一款出站防火墙。

方法 1:用 hosts 文件阻止域名

/etc/hosts 文件可以把某个域名指向一个无法访问的地址。它对 Mac 上的所有 App 都有效。

  1. 打开终端。

  2. 编辑 hosts 文件:

    sudo nano /etc/hosts
    
  3. 为每个要阻止的域名添加一行:

    0.0.0.0 analytics.example.com
    
  4. 按 Control + O 保存,再按 Control + X 退出。

  5. 清除 DNS 缓存:

    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    

优点:

  • ✅ 系统自带,免费
  • ✅ 可以阻止少量已知域名

局限:

  • ❌ 它会对所有 App 阻止该域名,而不是只针对一个 App
  • ❌ 不支持通配符:必须逐个列出每个子域名
  • ❌ 无法阻止直接通过 IP 地址连接或使用自有 DNS 的 App
  • ❌ 必须先知道域名
  • ❌ 容易忘记自己改过什么

方法 2:用 TinyShield 阻止 App 联网

TinyShield 是一款原生 Mac 防火墙,可以精确阻止你选择的对象:整个 App、单个域名、通配符域名或某个 IP 地址。

阻止整个 App

  1. 下载 TinyShield,并完成 Network Extension 设置。
  2. 打开要阻止的 App,让它出现在 TinyShield 中。
  3. 在 TinyShield 列表中找到该 App。
  4. 右键点击该 App,选择 Add to Block List。
  5. 再次使用该 App,它的连接会以红色显示为已阻止。

只阻止一个域名

阻止整个 App 可能导致登录、更新或同步失败。很多时候,你只想拦住某个跟踪器。

  1. 在 TinyShield 中展开该 App,查看它的域名和 IP 地址。
  2. 右键点击某个域名,例如某个分析服务的主机。
  3. 选择 Add to Block List。
  4. 该 App 的其余部分仍可正常联网。

想阻止所有子域名?打开 Tools → Block List,添加通配符规则,例如 *.example.com。

TinyShield 的 Block List,包含 App 和域名

方法 3:拦截所有未知流量

有时你还不知道该阻止哪个 App,只希望新 App 联网前先问一下。

TinyShield 有三种连接模式,可通过窗口右上角的按钮选择:

模式效果适合
Allow All除 Block List 中的项目外,全部可以连接日常使用
Require Approval新 App 需等你允许或阻止后才能联网发现未知 App
Block All除 Allow List 中的项目外,全部阻止严格保护隐私或保持专注

Require Approval 是在不需要的流量发生之前就将其拦截的最简单方式:

  • ✅ 新 App 尝试联网时,TinyShield 会将其暂停
  • ✅ 可以看到 App 名称、文件路径、代码签名和连接目标
  • ✅ 选择 Allow 或 Block,TinyShield 会记住你的选择
  • ✅ 之后可以在 Tools → App Connection Decisions 中更改决定

阅读完整的 Require Approval 指南和 Block All 指南。Require Approval 和 Block All 是 TinyShield PRO 功能。

对比几种方法

macOS 防火墙hosts 文件TinyShield
阻止出站流量❌✅ 按域名✅
阻止某个特定 App❌❌✅
只为某个 App 阻止某个域名❌❌✅
通配符域名❌❌✅
按 IP 地址阻止❌❌✅
新 App 联网前询问❌❌✅ (PRO)
无需使用终端✅❌✅

安全阻止的小技巧

  • 从小范围开始:先阻止一个域名,再考虑阻止整个 App。
  • 立即测试:在 App 中重试刚才的操作,确认该行变成红色。
  • 留意副作用:被阻止的 App 可能无法登录、更新或同步。
  • 不要阻止 macOS 系统服务,除非你清楚它们的用途。
  • 保持规则整洁:检查 Block List,删除不再需要的规则。

总结

  • macOS 防火墙只能阻止入站连接。
  • hosts 文件可以阻止少量域名,但无法针对特定 App。
  • TinyShield 右键即可阻止 App、域名、通配符域名或 IP 地址,还能在任何新 App 联网前先询问你。

还不确定该阻止哪些 App?先看看如何查看 Mac 上哪些 App 在联网。正在比较防火墙?请阅读 Little Snitch vs LuLu。

下载 TinyShield,不到一分钟就能阻止第一个 App。

准备好保护你的 Mac 了吗?

体验 TinyShield 强大的网络监控与防护能力,在保持最佳性能的同时让 Mac 远离威胁。

下载 TinyShield