Ubuntu 22.04 LTS详细教程:一步步配置Samba服务器,实现跨文件共享(超详细)
Meta描述(用于百度搜索结果摘要):
本文手把手教你如何在Ubuntu 22.04 LTS系统上配置Samba服务器,实现Windows、Linux、macOS等跨平台文件共享,包含安装、配置、用户权限、防火墙设置及常见问题解决,助你轻松搭建个人或团队NAS。

(文章正文)
引言:为什么选择在Ubuntu上配置Samba服务器?
在日常工作和团队协作中,跨操作系统的文件共享是一个常见且重要的需求,你可能有一台性能强劲的Ubuntu服务器,希望能像使用Windows网络邻居或NAS(网络附加存储)一样,方便地从Windows电脑、Mac或另一台Linux机器上访问其文件。
这时,Samba 就是你最得力的助手,Samba是一套将SMB/CIFS协议应用于UNIX和Linux系统上的免费软件,它能让你的Ubuntu服务器摇身一变,成为一个功能完善的文件共享中心,本文将以当前最主流的 Ubuntu 22.04 LTS 为例,提供一份保姆级的Samba服务器配置教程,即使是新手也能轻松跟完。
第一步:准备工作与系统更新
在开始安装任何软件之前,良好的习惯是更新系统软件包列表并升级已安装的包,这可以确保我们使用的是最新的稳定版本,并修复潜在的安全漏洞。
打开终端(快捷键:Ctrl+Alt+T),执行以下命令:

