Windows 11及Ubuntu客户端无法连接Ubuntu Server 22.04.2的Samba共享问题求助
Windows 11及Ubuntu客户端无法连接Ubuntu Server 22.04.2的Samba共享问题求助
看起来你遇到的是典型的Samba跨客户端连接超时问题,好在服务器本地能正常访问共享,说明Samba服务本身没完全挂掉,咱们一步步来排查定位问题:
1. 先排查防火墙端口是否开放
Ubuntu 22.04默认用ufw防火墙,很可能是Samba需要的端口被挡住了——毕竟你其他服务(Webmin、SSH等)能正常访问,说明基础网络没问题,但Samba的专属端口可能没放行:
- 先查看当前ufw规则:
sudo ufw status - 如果没看到
samba相关的允许条目,手动添加规则:sudo ufw allow samba # 或者手动指定SMB核心端口(更直接) sudo ufw allow 139/tcp sudo ufw allow 445/tcp - 之后重启ufw生效:
sudo ufw reload
2. 确认Samba监听的网卡是否正确
你的smb.conf里设置了interfaces = lo eno1,要确保eno1是服务器正在使用的网卡,且该网卡的IP是你用来连接的10.0.0.5:
- 查看网卡信息:
ip addr show eno1 - 如果网卡名不对(比如实际是
ens33、enp0s3这类),修改/etc/samba/smb.conf里的interfaces行,替换成正确的网卡名,然后重启Samba服务:sudo systemctl restart smbd nmbd
3. 检查共享挂载点的权限
你的共享路径都在/media/下,要确认这些挂载点的权限是否允许Samba用户访问:
- 查看挂载点权限:
ls -ld /media/TERADRIVE /media/DECATERA - 至少要保证其他用户有读权限(如果需要写权限则调整为
775),可以临时设置测试:sudo chmod 755 /media/TERADRIVE - 另外可以检查
/etc/fstab里的挂载选项,确保没有noexec、nodev这类会影响Samba访问的限制,建议加上user_xattr(Samba依赖这个处理扩展权限)。
4. 查看Samba服务状态和日志找线索
- 先确认
smbd和nmbd两个服务都在运行:sudo systemctl status smbd nmbd - 实时查看Samba的日志,从客户端尝试连接时,就能看到具体的错误信息:
日志里可能会提示权限不足、协议不兼容或者连接被拒绝的具体原因。tail -f /var/log/samba/log.smbd
5. 调整Samba的协议和工作组配置
虽然你之前试过修改协议版本,但可以补充几个关键参数:
在/etc/samba/smb.conf的[global]段添加或修改:
workgroup = WORKGROUP # 和Windows默认工作组保持一致 server min protocol = SMB2_02 server max protocol = SMB3_11 client min protocol = SMB2_02 client max protocol = SMB3_11
修改后重启Samba服务生效:
sudo systemctl restart smbd nmbd
6. 测试客户端到服务器的端口连通性
从客户端直接测试SMB端口是否能通,确认不是网络路由问题:
- Windows客户端打开CMD:
如果能连通会进入空白窗口,不通则会提示连接失败。telnet 10.0.0.5 445 - Ubuntu客户端:
正常情况下会显示nc -zv 10.0.0.5 445Connection to 10.0.0.5 445 port [tcp/microsoft-ds] succeeded!
按这个顺序排查下来,大概率能找到问题所在——毕竟本地能访问共享,说明Samba的核心配置是对的,问题基本出在网络层面或者权限限制上。
备注:内容来源于stack exchange,提问作者buntu peddler




