macos 27已彻底移除afp协议,time capsule因此无法原生支持time machine备份,开源项目timecapsulesmb通过部署samba 4.24.3服务端并启用bonjour发现与smb3认证,使设备可在不刷机前提下恢复备份功能。

macOS 网络安全加固的关键一步,是主动识别并禁用那些无业务需求、却可能扩大攻击面的系统协议。这不等于“关得越多越好”,而是聚焦于已弃用、默认启用但实际未使用、或与当前网络架构冲突的协议,比如 AFP(已彻底移除)、Bonjour 的非必要广播、SMB 的旧版本、IPv6(纯 IPv4 环境)、以及调试类服务如 Remote Login(SSH)或 Screen Sharing 的无管控暴露。
确认哪些协议正在运行
先看实际状态,再动手: • 运行 sudo lsof -iTCP -sTCP:LISTEN -Pn 查看所有监听中的 TCP 端口,重点关注 548(AFP)、139/445(SMB)、22(SSH)、5900(VNC)、5353(Bonjour/mDNS)等; • 检查 systemsetup -getremotelogin 和 defaults read /var/db/dslocal/nodes/DEFAULT/configurations/com.apple.screensharing 判断远程登录与屏幕共享是否启用; • 查看 networksetup -listallprotocols(部分版本支持)或逐网卡检查:networksetup -getinfo "Wi-Fi",确认 IPv6 是否启用; • 对于 Bonjour,dns-sd -B _services._dns-sd._udp local. 可列出当前广播的服务类型,判断是否有冗余共享服务。
停用已废弃或高风险协议
AFP 协议在 macOS 27 中已被完全移除,无需手动操作,但需注意: • 若仍依赖 Time Capsule 备份,应改用开源方案(如 TimeCapsuleSMB)启用 SMBv3,而非尝试恢复 AFP; • SMBv1 存在严重漏洞(如 EternalBlue),即使系统默认不启用,也建议显式禁用:sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist EnabledProtocols -array smb2 smb3; • IPv6 若无实际用途,可在网络设置中取消勾选“配置 IPv6”,或通过终端执行:sudo networksetup -setv6off "Wi-Fi"(替换为对应接口名); • 关闭 Bonjour 的全局广播可减少设备暴露面:sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist,但会同时禁用 AirDrop、Handoff 等依赖服务,需权衡。
限制远程服务暴露范围
SSH 和屏幕共享不是必须关闭,而是要控制谁可以连、从哪连: • 远程登录(SSH):在“系统设置 > 隐私与安全性 > 远程登录”中开启后,点击“信息”图标,勾选“仅这些用户”,添加明确授权账户; • 屏幕共享:同样在“远程管理”或“屏幕共享”设置中,取消“所有人”选项,改为指定用户组或单个账户; • 若仅需本地调试,可绑定监听地址:sudo nano /etc/sshd_config,添加 ListenAddress 127.0.0.1,使 SSH 仅响应本机连接; • 使用防火墙规则进一步收紧:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/sbin/sshd,再配合“阻止所有传入连接”+白名单机制。
验证与持续防护
禁用后必须验证效果: • 再次运行 lsof -iTCP -sTCP:LISTEN,确认目标端口(如 548、139)不再监听; • 尝试从另一台设备 ping 或 telnet 目标端口,应无响应或被拒绝; • 检查系统日志:log show --predicate 'eventMessage contains "sshd" or eventMessage contains "sharingd"' --last 1h,确认无未授权连接尝试; • 启用“防火墙选项”中的“启用隐身模式”,防止 ICMP 探测暴露主机存在; • 对于企业环境,可通过 MDM(如 Jamf、Kandji)将上述配置固化为策略,避免用户误开或回退。











