macOS网络共享无法连接时,需在防火墙中为对应服务(如smbd、sshd、ScreenSharing.bundle等)添加入站规则,而非关闭防火墙;验证服务监听、检查接口绑定及中间网络设备拦截。

MacOS 的网络共享服务(如文件共享、屏幕共享、远程登录等)默认受系统防火墙限制,开启共享后若其他设备无法连接,大概率是防火墙未放行对应服务的入站端口或协议。关键不是单纯“关防火墙”,而是精准配置入站规则。
确认共享服务已启用并获取监听信息
先确保服务本身已打开:进入 系统设置 → 通用 → 共享,勾选所需服务(如“文件共享”)。每项服务会显示其访问地址(如 smb://192.168.1.10)和使用的协议/端口:
- 文件共享(SMB):默认使用 TCP 端口 445;AFP 已弃用,不建议启用
- 屏幕共享(VNC):TCP 端口 5900
- 远程登录(SSH):TCP 端口 22
- 远程管理(ARD):TCP 端口 3283
可在终端运行 sudo lsof -iTCP -sTCP:LISTEN -P | grep -E "(445|5900|22|3283)" 验证服务是否真实在监听。
通过“防火墙选项”添加服务级规则(推荐)
macOS 防火墙支持按服务名称自动匹配端口与协议,比手动填端口更可靠:
- 进入 系统设置 → 网络 → 防火墙 → 防火墙选项
- 点击左下角 +,选择
/System/Library/CoreServices/RemoteManagement/ARDAgent.app(远程管理)、/usr/sbin/sshd(SSH)、/System/Library/CoreServices/ScreenSharing.bundle(屏幕共享)等实际可执行路径 - 对文件共享,系统通常自动添加
smbd或AppleFileServer(取决于 macOS 版本),若未出现,可手动添加/usr/sbin/smbd(Ventura 及更新版本) - 确保右侧“启用”开关为开启状态,并勾选“允许传入连接”
手动添加端口规则(适用于自定义服务或调试)
若服务不在标准路径,或需开放非默认端口(如 SMB 改为非 445 端口),可手动添加:
- 在“防火墙选项”中点击 + → 选择“其他” → “端口”
- 输入端口号(如
445)、协议(选 TCP;SMB 仅需 TCP,无需 UDP) - 服务名称可自填(如
SMB-FileSharing),便于识别 - 注意:同一端口+协议组合只能添加一次,重复添加无效
验证与排错要点
规则生效后仍连不上?检查以下几处:
- 防火墙是否处于“开启”状态(不只是“防火墙选项”里有规则)
- 共享服务绑定的网络接口是否正确:默认监听所有接口(
0.0.0.0),但若设置了“仅限本地网络”,需确认客户端在同一子网 - 路由器或中间防火墙是否拦截了对应端口(尤其是从外网访问时)
- macOS 的“隐私与安全性 → 防火墙 → 防火墙选项”中,确认未勾选“阻止所有连接”——该选项会覆盖所有放行规则
- 使用另一台设备执行
telnet 192.168.1.10 445(或nc -zv 192.168.1.10 445)测试端口可达性
不复杂但容易忽略。配对服务路径与防火墙规则,比盲目放开端口更安全、更稳定。










