---
title: "macOS 防火墙阻止传入连接：允许 App 接入 · Kilobat 指南"
url: "https://kilobat.app/zh-hans/guides/macos-firewall-incoming.html"
description: "macOS 防火墙只控制传入连接。了解它是否阻止了你的服务器或共享服务，并安全地允许相应 App。"
---

本地网络

# macOS 防火墙阻止传入连接

macOS 防火墙控制的是其他电脑向你的 Mac 发起的连接，不控制你的 App 发起的连接。

适用于：“系统设置”>“网络”>“防火墙”适用于 macOS 13 Ventura 及更高版本。更早的版本使用“安全性与隐私”。 · 核查日期：2026年10月29日

## 症状

- 其他设备无法连接 Mac 上的服务器、游戏或共享服务。
- Mac 不响应其他设备的 ping。
- 开发服务器在 Mac 上能访问，但同一 Wi-Fi 下的手机却访问不了。
- macOS 询问是否允许某个 App 接受传入的网络连接。

## 可能的原因

- **阻止所有传入连接。**Apple 指出，此选项会阻止对非必要服务及所有其他共享服务的连接。
- **App 已被拒绝。**你之前在提示中点按了“拒绝”，或者该 App 在防火墙“选项”中被设为阻止。
- **隐身模式。**Mac 不响应 ping 等探测请求。
- **服务器监听的是 127.0.0.1。**这种情况下，无论防火墙如何设置，都只有 Mac 本机能连接。

## 如何检查

1. 选取苹果菜单 >“系统设置”>“网络”>“防火墙”。查看防火墙是否已打开。
2. 点按“选项”。查看你的 App 的设置以及“阻止所有传入连接”。
3. 在“终端”中显示防火墙状态。

   ```
   /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
   /usr/libexec/ApplicationFirewall/socketfilterfw --getblockall
   /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
   ```
4. 确认服务器监听的是所有地址，而不只是 127.0.0.1。

   ```
   lsof -nP -iTCP:8000 -sTCP:LISTEN
   ```

## 如何修复

1. 如果需要使用共享或服务器，在防火墙“选项”中关闭“阻止所有传入连接”。
2. 点按“添加”按钮并选择该 App，将其设为允许传入连接。
3. 点按“好”，然后在另一台设备上再次测试连接。
4. 也可以在“终端”中允许 App。将路径换成你的 App。

   ```
   sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/Example.app
   ```

   需要管理员密码。
5. 保持防火墙开启，只允许必须接受连接的 App。

## 使用 Kilobat

1. Kilobat 的过滤器控制的是你的 App 发起的连接，不能替代 macOS 防火墙来管理传入连接。
2. 要查看服务器进程打开的套接字，使用 destinations 命令。

   ```
   kilobat destinations --pid 12345
   ```

## 常见问题

**macOS 防火墙会阻止传出连接吗？**

不会。Apple 将其描述为防范其他电脑发起的连接。要管理传出连接，请使用过滤类 App。

**隐身模式有什么作用？**

Mac 不响应来自未知来源的 ping 等探测请求。已允许的 App 仍能收到发给它们的请求。

## 参考资料

- [Apple 支持：在 Mac 上更改防火墙设置](https://support.apple.com/guide/mac-help/change-firewall-preferences-on-mac-mh11783/mac)
- [Apple 支持：使用防火墙阻止与 Mac 的连接](https://support.apple.com/guide/mac-help/block-connections-to-your-mac-with-a-firewall-mh34041/mac)
- [Apple 平台安全：应用程序防火墙](https://support.apple.com/guide/security/application-firewall-seca0e83763f/web)
- socketfilterfw(8)，macOS 27.2 自带的手册页

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本；在“终端”中用 `man <name>` 打开。

## 相关指南

- [App 找不到本地网络上的设备](https://kilobat.app/zh-hans/guides/local-network-permission.html): macOS 15 Sequoia 及更高版本会在 App 连接本地网络设备前先征求许可。
- [容器无法访问 Mac 上的 localhost](https://kilobat.app/zh-hans/guides/localhost-from-container.html): 每个容器都有自己的网络栈。
- [Mac 上 Little Snitch、LuLu 与其他网络扩展的冲突](https://kilobat.app/zh-hans/guides/network-extension-conflicts.html): macOS 上的防火墙、VPN 和内容过滤器都使用网络扩展。
- [在 Mac 上查找本地网络中的设备](https://kilobat.app/zh-hans/guides/find-devices-on-network.html): macOS 有两种内置方式查看其他设备：ARP 表和 Bonjour。
