You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Samba跨网络向High Sierra系统Mac共享磁盘

跨WAN通过SMB共享Mac磁盘的完整实现方案

我之前也帮朋友解决过类似的问题,SMB跨WAN确实比AFP麻烦很多——AFP是苹果专属协议,端口单一配置简单,但SMB涉及的网络层面细节更多,光端口转发真的不够。下面给你一步步梳理完整的实现流程:

一、先搞定Mac端的SMB基础配置

  • 打开「系统设置」→「通用」→「共享」,勾选「文件共享」选项
  • 点击「信息」按钮,在弹出的窗口里点「选项」,确保勾选「使用SMB来共享文件和文件夹」,同时把你用来共享的用户账户添加到权限列表里(权限至少给「读取」,需要写入的话选「读取与写入」)
  • 划重点:如果是Ventura及以后的macOS版本,默认用的是SMB3,兼容性和安全性都更好;如果远端连接的是旧设备(比如老Windows或老Mac),可以考虑在后续配置里兼容SMB2,但优先用SMB3

二、路由器端的端口转发(基础操作,但要注意细节)

SMB的核心端口是445,早期版本还依赖139(NetBIOS名称解析),为了兼容所有场景,建议两个端口都转发:

  • 登录你的路由器管理后台,找到「端口转发」(有些品牌叫「虚拟服务器」)功能
  • 添加两条转发规则:
    • 外部端口445 → 内部Mac的局域网静态IP + 内部端口445,协议选TCP
    • 外部端口139 → 内部Mac的局域网静态IP + 内部端口139,协议选TCP/UDP
  • 一定要给Mac设置静态IP!可以在路由器后台给Mac的MAC地址绑定固定IP,或者在Mac的「网络设置」里手动配置静态IP,不然Mac重启后IP变了,转发规则直接失效

三、这几个额外配置才是关键(你之前大概率没做)

1. 动态DNS(DDNS)绑定

绝大多数家庭宽带的公网IP是动态的,重启路由器或运营商刷新IP后,之前的公网IP就没用了,所以必须绑定一个固定域名:

  • 大部分路由器自带DDNS功能,比如花生壳、阿里云DNS等,跟着路由器的指引绑定一个免费或付费的域名就行
  • 如果路由器没有DDNS,也可以在Mac上装个DDNS客户端(比如No-IP的官方客户端),它会自动把你的公网IP更新到绑定的域名上

2. 防火墙全链路放行

  • Mac本地防火墙:打开「系统设置」→「网络」→「防火墙」,点击「选项」,确保「文件共享(SMB)」已经被允许通过防火墙;如果是手动模式,得手动添加smbd进程(路径是/usr/sbin/smbd)并允许它接收外部连接
  • 路由器防火墙:除了端口转发,还要在路由器的「入站规则」里放行445139端口的流量,很多路由器默认会拦截陌生入站流量,光开端口转发没用

3. SMB配置优化(解决跨WAN连接失败的核心)

跨WAN时SMB的签名和版本兼容经常出问题,我们可以手动修改配置:

  • 打开「终端」,执行命令编辑SMB配置文件:
    sudo nano /etc/nsmb.conf
    
    如果文件不存在就直接新建,添加以下内容:
    [default]
    signing_required=no
    protocol_vers_map=6
    
    解释一下:signing_required=no关闭SMB签名要求(跨WAN时签名校验容易超时失败,普通场景下关闭没问题,敏感环境可以忽略这条);protocol_vers_map=6强制使用SMB3(对应值:6=SMB3,5=SMB2.1,4=SMB2)
  • 保存后按Control+X退出,然后重启SMB服务生效:
    sudo launchctl stop com.apple.smbd
    sudo launchctl start com.apple.smbd
    

四、远端设备挂载共享磁盘的方法

  • 打开访达,按Command+K调出「连接服务器」窗口
  • 输入地址:smb://你的DDNS域名/共享文件夹名称(如果用公网IP就是smb://xxx.xxx.xxx.xxx/共享文件夹名称
  • 输入你在Mac共享设置里的用户名和密码,点击「连接」就能挂载了

五、常见问题排查

  • 先在局域网内测试:用Mac的局域网IP访问smb://局域网IP/共享文件夹,确认本地SMB没问题,再排查跨WAN的问题
  • 用在线端口检测工具检查公网的445139端口是否开放,如果显示关闭,说明路由器的端口转发或防火墙没配置对
  • 如果用的是运营商光猫,可能需要把光猫改成「桥接模式」(让路由器做主路由),或者在光猫里也做一遍端口转发——很多光猫自带路由功能,会拦截入站流量

内容的提问来源于stack exchange,提问作者Walrus the Cat

火山引擎 最新活动