最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux怎么配置Samba与Windows共享文件夹
时间:2026-07-07 08:02:02 编辑:袖梨 来源:一聚教程网
Windows连不上Linux的Samba共享,八成是smbd或nmbd未运行、用户不存在或防火墙拦端口;必须确保两服务均active(running)、smbpasswd用户已添加且对应系统用户、global段设workgroup/security/map to guest、共享目录系统权限与Samba权限双重满足,并放行137–139/445端口。
Windows连不上Linux的Samba共享,八成不是配置写错了,而是smbd根本没跑、nmbd被防火墙拦了、或者smbpasswd用户压根没加进系统——这三处漏一个,就白配。
service smbd nmbd 必须同时 active (running)
很多人只启了smbd,却忘了nmbd。Windows“网络”里看不到你的机器名,大概率是nmbd没起来,导致NetBIOS广播失败。
- 检查两个服务状态:
systemctl status smbd nmbd,必须都显示active (running) - 一次性启用并启动:
sudo systemctl enable --now smbd nmbd - 如果
nmbd报错 failed(比如 “Address already in use”),可能是端口 137/138 被占用,先sudo ss -tuln | grep ':13[78]'排查 -
nmbd依赖主机名不含下划线(如nas_v2会失败),用hostname确认,必要时改/etc/hostname再sudo systemctl restart systemd-hostnamed
smb.conf 里 global 段不设这三项,Windows 就认不出你
光写共享段没用。[global]里三个参数缺一不可,否则 Windows 连接时直接报 0x80070035 或“找不到网络路径”。
-
workgroup = WORKGROUP:必须和 Windows 客户端一致(默认就是WORKGROUP,别写成HOME或空格) -
security = user:这是当前最稳的模式;security = share在 Samba 4.12+ 已废弃,Win10/11 上基本连不上 -
map to guest = bad user:输错密码时不卡死弹窗,而是降级为 guest(配合共享段的guest ok = yes才生效) - 顺手加上
unixcharset = UTF-8和dos charset = CP936,避免中文文件名乱码
valid users 和目录权限必须双重满足
Samba 认证通过 ≠ 能读写目录。系统权限和 Samba 权限是两套逻辑,必须同时放行。
-
valid users = @sambashare:表示只允许sambashare组成员访问;先sudo groupadd sambashare,再把用户加进去:sudo usermod -aG sambashare alice - 共享目录属组必须是
sambashare:sudo chgrp sambashare /srv/samba/shared - 权限要带 SGID(保证新建文件继承组):
sudo chmod 2775 /srv/samba/shared,不能只写777(不安全且 SELinux 下可能拒绝) - 若启用 SELinux,必须打标签:
sudo semanage fcontext -a -t samba_share_t "/srv/samba/shared(/.*)?",然后sudo restorecon -Rv /srv/samba/shared
防火墙不放 137–139/445(TCP+UDP),Windows 就是连不上
这不是可选项。Samba 的四个端口被任何一个拦截,都会导致不同症状:
- UDP 137/138:影响 Windows “网络”里发现 Linux 主机名(
nmbd广播) - TCP/UDP 445:影响所有现代 SMBv2/v3 连接(Win10/11 默认只走这个)
- Ubuntu/Debian:
sudo ufw allow 137:139/tcp && sudo ufw allow 445/tcp && sudo ufw allow 137:139/udp && sudo ufw allow 445/udp - RHEL/CentOS/Rocky:
sudo firewall-cmd --permanent --add-service=samba(比单开四个端口更可靠) - 别信“关防火墙试试”——临时关可以验证,但生产环境必须精准放行,否则等于裸奔
最容易被忽略的是nmbd和 UDP 端口的组合问题:服务开着、TCP 445 通了、用户也加了,但 Windows 就是在“网络”里看不到那台 Linux 机器——这时候不用重配smb.conf,先盯住systemctl status nmbd和firewall-cmd --list-ports | grep 137。
相关文章
- 高德地图路线规划显示异常怎么办 07-09
- 漫蛙漫画官方版正版ios如何安装 07-09
- 胖东来官网地址-胖东来官方网站入口地址 07-09
- investopedia官网中文版入口-investopedia国内能用的官方网页版入口地址 07-09
- 一点文学txt小说网站入口-一点文学小说官网入口地址2026最新 07-09
- 易校园怎么绑定微信 07-09