所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux

如何在Ubuntu上安装和配置Samba:完整分步指南

Samba 是一个功能强大的开源软件套件,可以在运行 Windows 和类 Unix 操作系统(如 Ubuntu)的计算机之间实现无缝文件和打印共享。通过安装和正确配置 Samba,您可以在 Linux 和 Windows 环境之间架起桥梁,允许两个平台上的用户通过本地或广域网共享文件、目录,甚至打印机。

无论您是在管理家庭实验室、小型企业网络还是生产服务器环境,本综合指南都会逐步指导您在 Ubuntu 上安装、配置和保护 Samba — 包括大多数教程都会跳过的高级选项。

前置条件

开始之前,请确保您拥有:

  • 运行 Ubuntu 20.04、22.04 或 24.04 的服务器或机器
  • 对系统的 Sudo 或 root 访问权限
  • 对 Linux 命令行的基本了解
  • 您想要连接的机器之间的网络连接

如果您在远程服务器上运行 Samba,可靠且高性能的托管环境至关重要。来自 AlexHost 的 VPS 托管为您提供完整的 root 访问权限、专用资源和完全按照您的需求配置服务器的灵活性。

第1步:更新系统软件包

在安装任何新软件之前,更新系统的软件包索引并将现有软件包升级到最新版本至关重要。这确保了兼容性并防止已知漏洞。

sudo apt update && sudo apt upgrade -y

在继续之前,请等待该过程完成。

第 2 步:安装 Samba

使用 APT 包管理器安装 Samba 包:

sudo apt install samba -y

安装完成后,通过检查 Samba 版本来验证安装是否成功:

smbd --version

您应该看到类似以下的输出:

Version 4.15.13-Ubuntu

您也可以验证 Samba 服务是否正在运行:

sudo systemctl status smbd

输出应显示服务为 active (running)

第 3 步:备份默认 Samba 配置文件

在进行任何更改之前,始终备份原始配置文件。这样可以在出现问题时恢复默认设置:

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

这是许多指南忽视但经验丰富的系统管理员始终遵循的最佳实践。

第4步:创建和配置共享目录

4.1 创建目录

决定要在网络上共享的目录。在本指南中,我们将在主目录内创建一个名为 shared 的专用文件夹:

mkdir ~/shared

4.2 设置目录权限

在目录上设置适当的权限。对于需要多个用户具有读写访问权限的共享环境:

chmod 777 ~/shared

> 安全提示:chmod 777 设置向所有用户授予完全的读、写和执行权限。虽然便于测试,但不建议在生产环境中使用。在生产设置中,使用更严格的权限,例如 chmod 770,并通过组成员身份管理访问。

第5步:配置Samba — 编辑smb.conf

使用文本编辑器打开主Samba配置文件:

sudo nano /etc/samba/smb.conf

滚动到文件末尾并添加以下配置块:

[SharedFolder]
   path = /home/username/shared
   available = yes
   valid users = username
   read only = no
   browsable = yes
   public = yes
   writable = yes

username替换为您实际的Ubuntu系统用户名。

理解每个指令

指令描述
path被共享目录的绝对路径
available共享是否对用户可用
valid users限制对列出的用户的访问
read only设置为no以允许写入访问
browsable浏览网络时共享是否显示
public允许无需身份验证的访问(谨慎使用)
writable允许用户向共享写入文件

进行更改后,按CTRL + O保存文件,然后按Enter,最后按CTRL + X退出。

验证配置

重启Samba之前,测试您的配置文件是否存在语法错误:

testparm

此命令解析smb.conf文件并报告任何问题。在继续之前修复任何错误。

第 6 步:创建 Samba 用户账户

Samba 维护自己的密码数据库,与标准 Linux 系统密码分开。任何需要访问共享的用户都必须添加 Samba 特定的密码。

sudo smbpasswd -a username

系统将提示您输入并确认密码。从远程 Windows 或 Linux 机器连接到共享文件夹时需要此密码。

> 提示:为每个 Samba 用户使用强密码且唯一的密码。避免重复使用系统密码。

要在 Samba 中启用用户账户(如果之前已禁用):

