麒麟系统连接老旧SMB 1.0设备失败时,需在smb.conf中设server min/max protocol = NT1,重启smbd/nmbd服务,并开放137/138/139/445端口。

如果您在麒麟操作系统中尝试连接老旧的共享打印机或SMB 1.0设备,但连接失败或提示“协议不支持”“无法访问”等错误,则很可能是目标设备仅支持已禁用的SMB 1.0协议。以下是启用SMB 1.0支持的具体操作步骤:
一、确认当前Samba是否禁用SMB 1.0
Samba自4.11版本起默认禁用SMB1(NT1)协议以提升安全性,而多数旧款共享打印机(如部分HP、Epson、三星型号)仅支持SMB 1.0。需手动显式启用该协议。
1、打开终端,执行命令检查当前Samba支持的协议版本:sudo testparm -v | grep "server min protocol\|server max protocol"
2、若输出中显示 server min protocol = SMB2 或更高,说明SMB 1.0已被屏蔽。
二、修改smb.conf强制启用SMB 1.0
通过编辑主配置文件,将最低协议版本设为NT1(即SMB 1.0),并明确允许旧协议协商,这是连接旧设备的关键前提。
1、备份原始配置文件:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2、使用文本编辑器打开配置文件:sudo nano /etc/samba/smb.conf
3、在[global]段落内(通常位于文件开头附近),添加或修改以下两行:
server min protocol = NT1
server max protocol = NT1
4、保存并退出编辑器(nano中按Ctrl+O回车保存,Ctrl+X退出)。
三、重启Samba服务并验证协议状态
仅修改配置不会生效,必须重启Samba守护进程使新协议策略载入内存,并确保无语法错误导致服务启动失败。
1、运行语法校验命令,确认配置合法:sudo testparm -s
2、若无报错,立即重启Samba服务:sudo systemctl restart smbd nmbd
3、再次检查协议版本是否已变更:sudo testparm -v | grep "server min protocol",输出应为 server min protocol = NT1
四、配置防火墙放行SMB 1.0必需端口
SMB 1.0依赖NetBIOS over TCP/IP,除标准SMB端口445外,还需开放137/138/139端口;若防火墙拦截这些UDP/TCP端口,旧设备将无法响应发现请求。
1、查看当前防火墙状态:sudo systemctl status ufw(Kylin V10 SP1默认使用ufw)
2、若启用防火墙,执行以下命令放行全部SMB相关端口:
sudo ufw allow 137/udp
sudo ufw allow 138/udp
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
3、重载防火墙规则:sudo ufw reload
五、测试与打印机连接验证
完成协议与网络层配置后,需在系统级验证SMB 1.0服务是否响应,并通过CUPS或图形界面实际添加打印机。
1、在麒麟系统中打开“设置”→“设备”→“打印机”,点击“添加打印机”
2、选择“网络打印机”→“Windows 打印机(SMB)”,输入格式为:smb://[服务器IP]/[共享打印机名]
3、若提示输入凭据,使用已配置的Samba用户名和密码(非系统登录密码)
4、安装驱动时,若系统未自动识别,可手动选择“Generic PostScript Printer”或对应厂商PCL驱动



















