当前位置: 首页 > news >正文

Mac 访问 Linux 共享文件夹:Samba 配置完整指南

Mac 访问 Linux 共享文件夹:Samba 配置完整指南

前言

在日常开发或工作中,经常需要在 Mac 和 Linux 之间传输文件。虽然可以用 U 盘、网盘或者 scp 命令,但这些方式要么繁琐,要么需要每次输命令。

本文将介绍一种一劳永逸的方案:在 Linux 上配置 Samba 服务,让 Mac 像操作本地文件夹一样访问 Linux 上的文件

配置完成后,效果是这样的:

  • 在 Mac 的访达(Finder)里直接看到 Linux 的共享文件夹
  • 可以拖拽、复制、粘贴、编辑文件,就像操作本地硬盘一样
  • 不需要每次输密码(Mac 可以记住)
  • 支持多个文件夹同时共享

适用场景

  • 你有一台 Linux 服务器或树莓派,想从 Mac 上管理文件
  • 你在虚拟机里跑 Linux,想和 Mac 宿主机共享文件
  • 你有多台设备(Mac + Windows + Linux),想建立一个家庭文件共享中心

整体流程概览

Linux 端                               Mac 端│                                      │├─ 1. 安装 Samba                       │├─ 2. 创建共享文件夹                     │├─ 3. 编辑配置文件                       │├─ 4. 设置 Samba 密码                   │├─ 5. 启动服务                          │├─ 6. 开放防火墙                         ││                                      │└───────── 局域网 ─────────────────────→ 7. 连接访问

第一步:确认 Linux IP 地址

在 Linux 终端执行:

ip addr show | grep "inet "

找到类似 192.168.x.x 的地址,记下来(后面 Mac 连接时需要用到)。

💡 如果路由器开启了 DHCP,IP 可能会变化。建议在路由器后台给 Linux 设备设置一个静态 IP 分配。


第二步:安装 Samba

根据你的 Linux 发行版选择对应命令:

Ubuntu / Debian:

sudo apt update
sudo apt install samba -y

Rocky Linux / CentOS / RHEL:

sudo dnf install samba -y

Arch Linux:

sudo pacman -S samba

第三步:创建共享文件夹

假设你想共享两个文件夹:一个放文档,一个放代码。

# 创建文件夹
mkdir -p /home/你的用户名/文档共享
mkdir -p /home/你的用户名/代码共享# 设置权限(755 = 你可读写,其他人只读)
chmod 755 /home/你的用户名/文档共享
chmod 755 /home/你的用户名/代码共享

📌 把 你的用户名 替换成你实际的 Linux 用户名。


第四步:配置 Samba

编辑 Samba 的主配置文件:

sudo nano /etc/samba/smb.conf

4.1 注释掉 [homes] 部分

找到文件中大约第 60-80 行的 [homes] 部分,在每一行前面加上 # 注释掉:

#[homes]
#   comment = Home Directories
#   browseable = no
#   writable = yes

这一步是为了避免自动共享每个用户的家目录,防止权限混乱。

4.2 在文件末尾添加共享配置

[文档]path = /home/你的用户名/文档共享browseable = yesread only = novalid users = 你的用户名create mask = 0755directory mask = 0755[代码]path = /home/你的用户名/代码共享browseable = yesread only = novalid users = 你的用户名create mask = 0755directory mask = 0755

保存退出:Ctrl+O → 回车 → Ctrl+X

配置参数说明

参数 含义
[文档] 在 Mac 上显示的共享名
path Linux 上的实际文件夹路径
browseable 是否在网络中可见
read only no 允许写入,yes 只读
valid users 允许访问的用户(留空则所有人可访问)
create mask 新建文件的默认权限
directory mask 新建文件夹的默认权限

第五步:设置 Samba 密码

Samba 使用独立的密码系统,需要为你的 Linux 用户设置一个专门的 Samba 密码:

sudo smbpasswd -a 你的用户名

输入两次密码(可以和 Linux 登录密码不同)。


第六步:启动 Samba 服务

# 启动并设置开机自启
sudo systemctl enable smbd --now# 重启服务使配置生效
sudo systemctl restart smbd# 检查服务状态
sudo systemctl status smbd

看到 active (running) 就表示成功了。


第七步:开放防火墙

如果 Linux 开启了防火墙,需要放行 Samba 服务:

Ubuntu / Debian(使用 ufw):

sudo ufw allow samba

Rocky / CentOS(使用 firewalld):

sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload

临时测试(不推荐用于生产环境):

sudo ufw disable   # Ubuntu/Debian 关闭防火墙
sudo systemctl stop firewalld   # CentOS 关闭防火墙

