企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

标准Linux发行版打造NAS文件共享之SMB教程#Ubuntu#Debian

wudianyun 2025-06-04 02:15:22 精选文章 3 ℃

Ubuntu/Debian 打造 NAS: 完整版 Samba 配置教程(適合99%需求)

这篇文章面向常规 Linux 发行版用户,为您提供一套配适 Ubuntu 24.04 和 Debian 12 环境的 Samba NAS 搭建指南,包括 99%场景都通用的配置模板。

基本步骤

  1. 安装samba
  2. 配置smb用户
  3. 修改smb配置文件
  4. 配置网络发现

第一步:安装 Samba

sudo apt update
sudo apt install samba

Debian 系统默认未安装 sudo,如果你无法使用 sudo,可直接切换到 root 用户执行以上指令:

su -

第二步:添加 Samba 用户

您已经有系统用户,如 macjohson

sudo smbpasswd -a macjohson

输入两次密码,为 Samba 单独设置密码,和 Linux 系统登录密码无关。

新建用户

sudo adduser username  # 替换成你想要的用户名
sudo smbpasswd -a username

输入密码后,此用户即可用于 Samba 登录

第三步:配置 Samba 服务

修改主配置文件:

sudo nano /etc/samba/smb.conf

建议删除原有 [global] 和其他元素,替换为下方配置:

[global]
   workgroup = WORKGROUP
   server string = SMB Server
   netbios name = NAS
   server role = standalone server
   security = user
   map to guest = never
   log file = /var/log/samba/log.%m
   max log size = 50
   logging = file
   disable spoolss = yes
   load printers = no
   printcap name = /dev/null
   dns proxy = no

   # 性能优化
   use sendfile = yes
   aio read size = 1
   aio write size = 1
   min receivefile size = 16384
   getwd cache = yes
   read raw = yes
   write raw = yes
   strict locking = no
   oplocks = yes
   level2 oplocks = yes

   # 强制指定用户
   force user = macjohson
   force group = macjohson
   create mask = 0664
   directory mask = 0775

   # 屏蔽 macOS 垃圾文件
   veto files = /.DS_Store/._*/.AppleDouble/.Trash-*/.Spotlight-V100/.TemporaryItems/@eaDir/
   delete veto files = yes

   # macOS 兼容
   vfs objects = catia fruit streams_xattr
   fruit:metadata = stream
   fruit:resource = file
   fruit:locking = none
   fruit:encoding = native
   fruit:copyfile = yes
   fruit:zero_file_id = yes
   fruit:posix_rename = yes
   fruit:model = MacSamba
   fruit:time machine = no

   # SMB2/3 协议
   server min protocol = SMB2
   server max protocol = SMB3

[medias]
   path = /mnt/medias
   browsable = yes
   read only = no
   valid users = macjohson

[privacy]
   path = /mnt/privacy
   browsable = yes
   read only = no
   valid users = macjohson

配置说明请见本文第五部分,部署后请确保分享目录权限对应用户可读写

第四步:重启 Samba 服务

sudo systemctl restart smbd
sudo systemctl enable smbd

第五步:配置说明

  • 已依照 macOS 优化,支持 Finder 后台处理,且禁止了macos默认生成的文件上传
  • 禁用 SMB1 协议,增强安全性
  • force user 统一权限,适合单用户环境。因为我只有自己在使用,所以我把权限限制在了单一用户,配置:

force user = macjohson

force group = macjohson
以及文件共享配置里面的valid users = macjohson

请按照自己的需求来配置,以下为详细的配置说明,更改配置后你需要重启一下服务

sudo systemctl restart ssh sshd nmbd

[global]

全局配置

基础设置

  • workgroup = WORKGROUP
  • 设置工作组名称,默认是 Windows 的标准 WORKGROUP,对家庭环境适配良好。
  • server string = SMB Server
  • 描述服务器,显示在网络浏览器中,无功能性影响。
  • netbios name = NAS
  • 网络浏览名称,在局域网中显示为 NAS,便于识别。
  • server role = standalone server
  • 设置为独立服务器,不参与 AD 域,适合个人/家庭环境。
  • security = user
  • 使用基于用户名/密码的身份验证方式。
  • map to guest = never
  • 不允许访客用户访问,即未登录用户无法查看共享内容。

日志设置

  • log file = /var/log/samba/log.%m
  • 每台客户端生成一份日志,%m 表示客户端主机名。
  • max log size = 50
  • 单个日志文件最大 50KB。
  • logging = file
  • 日志记录到文件(默认行为)。

打印服务禁用(性能/安全优化)

  • disable spoolss = yes
  • 禁用 Windows 打印服务相关功能。
  • load printers = no
  • 不加载本地打印机。
  • printcap name = /dev/null
  • 不使用打印机功能。

网络优化

  • dns proxy = no
  • 不使用 DNS 代理,简化功能,减少安全风险。

性能优化

  • use sendfile = yes
  • 使用零拷贝发送方式,提高吞吐效率。
  • aio read size = 1 / aio write size = 1
  • 启用异步 IO 支持。
  • min receivefile size = 16384
  • 开启零拷贝的文件大小下限。
  • getwd cache = yes
  • 启用工作目录缓存,减少系统调用。
  • read raw / write raw / strict locking = no / oplocks = yes / level2 oplocks = yes
  • 一组组合优化,提升文件访问效率(特别是大文件),但在数据库类共享中需谨慎。

强制访问用户(权限控制)

  • force user = macjohson
  • force group = macjohson
  • 所有访问者统一以指定用户身份进行文件读写,避免权限混乱。
  • create mask = 0664
  • directory mask = 0775
  • 创建的文件和目录权限,适合大多数场景。

垃圾文件过滤(适配 macOS)

  • veto files = ...
  • 屏蔽并删除 macOS 下常见的垃圾/索引文件。
  • delete veto files = yes
  • 禁止这些文件上传,并自动删除。

macOS 兼容性

  • vfs objects = catia fruit streams_xattr
  • 加载 fruit 模块是支持 Time Machine 与资源叉的关键。
  • 一系列 fruit:* 参数
  • 完整适配 macOS,支持复制粘贴、图标保存、资源描述等特性。

协议限制

  • server min protocol = SMB2
  • server max protocol = SMB3
  • 禁用不安全的 SMB1,强烈推荐!

共享部分

[medias]

  • 路径 /mnt/medias
  • 可浏览,读写权限,允许用户 macjohson 访问。

[privacy]

  • 路径 /mnt/privacy
  • 同上,为另一个共享分区。

第六步:安装 WSDD / Avahi 实现网络发现

如果在 Windows 或 macOS 上不能自动打开接入 NAS,你需要配置 WSD (Windows) 和 mDNS (macOS/Linux)。

1. 安装 wsdd

sudo apt install wsdd
sudo systemctl enable wsdd
sudo systemctl start wsdd

2. 安装 avahi-daemon

sudo apt install avahi-daemon avahi-utils
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

配合 avahi,在 macOS Finder 中可自动打开 "NAS" 网络分享

如果进行防火墙配置,确保打开 TCP 5353 (mDNS),UDP 3702 (WSDD)等端口

总结

通过上述步骤,你已经完成了一套基于 Ubuntu/Debian 的高性能、安全且兼容 macOS/Windows 环境的 NAS 分享服务器。如果需要稳定、优雅、易于维护的自建解决方案,建议按照本文操作配置。

最近发表
标签列表