如何在 Mac 上禁止 App 联网
了解如何在 Mac 上阻止某个 App 联网、阻止域名,或拦截不需要的出站流量。对比 macOS 防火墙、hosts 文件和 TinyShield,附分步教程。
有些 App 根本不需要联网也能正常工作。但修图软件、PDF 阅读器,或者一次性买断的游戏,仍可能在后台发送分析数据、验证许可证或下载广告。
你想禁止这个 App 联网,同时不影响其他一切。在 Mac 上该怎么做?
在本指南中,你将了解:
- 为什么 macOS 自带的防火墙无法阻止出站流量
- 如何用 hosts 文件阻止网站或域名
- 如何用 TinyShield 阻止单个 App、单个域名或所有未知流量
- 如何测试规则并安全地撤销
为什么要阻止 App 联网?
常见原因:
- 隐私:阻止分析、遥测和跟踪请求。
- 专注:工作时让分散注意力的 App 保持离线。
- 安全:阻止不信任的 App 发送数据。
- 带宽:在网速慢或使用移动网络时,阻止后台的大型下载。
- 测试:查看自己开发的 App 在服务器无法访问时的表现。
macOS 防火墙能阻止出站流量吗?
不能。很多人首先会尝试它,所以值得解释一下。
- 打开系统设置 → 网络 → 防火墙。
- 打开防火墙,然后点按选项。
- 你可以为某个 App 阻止入站连接。
macOS 防火墙保护 Mac 免受外部传入的连接,但它不会阻止 App 主动向外连接互联网。要阻止 App 发送数据,需要一款出站防火墙。
方法 1:用 hosts 文件阻止域名
/etc/hosts 文件可以把某个域名指向一个无法访问的地址。它对 Mac 上的所有 App 都有效。
-
打开终端。
-
编辑 hosts 文件:
sudo nano /etc/hosts -
为每个要阻止的域名添加一行:
0.0.0.0 analytics.example.com -
按
Control + O保存,再按Control + X退出。 -
清除 DNS 缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
优点:
- ✅ 系统自带,免费
- ✅ 可以阻止少量已知域名
局限:
- ❌ 它会对所有 App 阻止该域名,而不是只针对一个 App
- ❌ 不支持通配符:必须逐个列出每个子域名
- ❌ 无法阻止直接通过 IP 地址连接或使用自有 DNS 的 App
- ❌ 必须先知道域名
- ❌ 容易忘记自己改过什么
方法 2:用 TinyShield 阻止 App 联网
TinyShield 是一款原生 Mac 防火墙,可以精确阻止你选择的对象:整个 App、单个域名、通配符域名或某个 IP 地址。
阻止整个 App
- 下载 TinyShield,并完成 Network Extension 设置。
- 打开要阻止的 App,让它出现在 TinyShield 中。
- 在 TinyShield 列表中找到该 App。
- 右键点击该 App,选择 Add to Block List。
- 再次使用该 App,它的连接会以红色显示为已阻止。
只阻止一个域名
阻止整个 App 可能导致登录、更新或同步失败。很多时候,你只想拦住某个跟踪器。
- 在 TinyShield 中展开该 App,查看它的域名和 IP 地址。
- 右键点击某个域名,例如某个分析服务的主机。
- 选择 Add to Block List。
- 该 App 的其余部分仍可正常联网。
想阻止所有子域名?打开 Tools → Block List,添加通配符规则,例如 *.example.com。

方法 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。