macos自带防火墙默认仅管控入站流量,出站需通过系统设置(如15.3.2+的“阻止所有出站连接”选项)、终端命令socketfilterfw或lulu/little snitch等第三方工具实现双向控制。
macos 系统自带的防火墙默认只管理入站流量(别人连你),不拦截出站流量(你连别人)。想控制进出双向连接,需结合系统设置与额外工具或命令行手段——不是单纯“打开防火墙”就能管住所有网络行为。
基础防火墙开启与入站控制
这是系统原生支持的部分,适用于阻止外部访问:
- Ventura(13.x)及更新系统:苹果菜单 →「系统设置」→ 左侧「网络」→ 向下滚动点「防火墙」→ 点锁图标输密码 → 点「打开防火墙」
- Monterey(12.x)及更早:苹果菜单 →「系统偏好设置」→「安全性与隐私」→「防火墙」标签页 → 解锁后开启
- 开启后,默认放行已签名应用(如 Safari、Zoom)和内建服务(AirDrop、文件共享),但未签名程序会被自动拦截
- 点击「防火墙选项」→「+」添加目标 App → 将其设为「阻止传入连接」,即可禁止该程序响应外部请求
出站流量拦截需额外操作
系统防火墙本身不提供图形界面的出站开关,但部分新版 macOS(如 15.3.2 起)在「防火墙选项」中已加入「阻止所有出站连接」复选框(仅对已添加的应用生效):
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
- 若你的系统支持该选项:添加 App 后,勾选右侧「阻止所有出站连接」即可限制它主动联网
- 若不显示该选项:说明当前版本未开放此功能,需转向终端命令或第三方工具
- 注意:启用后可能影响软件更新、登录验证、云同步等依赖外网的功能
用终端命令精细控制应用联网
绕过图形界面限制,直接调用系统底层防火墙组件 socketfilterfw:
- 先确保服务开启:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
- 添加拦截规则(以 WPS 为例):sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/WPS.app --block
- 查看当前规则:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --list
- 规则生效后,该应用既无法接收入站请求,也无法发起出站连接
需要更强控制时考虑专用工具
当系统设置或终端命令不够用(比如要按域名、端口、协议精细过滤,或实时弹窗确认),可选用成熟第三方方案:
- LuLu:免费开源,专注出站拦截,首次运行会引导完成内核权限授权,后续联网请求弹窗可一键拒绝并“记住规则”
- Little Snitch:商业软件,提供连接地图、规则分组、时间策略等高级功能,适合开发者或高隐私需求用户
- 修改 /etc/hosts 或用 SwitchHosts 屏蔽特定域名,属于轻量替代方案,不涉及防火墙机制但能达成类似效果










