(本文由AI整理总结)
在日常工作与生活中,我们常常需要在多设备间共享文件。Ubuntu系统下的Samba服务能帮我们实现这一需求,将本地目录变身为可跨设备访问的私有网盘。本文将详细介绍从环境准备到多设备访问的完整流程。


一、环境准备

1. 检查系统信息

首先,我们需要了解系统的基本情况,以便后续操作。打开终端,执行以下命令:

# 查看系统版本
lsb_release -a

# 查看磁盘分区(选择空间充足的分区创建共享目录)
df -h

系统版本与磁盘分区查看结果示例

2. 确认网络状态

确保服务器已连接网络,并记录内网IP(后续设备访问需要用到):

ip addr show | grep -E "inet " | grep -v 127.0.0.1

内网IP查看结果示例


二、安装Samba服务

1. 安装Samba软件包

更新软件源并安装Samba服务,在终端输入:

# 更新软件源
sudo apt update

# 安装Samba服务
sudo apt install -y samba samba-common

Samba安装过程示例

2. 验证安装状态

安装完成后,检查Samba版本和服务状态:

# 查看Samba版本
smbd --version

# 检查服务状态(刚安装后默认未启动)
sudo systemctl status smbd nmbd

Samba版本与服务状态查看示例


三、配置共享目录

1. 创建共享目录

选择空间充足的分区创建共享目录(这里以/data/storage/share为例):

# 创建目录
sudo mkdir -p /data/storage/share

# 设置目录所有者(替换为当前用户名,如user)
sudo chown -R $USER:$USER /data/storage/share

# 设置目录权限(确保读写权限)
sudo chmod -R 775 /data/storage/share

共享目录创建与权限设置示例

2. 配置Samba共享规则

编辑Samba主配置文件:

sudo nano /etc/samba/smb.conf

在文件末尾添加如下共享配置(可根据实际情况修改):

[share]
    # 共享名称(访问时显示)
    comment = Private Cloud Storage
    # 共享目录绝对路径
    path = /data/storage/share
    # 允许网络可见
    browseable = yes
    # 允许写入操作
    writable = yes
    # 禁止匿名访问
    guest ok = no
    # 允许访问的用户(替换为实际用户名)
    valid users = user
    # 新建文件权限
    create mask = 0644
    # 新建目录权限
    directory mask = 0755

保存退出(Ctrl+O → 回车 → Ctrl+X)。

3. 验证配置文件语法

执行以下命令验证配置文件语法是否正确:

testparm

若显示Loaded services file OK.,则表示配置正确。


四、创建Samba用户

Samba用户需基于系统已存在的用户,操作步骤如下:

  1. 确认系统用户存在(以user为例):
    id user  # 输出用户ID信息表示存在
    
  2. 添加Samba用户并设置密码
    sudo smbpasswd -a user
    
    输入并确认密码(与系统密码可不同)。
  3. 验证用户添加成功
    pdbedit -L  # 列出所有Samba用户,应包含user
    

Samba用户创建与验证示例


五、启动并配置Samba服务

1. 启动服务

启动Samba的核心服务smbd(文件共享)和nmbd(名称解析),并设置开机自启:

# 启动smbd和nmbd
sudo systemctl start smbd nmbd

# 设置开机自启
sudo systemctl enable smbd nmbd

2. 验证服务状态

执行命令查看服务状态,需显示active (running)

sudo systemctl status smbd nmbd

Samba服务状态查看示例


六、配置防火墙

1. 放行Samba端口(UFW防火墙)

Samba服务需要用到TCP的139和445端口,执行以下命令放行:

# 允许Samba所需端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp

# 重新加载防火墙规则
sudo ufw reload

# 查看规则是否生效
sudo ufw status

UFW防火墙规则配置示例

七、访问测试

1. 服务器本地测试

在服务器上本地连接共享,验证服务是否正常:

# 连接本地共享
smbclient //localhost/share -U user

输入密码后进入smb:\>交互界面,说明服务正常。
服务器本地连接共享示例

2. 局域网设备访问

Windows系统
  1. 打开「文件资源管理器」,在地址栏输入:\\服务器内网IP\share(例如\\192.168.1.100\share)。
  2. 输入Samba用户名和密码,即可访问共享目录。
    Windows访问Samba共享示例
手机设备(以ES文件浏览器为例)
  1. 打开APP → 「网络」→ 「SMB」→ 「新建连接」。
  2. 输入服务器IP、用户名、密码,连接后访问share目录。
    在这里插入图片描述

3. 外网访问配置(可选)

通过路由器端口映射实现外网访问:

  1. 登录路由器管理后台(例如192.168.1.1)。
  2. 添加端口映射规则,如下表:
规则名称 内部IP 内部端口 外部端口 协议
Samba1 192.168.1.100 139 139 TCP
Samba2 192.168.1.100 445 445 TCP
  1. 外网设备通过「外网IP+共享名称」访问(例如\\220.181.XX.XX\share)。

八、常见问题排查

1. 访问被拒绝(NT_STATUS_ACCESS_DENIED

如果出现访问被拒绝的情况,检查目录权限并重新设置:

# 检查目录权限
ls -ld /data/storage/share
# 重新设置权限
sudo chown -R user:user /data/storage/share
sudo chmod -R 775 /data/storage/share

2. 服务启动失败

查看错误日志,检查配置文件语法:

# 查看错误日志
journalctl -xeu smbd.service
# 检查配置文件语法
testparm

3. 防火墙拦截

可临时关闭防火墙测试,测试后重新启用:

# 临时关闭防火墙测试
sudo ufw disable
# 测试后重新启用
sudo ufw enable

通过以上完整流程,我们成功在Ubuntu系统上搭建了Samba服务,实现了本地目录的跨设备共享,打造出专属的私有网盘,满足多设备文件共享的需求。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