Linux 配置 Samba 服务,Windows 访问共享目录

在混合系统的网络环境中,Linux 与 Windows 之间共享文件是非常常见的需求。
如果希望 Windows 直接访问 Linux 的文件夹,最便捷的方法就是在 Linux 上配置 Samba 服务,让它充当 SMB 文件服务器。

本文将详细介绍如何在 Linux 上安装、配置 Samba,并从 Windows 端访问共享目录。

一、什么是 Samba

Samba 是一个开源软件,允许 Linux、Unix 等系统通过 SMB/CIFS 协议 与 Windows 系统共享文件和打印机。
简单来说,Samba 可以让 Linux 像一个“Windows 文件服务器”一样被访问。

Samba 的主要组件包括:

组件说明
smbd提供文件和打印共享服务
nmbd提供 NetBIOS 主机名解析(可通过名称访问而不是 IP)
smbclientLinux 命令行访问 SMB 共享的客户端
mount.cifsLinux 挂载 SMB 共享的工具

二、安装 Samba 服务

在 Debian/Ubuntu 系统上执行以下命令安装 Samba:

sudo apt update
sudo apt install samba -y

如果是 CentOS 或 RHEL:

sudo yum install samba samba-client samba-common -y

安装完成后,确认版本:

smbd --version

三、创建共享目录

我们先创建一个要共享给 Windows 的目录,例如:

sudo mkdir -p /srv/samba/share
sudo chmod 777 /srv/samba/share

为了方便测试,设置 777 权限;生产环境中应根据需要设置更严格的权限。

四、配置 Samba 服务

Samba 的主配置文件位于 /etc/samba/smb.conf
在文件末尾添加如下配置:

[share]
   comment = Linux Share Folder
   path = /srv/samba/share
   browseable = yes
   writable = yes
   guest ok = yes
   create mask = 0777
   directory mask = 0777

这段配置含义如下:

参数说明
[share]共享名称,在 Windows 访问时使用
path实际共享的目录路径
browseable是否允许在网络邻居中显示
writable是否允许写入
guest ok是否允许匿名访问
create maskdirectory mask创建文件与文件夹的权限掩码

如果你希望只允许特定用户访问,可以使用如下配置:

[share]
   comment = Linux Secure Share
   path = /srv/samba/share
   valid users = sambauser
   writable = yes
   create mask = 0664
   directory mask = 0775

五、创建 Samba 用户(仅限用户访问模式)

如果你选择了带验证的共享,需要添加 Samba 用户:

sudo useradd -M -s /sbin/nologin sambauser
sudo smbpasswd -a sambauser

输入两次密码后,该账户即可通过 Windows 登录 Samba。

六、启动并设置自启

启用并启动 Samba 服务:

sudo systemctl enable smbd --now
sudo systemctl enable nmbd --now

检查状态:

sudo systemctl status smbd

看到 “active (running)” 即表示 Samba 已正常运行。

七、在 Windows 访问 Linux 共享目录

完成 Linux 端配置后,就可以在 Windows 中直接访问共享了。如果你还没有配置过windows的samba请参考这篇文章:Windows 配置 Samba 服务并在 Linux 挂载访问

1. 打开资源管理器

在地址栏中输入:

\\192.168.1.10\share

(将 192.168.1.10 替换为你的 Linux 主机 IP)

2. 访问共享

  • 如果是 匿名共享(guest ok = yes),直接访问即可;
  • 如果是 用户验证模式,会弹出登录框,输入:
    用户名:sambauser
    密码:你设置的密码

3. 映射网络驱动器(可选)

为了下次访问更方便,可以右键“此电脑” → “映射网络驱动器”,
选择一个盘符,例如 Z:,路径填写:

\\192.168.1.10\share

勾选“登录时重新连接”后点击完成。

这样,Linux 共享文件夹就像本地磁盘一样显示在 Windows 中。


九、常见问题排查

问题原因解决办法
无法访问 \\IP\shareSamba 服务未启动或防火墙阻止检查 systemctl status smbd 或关闭防火墙测试
提示“用户名或密码错误”Samba 用户未创建或密码错误执行 smbpasswd -a username 重新设置
无法写入共享文件目录权限不足确认 Linux 目录权限及 writable=yes 设置
Windows 无法找到主机名未启用 nmbd 或未配置 NetBIOS通过 IP 地址访问或启用 nmbd
THE END