必须先启用smbd和nmbd服务并放行防火墙端口,否则Samba共享无法被Windows等设备发现和访问;需执行systemctl enable/start smbd nmbd、firewall-cmd放行137-139/445端口,并用ss命令验证监听状态。

要在银河麒麟V10上让Windows、macOS或其他Linux设备能访问本地文件,必须先让SMB协议服务真正跑起来——光装软件不行,服务没启,共享就是摆设。
确认Samba是否已安装
打开终端,执行:dpkg -l | grep samba。若输出中包含 samba、samba-common-bin 和 samba-client 三者,则已安装完整;若缺失任一包,需补全。
未安装时,运行:sudo apt update && sudo apt install -y samba samba-common-bin samba-client。注意:银河麒麟V10 SP1及之后版本默认使用APT源,非YUM;若系统为早期SP0或定制版使用YUM,则改用 sudo yum install -y samba。
启用并启动SMB服务
第一步:设置开机自启:sudo systemctl enable smbd nmbd。nmbd负责NetBIOS名称解析,Windows网络邻居发现依赖它,【漏掉nmbd会导致Windows“看不到”服务器】。
第二步:立即启动服务:sudo systemctl start smbd nmbd。
第三步:验证状态:systemctl is-active smbd nmbd,应返回 active;再执行 systemctl status smbd,确认输出中含 active (running) 且无红色报错行。
检查防火墙放行关键端口
银河麒麟V10默认启用 firewalld,而SMB通信依赖四组端口:TCP 139(NetBIOS会话)、TCP 445(SMB直接宿主)、UDP 137(NetBIOS名称服务)、UDP 138(NetBIOS数据报)。
执行以下命令一次性放行:sudo firewall-cmd --permanent --add-service=samba && sudo firewall-cmd --reload。
若该命令报错提示 Unknown service 'samba',说明firewalld未预置samba服务定义,此时改用端口方式:sudo firewall-cmd --permanent --add-port=139/tcp --add-port=445/tcp --add-port=137/udp --add-port=138/udp && sudo firewall-cmd --reload。
验证SMB监听状态
运行:sudo ss -tlnp | grep ':139\|:445'。应看到 smbd 进程监听在 *:139 和 *:445 上;若无输出,说明服务未真正绑定端口,需回查配置或日志。
查看最近错误线索:sudo tail -n 20 /var/log/samba/log.smbd。常见问题包括配置语法错误、共享路径不存在、权限不足等。

















