云计算百科
云计算领域专业知识百科平台

Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹

Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹

NFS 是 Linux 之间共享文件的方案,但 Windows 不支持 NFS(需要额外安装组件)。Samba 实现了 SMB/CIFS 协议,让 Linux 服务器上的目录在 Windows 文件资源管理器里显示为网络驱动器,Mac 的 Finder 也原生支持。家庭 NAS、办公文件服务器、开发环境文件同步,Samba 是最通用的跨平台文件共享方案。

Samba 适用场景

  • 家庭 NAS:服务器上的影视、照片目录挂载到 Windows/Mac 直接访问
  • 办公文件服务器:团队共享文档,Windows 客户端映射网络驱动器
  • 开发环境:Windows 开发机访问 Linux 服务器上的代码目录
  • Time Machine 备份:Mac 通过 Samba 备份到 Linux 服务器

服务器配置

最低 1 核 1GB,Samba 很轻量,主要是磁盘 I/O 要够。

雨云服务器 rainyun+com有大容量数据盘机型,非常适合搭文件服务器。注册填优惠码 2026off 领 5 折优惠券。

安装 Samba

sudo apt update
sudo apt install -y samba samba-common-bin

# 验证安装
smbd –version

配置共享目录

场景一:匿名只读共享(媒体文件)

# 创建共享目录
sudo mkdir -p /srv/share/media
sudo chmod 755 /srv/share/media

# 放一些测试文件
sudo cp /etc/issue /srv/share/media/test.txt

编辑 Samba 配置:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

在文件末尾添加:

[global]
workgroup = WORKGROUP
server string = My File Server
# 服务器 NetBIOS 名称(Windows 网络邻居显示的名称)
netbios name = MYSERVER
security = user
# 日志
log file = /var/log/samba/log.%m
max log size = 1000

# 匿名只读共享(不需要密码)
[media]
comment = Media Files
path = /srv/share/media
public = yes
writable = no
guest ok = yes
read only = yes

场景二:需要密码的读写共享

# 创建共享目录
sudo mkdir -p /srv/share/documents
sudo chown -R nobody:nogroup /srv/share/documents
sudo chmod -R 775 /srv/share/documents

# 创建 Samba 用户(必须是系统用户)
sudo useradd -M -s /usr/sbin/nologin sambauser
sudo smbpasswd -a sambauser
# 输入密码两次

在 smb.conf 里添加:

[documents]
comment = Shared Documents
path = /srv/share/documents
valid users = sambauser
writable = yes
browseable = yes
create mask = 0660
directory mask = 0771

场景三:多用户共享(团队协作)

# 创建组和用户
sudo groupadd staff
sudo useradd -M -s /usr/sbin/nologin alice
sudo useradd -M -s /usr/sbin/nologin bob
sudo usermod -aG staff alice
sudo usermod -aG staff bob
sudo smbpasswd -a alice
sudo smbpasswd -a bob

# 创建组共享目录
sudo mkdir -p /srv/share/team
sudo chown root:staff /srv/share/team
sudo chmod 2775 /srv/share/team # SGID,新文件自动属于 staff 组

[team]
comment = Team Files
path = /srv/share/team
valid users = @staff
writable = yes
browseable = yes
create mask = 0660
directory mask = 2770
force group = staff

重启并测试

# 检查配置语法
testparm

# 重启 Samba
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd

# 查看共享列表
smbclient -L localhost -N

防火墙配置

# Samba 使用的端口
sudo ufw allow Samba
# 等同于:
# sudo ufw allow 445/tcp
# sudo ufw allow 139/tcp
# sudo ufw allow 137/udp
# sudo ufw allow 138/udp

安全建议:只允许内网 IP 访问,不要把 Samba 暴露到公网:

sudo ufw allow from 192.168.1.0/24 to any app Samba
sudo ufw deny Samba

在 Windows 上挂载

方式一:文件资源管理器

  • 打开文件资源管理器
  • 地址栏输入 \\\\服务器IP\\共享名(如 \\\\192.168.1.100\\documents)
  • 输入 Samba 用户名和密码
  • 方式二:映射网络驱动器(永久)

    # PowerShell 命令
    net use Z: \\\\服务器IP\\documents /user:sambauser 密码 /persistent:yes

    在 macOS 上挂载

  • Finder → 前往 → 连接服务器(⌘K)
  • 输入 smb://服务器IP/共享名
  • 输入用户名密码
  • 自动挂载(每次开机):

    # 在 /etc/fstab 里添加(macOS)
    //sambauser@服务器IP/documents /Volumes/documents smbfs credentials=/etc/samba-creds 0 0

    Mac Time Machine 备份配置

    让 Mac 通过 Samba 做 Time Machine 备份:

    # 创建备份目录
    sudo mkdir -p /srv/share/timemachine
    sudo chown sambauser:sambauser /srv/share/timemachine

    # 在 smb.conf 里添加特殊配置
    [timemachine]
    comment = Time Machine
    path = /srv/share/timemachine
    valid users = sambauser
    writable = yes
    vfs objects = catia fruit streams_xattr
    fruit:time machine = yes
    fruit:time machine max size = 500G

    sudo systemctl restart smbd

    然后在 Mac 的「系统偏好设置」→「Time Machine」→「选择磁盘」里,找到并选择这个 Samba 共享。

    查看连接状态

    # 查看当前连接的用户
    smbstatus

    # 查看 Samba 日志
    sudo tail -f /var/log/samba/log.smbd


    Samba 是最通用的跨平台文件共享方案,Windows、macOS、Linux 三端都能无缝访问。在雨云rainyun上搭建文件服务器,可以配合大容量数据盘存储媒体和文档,大容量机型价格实惠,搭一台私有 NAS 替代群晖。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!