第八步:Mac 端连接共享文件夹

  1. 打开 访达(Finder)
  2. 菜单栏点击 前往连接服务器(快捷键 Command + K
  3. 在输入框中输入:
    smb://你记下的LinuxIP地址
    
    例如:smb://192.168.1.100
  4. 点击 连接
  5. 选择 注册用户,输入:
    • 名称:你的 Linux 用户名
    • 密码:第五步设置的 Samba 密码(不是系统登录密码)
  6. 点击 连接

连接成功后,你会看到 文档代码 两个共享文件夹。


第九步:添加到 Finder 侧边栏(可选)

为了方便下次访问:

  1. 在 Finder 中选中共享文件夹
  2. 直接拖拽到左侧 个人收藏 区域

下次点击就能直接进入,不需要重新输入地址。


常见问题排查

问题 可能原因 解决方法
Mac 找不到服务器 IP 地址错误或不在同一局域网 检查 IP,确保两台设备连同一个路由器
能 ping 通但连不上 SMB 防火墙未放行 执行第七步的防火墙命令
连接失败,提示无效参数 SMB 协议版本不兼容 在配置文件中加入 server min protocol = SMB2
连上了但看不到共享文件夹 browseable 没设或设为 no 检查配置文件
能看到文件夹却进不去 valid users 用户名写错 检查用户名是否正确
能进去但无法写入 read only = yes 或文件夹权限不足 改为 read only = no,检查文件夹 chmod
密码错误 用了系统登录密码 必须用 smbpasswd 设置的密码
修改配置后没生效 没重启服务 执行 sudo systemctl restart smbd

验证配置命令

任何时候想检查 Samba 配置是否正确,运行:

testparm

这个命令会检查语法错误,并列出所有生效的共享配置。


进阶技巧

共享更多文件夹

直接在 /etc/samba/smb.conf 末尾追加新的 [共享名] 块即可。

设置只读共享(适合只允许查看,不允许修改)

[只读共享]path = /home/你的用户名/只读文件夹browseable = yesread only = yesvalid users = 你的用户名

设置免密公开共享(适合公共文件)

[公共文件]path = /home/你的用户名/公共文件夹browseable = yesread only = yesguest ok = yespublic = yes

⚠️ 免密共享建议只读,避免隐私泄露。

Windows 电脑也能访问

同样的配置,Windows 电脑在文件资源管理器地址栏输入 \\LinuxIP地址 即可访问。

参考资料

  • Samba 官方文档
  • macOS 连接服务器官方指南

📅 更新日期:2026 年 4 月
📝 适用系统:Ubuntu 20.04+ / Debian 11+ / Rocky Linux 8+ / macOS 12+

http://www.jsqmd.com/news/720461/

相关文章:

  • OpenAI 从模型研发到算力霸权的史诗跃迁
  • 2026 年无刷电机厂家口碑推荐榜:无人机电机、机器人电机、空心杯电机、无框力矩电机厂家选择指南 - 海棠依旧大
  • AI应用的可观测性工程2026:让LLM系统从黑盒变白盒
  • Paperxie AI PPT 生成器:毕业答辩 PPT 的 “懒人救星”,让你告别熬夜改模板
  • Windows Cleaner终极指南:3分钟彻底解决C盘爆红问题
  • 5分钟上手:ComfyUI-BiRefNet-ZHO智能AI图像背景去除与视频抠图工具终极指南
  • 从gethostbyname到getaddrinfo:现代Linux网络编程为何要升级你的DNS查询代码?
  • 2026年立式开装封一体机厂家推荐排行榜/开装封一体机,卧式开装封一体机 - 品牌策略师
  • 别再被PyTorch的Tensor布尔值搞晕了!手把手教你用.all()和.any()的正确姿势
  • VSCode新手必看:CodeGeeX插件安装到实战避坑全指南(2024最新版)
  • Xenia Canary终极指南:在现代PC上完美运行Xbox 360游戏的完整解决方案
  • 【触想智能】嵌入式工业一体机在智能化设备上应用产生的意义
  • UniApp动态渲染头像避坑指南:为什么你的`userInfo.avatar`在微信小程序里总变成‘/pages/index/undefined’?
  • 知识竞赛的类型与特点全面解析
  • Axure RP中文语言包:3分钟搞定专业界面本地化,告别英文烦恼!
  • PHP 8.9类型严格模式上线倒计时:3类遗留项目(Laravel 9、Symfony 6、WordPress插件)紧急适配清单
  • 【2026 Turnitin对策】英文文章AI率95%降至0%实测:掌握这4个高阶修改法
  • 如何使用MouseClick跨平台鼠标连点工具提升工作效率
  • 告别深拷贝的痛:在鸿蒙PC与ArkTS中玩转 `@ObservedV2` 装饰器
  • 如何3分钟内完成Windows文件完整性验证?HashCheck右键菜单工具完全指南
  • ComfyUI IPAdapter plus:如何用一张参考图实现精准AI图像风格迁移?
  • 蓝牙GAP通用访问协议详解:从原理到多平台实战代码
  • 【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
  • FIFA 23 Live Editor 完全指南:新手快速上手指南
  • 警惕!打击家教行业乱象,北师大家教中心如何成为北京家长的宠儿 - 教育资讯板
  • 答辩季救星:百考通AI如何帮你高效搞定学术PPT
  • 2025届必备的AI科研工具实际效果
  • 尼康相机测光方式(4 种)
  • BongoCat桌面虚拟助手终极指南:如何让你的电脑操作变得生动有趣
  • Let‘s Encrypt 免费SSL证书,自动续订