sudo smbpasswd -e username

第 7 步:配置防火墙

如果您的 Ubuntu 服务器上启用了 UFW(简化防火墙),您需要允许 Samba 流量通过防火墙:

sudo ufw allow samba

验证规则已添加:

sudo ufw status

Samba 使用以下端口:

  • TCP 445 — SMB over TCP(主要)
  • TCP 139 — NetBIOS 会话服务
  • UDP 137 & 138 — NetBIOS 名称和数据报服务

第 8 步:重启并启用 Samba 服务

通过重启 Samba 服务来应用您的配置更改:

sudo systemctl restart smbd
sudo systemctl restart nmbd

启用两个服务在系统启动时自动启动:

sudo systemctl enable smbd
sudo systemctl enable nmbd

nmbd 服务处理 NetBIOS 名称解析,这对于 Windows 客户端在本地网络上按名称发现您的 Samba 服务器很重要。

第9步:从Windows系统访问共享文件夹

从同一网络上的任何Windows计算机,您现在可以连接到Ubuntu Samba共享:

  1. 打开文件浏览器
  2. 在地址栏中,输入Ubuntu机器的网络路径:
   ubuntu_ip_addressSharedFolder

ubuntu_ip_address替换为Ubuntu服务器的实际IP地址(例如,192.168.1.100SharedFolder

  1. 出现提示时,输入您在第6步中配置的Samba用户名密码
  2. 共享文件夹现在将出现在文件浏览器中,您可以像处理任何本地文件夹一样读取、写入、复制和删除文件

将共享映射为网络驱动器(可选)

为了持久访问,您可以在Windows中将Samba共享映射为网络驱动器:

  1. 在文件浏览器中右键单击此电脑
  2. 选择映射网络驱动器
  3. 选择驱动器号并输入网络路径
  4. 勾选登录时重新连接以实现自动挂载

步骤 10:从另一个 Linux 系统访问 Samba 共享

在另一台 Linux 机器上,您可以使用 smbclient 命令行工具连接到 Samba 共享。

首先,如果尚未安装 smbclient,请安装它:

sudo apt install smbclient -y

然后连接到共享:

smbclient //ubuntu_ip_address/SharedFolder -U username

在提示时输入 Samba 密码。您将进入一个交互式 FTP 类似的 shell,其中可以使用 lsgetputcd 等命令来导航和传输文件。

在 Linux 上挂载 Samba 共享

为了获得更无缝的体验,您可以使用 cifs-utils 将 Samba 共享挂载为本地文件系统:

sudo apt install cifs-utils -y
sudo mkdir /mnt/samba_share
sudo mount -t cifs //ubuntu_ip_address/SharedFolder /mnt/samba_share -o username=username,password=yourpassword

要使挂载在重启后持久存在,请在 /etc/fstab 中添加一个条目:

//ubuntu_ip_address/SharedFolder /mnt/samba_share cifs username=username,password=yourpassword,_netdev 0 0

> 安全提示:不要在 /etc/fstab 中存储凭据,而应使用具有受限权限的凭据文件。

第11步:高级Samba配置选项

Samba的smb.conf支持广泛的指令,让您对文件共享环境进行细粒度控制。以下是最有用的高级选项:

只读访问

要防止用户修改共享中的文件,请设置:

read only = yes

访客访问(匿名共享)

要允许用户在没有密码的情况下连接:

guest ok = yes
public = yes

> 仅在受信任的隔离网络上使用访客访问。切勿在面向公众的服务器上启用它。

按IP地址限制访问

要限制哪些计算机可以连接到共享:

hosts allow = 192.168.1.0/24
hosts deny = ALL

这将访问限制为仅192.168.1.x子网上的计算机。

多个共享文件夹

您可以通过向smb.conf添加其他块来定义任意数量的共享:

[Documents]
   path = /home/username/documents
   valid users = username
   read only = no
   writable = yes

[Backups]
   path = /srv/backups
   valid users = admin
   read only = yes
   browsable = no

设置最大连接数

要限制对共享的同时连接数:

max connections = 10

强制使用特定用户或组

要确保所有文件都以特定用户或组所有权创建:

force user = samba_user
force group = samba_group

第12步:保护您的Samba安装

安全至关重要,特别是如果您的Samba服务器可在本地网络之外访问。遵循以下加固最佳实践:

1. 禁用来宾访问

除非明确需要,否则始终禁用匿名访问:

map to guest = Never

2. 使用强密码

为所有Samba用户强制使用强密码和唯一密码。避免使用字典词汇,并使用大写字母、小写字母、数字和符号的组合。

3. 限制共享可见性

在敏感共享上设置browsable = no,使其在浏览网络时不出现。知道确切路径的用户仍然可以连接。

4. 限制共享目录的权限

应用最小权限原则——仅授予用户实际需要的权限。避免在生产环境中使用chmod 777

5. 将Samba绑定到特定接口

如果您的服务器有多个网络接口,仅将Samba绑定到内部接口:

[global]
   interfaces = eth0 lo
   bind interfaces only = yes

6. 启用日志记录

启用Samba日志记录以监控访问并检测可疑活动:

[global]
   log file = /var/log/samba/log.%m
   max log size = 1000
   log level = 1

7. 保持Samba更新

定期更新Samba以修补已知的安全漏洞:

sudo apt update && sudo apt upgrade samba -y

为您的 Samba 服务器选择合适的托管环境

Samba 文件服务器的性能和可靠性在很大程度上取决于底层基础设施。以下是根据您的使用情况需要考虑的一些托管选项:

  • 小型团队和个人项目: 共享网络托管为轻量级工作负载提供了经济实惠的入门选择。
  • 不断增长的企业和开发团队: VPS 托管提供专用资源、完整的 root 访问权限以及运行 Samba 和其他服务所需的可扩展性。
  • 高性能或企业工作负载: 专用服务器提供最大的性能、存储容量和网络吞吐量 — 非常适合大规模文件共享环境。
  • AI 和数据密集型应用程序:如果您在运行 Samba 的同时还要运行机器学习或数据处理工作负载,GPU 托管提供您所需的计算能力。

对于还需要托管控制面板体验的团队,带有 cPanel 的 VPS 简化了服务器管理,同时仍然为您提供安装和配置 Samba 的灵活性。

Samba 常见问题故障排除

无法从 Windows 连接

  • 验证 Samba 服务正在运行:sudo systemctl status smbd
  • 检查防火墙规则:sudo ufw status
  • 确认 IP 地址正确且可访问:ping ubuntu_ip_address
  • 确保用户名和密码与使用 smbpasswd 设置的内容匹配

访问共享时权限被拒绝

  • 检查目录权限:ls -la ~/shared
  • 验证 smb.conf 中的 valid users 指令与 Samba 用户名匹配
  • 确认用户已使用 smbpasswd -a username 添加

Samba 共享在网络上不可见

  • 确保 nmbd 正在运行:sudo systemctl status nmbd
  • 在共享配置中设置 browsable = yes
  • 检查 Windows 计算机和 Ubuntu 服务器是否在同一子网上

编辑 smb.conf 后出现配置错误

  • 运行 testparm 以识别语法错误
  • 如需要,恢复备份:sudo cp /etc/samba/smb.conf.bak /etc/samba/smb.conf

结论

在Ubuntu上安装和配置Samba是在Linux和Windows系统之间启用跨平台文件共享的最有效方法之一。通过遵循本指南,您已经学会了如何:

  • 安装Samba并验证安装
  • 创建和配置具有适当权限的共享目录
  • 添加Samba用户并管理身份验证
  • 配置防火墙以允许Samba流量
  • 从Windows和Linux客户端访问共享
  • 应用高级配置选项以进行访问控制和性能优化
  • 加强您的Samba安装以防止常见安全威胁

使用正确的服务器基础设施和正确配置的Samba设置,您可以构建一个可靠、安全且高性能的文件共享环境,为Linux和Windows用户无缝服务。无论您是在本地计算机上还是在基于云的VPS Hosting环境中运行Samba,本指南中的原则都将帮助您充分利用您的部署。