samba是linux与windows共享文件最稳、最通用、跨发行版兼容性最好的方式;配置需严格遵循格式规范,如[global]段必设workgroup=workgroup和security=user,共享路径须为绝对路径并确保权限正确,同时注意windows端策略、防火墙端口(137/138/139/445)及selinux上下文等细节。

Linux 和 Windows 共享文件,最稳、最通用、跨发行版兼容性最好的方式就是配 Samba —— 它不是“可选方案”,而是生产环境事实标准。
怎么写 smb.conf 才能被 Windows 正常识别
Windows 访问 \192.168.1.100 却提示“找不到网络路径”?大概率是配置里缺了关键项,或语法有隐藏空格。Samba 对格式极其敏感,尤其缩进和等号两侧不能有空格。
-
[global]段必须包含workgroup = WORKGROUP(Windows 默认工作组名,大小写不敏感但建议全大写) - 必须设
security = user,否则 Windows 10/11 会直接拒绝连接(默认启用了 SMBv1 禁用和严格认证) - 共享段里
path必须是绝对路径,且 Linux 用户对这个目录要有读(read only = no时还需写)权限,比如chmod 755 /srv/samba/share - 如果想免密访问,加
guest ok = yes并确保map to guest = bad user在 global 段;但注意:Windows 11 22H2+ 默认禁用 Guest 访问,需手动改本地策略才能生效
smbpasswd 添加用户后还是连不上?检查这三处
输密码死活报“登录失败”,不是密码错,往往是用户没真正注册进 Samba 的密码数据库。
-
smbpasswd -a username中的username必须是已存在的 Linux 系统用户(id username能查到),不能是随便起的别名 - 添加后要确认
/var/lib/samba/private/passdb.tdb文件时间戳已更新,否则说明写入失败(常见于 SELinux 启用时权限拦截) - Windows 端输入用户名时,**必须带机器名或域名前缀**,例如
ALVIN-DESKTOPlvin或WORKGROUPlvin;纯alvin在多数新版本 Windows 上会被忽略
防火墙和端口不通?别只开 139 和 445
Samba 不是只靠两个端口跑起来的。nmbd 还要 137/138 udp 做 NetBIOS 名称解析,否则 Windows “网上邻居”里根本看不到 Linux 主机名,只能靠 IP 强行访问。
- Ubuntu/Debian:
sudo ufw allow 137/udp && sudo ufw allow 138/udp && sudo ufw allow 139/tcp && sudo ufw allow 445/tcp - CentOS/RHEL 8+:
sudo firewall-cmd --add-service=samba --permanent && sudo firewall-cmd --reload - 别信“只开 445 就够了”——那是纯 Active Directory 场景,家用或小团队局域网必须保留 NetBIOS 支持
Windows 连上但打不开文件夹?先看日志再动手
连接成功却提示“你没有权限访问该文件夹”,问题往往不在 Samba 配置,而在 Linux 底层权限或挂载选项。
- 运行
tail -f /var/log/samba/log.%m(%m 是客户端主机名),在 Windows 点击访问时实时看错误,常见如NT_STATUS_ACCESS_DENIED或NT_STATUS_SHARING_VIOLATION - 如果共享目录挂在 NTFS 或 exFAT 分区上,确保挂载时加了
uid=1000,gid=1000,umask=002等参数,否则 Samba 进程无法穿透挂载点权限 - SELinux 启用时,
ls -Z /srv/samba/share查看上下文,应为samba_share_t,否则执行sudo semanage fcontext -a -t samba_share_t "/srv/samba/share(/.*)?" && sudo restorecon -Rv /srv/samba/share
最常被跳过的其实是 Windows 端策略:本地组策略里“网络访问: 本地账户的共享和安全模型”若设成“经典”,Guest 就永远登不进去;而“仅来宾”又要求 Linux 端同步关闭认证——这个开关位置太深,很多人配完 Samba 就去重启服务,忘了回 Windows 按 F5 刷新策略缓存。