# 更新软件包列表 sudo apt update # 升级已安装的软件包 sudo apt upgrade -y
执行完毕后,你的系统就已经是最新状态,可以放心进行下一步了。
第二步:安装Samba软件包
Ubuntu的软件仓库中包含了Samba的稳定版本,我们可以直接使用 apt 包管理器进行安装。
# 安装Samba主程序和客户端工具 sudo apt install samba samba-common -y
安装过程中,系统会自动处理依赖关系,当看到提示时,按 Enter 键继续即可,安装完成后,Samba服务通常会自动启动,我们可以用以下命令来检查其状态:
# 检查Samba服务状态 sudo systemctl status smbd
如果输出显示 active (running),则说明服务已成功启动。
第三步:创建Samba共享目录和专用用户
为了安全和管理的方便,我们不建议直接使用系统已有的用户来访问共享,最佳实践是创建一个专门的共享目录和一个专门用于Samba访问的用户。
-
创建共享目录 我们将在
/home目录下创建一个名为share的文件夹作为共享点。# 创建共享目录 sudo mkdir -p /home/share # 为了方便后续操作,将目录所有者改为当前用户 sudo chown $USER:$USER /home/share
-
创建Samba专用用户 这个用户必须是系统已存在的用户,我们以当前登录用户为例(假设用户名为
ubuntu_user),然后使用smbpasswd命令为该用户设置Samba专用的密码。# 为用户 'ubuntu_user' 设置Samba密码 sudo smbpasswd -a ubuntu_user
系统会提示你输入并确认两次密码。 这个密码与你系统的登录密码是独立的,专门用于访问Samba共享。
第四步:配置Samba核心(smb.conf)
这是整个配置过程中最关键的一步,所有共享的规则、权限都在Samba的主配置文件 smb.conf 中定义。
-
备份原始配置文件 在修改前,养成备份的好习惯。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
-
编辑配置文件 使用你喜欢的文本编辑器,如
nano或vim,来打开smb.conf文件。sudo nano /etc/samba/smb.conf
-
编写共享配置 在文件末尾添加以下内容,这段配置定义了一个名为
[PublicShare]的共享。# ==================================================================== # 自定义共享区域开始 # ==================================================================== [PublicShare] comment = Ubuntu Shared Folder path = /home/share browseable = yes writable = yes guest ok = no valid users = ubuntu_user # 只允许我们之前创建的用户访问 create mask = 0775 # 新建文件/目录的默认权限 directory mask = 0775 # 新建目录的默认权限 force user = ubuntu_user # 强制新建文件/目录的所有者为该用户 # ==================================================================== # 自定义共享区域结束 # ====================================================================
配置项详解:
[PublicShare]:这是在Windows网络中看到的共享名称,可以自定义。path:指定共享的绝对路径。browseable = yes:允许此共享在“网络邻居”中被浏览到。writable = yes:允许用户在此共享中写入文件。guest ok = no:禁止来宾(匿名)用户访问,提高安全性。valid users = ubuntu_user:明确指定哪些用户可以访问,这是权限控制的核心。create mask和directory mask:定义了新建文件和目录的权限,0775意味着所有者有读写执行权限,组用户和其他用户有读和执行权限,非常适合团队协作。force user:所有操作都以此用户的身份进行,避免文件所有者混乱。
-
测试配置文件语法 保存并关闭文件(在
nano中是Ctrl+X,Y,Enter),在重启服务前,务必测试配置文件是否有语法错误。testparm
如果输出
Load smb config files from /etc/samba/smb.conf和Unknown parameter encountered: "include"等警告(如果没修改默认配置),但最终显示Loaded services file OK.和Server role: ROLE_STANDALONE,则说明语法正确。
第五步:设置防火墙与SELinux(如果启用)
现代Linux系统默认都有防火墙,需要为Samba开放必要的端口(Samba使用 139 和 445 端口)。
-
UFW防火墙(Ubuntu默认) 如果你的系统启用了UFW,执行以下命令:
# 允许Samba服务通过防火墙 sudo ufw allow samba # 重新加载防火墙规则使其生效 sudo ufw reload
-
关于SELinux 注意: Ubuntu默认不启用SELinux,如果你是从其他发行版(如CentOS/RHEL)迁移过来的习惯,或者在Ubuntu上手动启用了SELinux,那么你需要执行以下命令来为Samba共享设置正确的安全上下文,否则会出现“权限被拒绝”的错误。
# 设置共享目录的安全上下文 sudo chcon -t samba_share_t /home/share
对于大多数Ubuntu用户,此步骤可以跳过。
第六步:重启Samba服务并测试
完成所有配置后,重启Samba服务以使所有更改生效。
# 重启Samba服务 sudo systemctl restart smbd nmbd
激动人心的时刻到了!
-
在Windows上访问: 打开文件资源管理器,在地址栏输入
\\<你的Ubuntu服务器IP地址>,然后按回车。- 如何获取Ubuntu的IP地址?在终端输入:
hostname -I \\192.168.1.100系统会弹出身份验证窗口,输入你之前创建的用户名(ubuntu_user)和Samba密码,即可成功访问共享文件夹!
- 如何获取Ubuntu的IP地址?在终端输入:
-
在macOS上访问: 打开“访达”,点击菜单栏的“前往” -> “连接服务器”,然后输入
smb://<你的Ubuntu服务器IP地址>,smb://192.168.1.100,连接后输入用户名和密码即可。 -
在另一台Linux上访问: 你可以使用
smbclient命令行工具测试:smbclient //<你的Ubuntu服务器IP地址>/PublicShare -U ubuntu_user
输入密码后,如果能看到
smb: \>提示符,则说明连接成功。
第七步:常见问题与解决方案
Q1: 访问共享时提示“没有权限”或“登录失败”?
- 检查用户密码:确保输入的是Samba密码,而不是系统登录密码。
- 检查共享目录权限:确保共享目录的所有者是你的用户,并且有读写权限 (
chmod 775 /home/share和chown $USER:$USER /home/share)。 - 检查
smb.conf配置:确保valid users设置正确,writable = yes。 - 检查SELinux:如果你启用了SELinux,请确保设置了正确的安全上下文。
Q2: 在Windows网络邻居中看不到我的Ubuntu服务器?
- 检查
workgroup设置:确保你的Ubuntu服务器和Windows电脑在同一个工作组(Workgroup)下,在smb.conf的[global]部分,可以找到workgroup = WORKGROUP,将其修改为与你Windows所在的工作组一致(通常是WORKGROUP)。 - 检查防火墙:确认防火墙没有阻止Samba端口(139, 445)。
- 启用网络发现:在Windows的“网络和共享中心”中,确保“网络发现”和“文件和打印机共享”已启用。
Q3: 如何创建多个共享?
- 只需在
smb.conf文件中,复制[PublicShare]的整个配置块,修改[共享名称]和path即可,每个共享块都是独立的。
恭喜你!你已经成功地在Ubuntu 22.04 LTS服务器上搭建起了一个功能完善的Samba文件共享服务,通过本文的步骤,你不仅学会了如何安装和配置Samba,还理解了其背后的权限和安全逻辑,你可以享受跨平台无缝传输文件的便利,无论是个人数据备份还是团队项目协作,都将变得高效而简单。
Samba的强大远不止于此,你还可以配置打印机共享、用户家目录共享等,希望这篇教程能成为你探索Linux网络服务世界的坚实第一步。
(文末可以加上相关标签,利于SEO)
#Ubuntu #Samba #文件共享 #Linux服务器 #NAS #网络配置 #教程 #22.04
