1.问题起因

孩子在家总是喜欢玩手机,于是给她买了个投影,投影的屏幕大有助于减轻视力疲劳.唯一不爽的是,每次给她下载大量的视频文件需要拷贝到U盘然后插到投影的USB口上,不经意间发现这个投影竟然支持连接网络存储,这个服务当然是Samba服务,想到局域网有一个一直运行的Linux服务器,服务器上挂载了个4Tb的存储,如果那这个当存储视频的移动存储,足够孩子看了,并且不用考来考去,拔来拔去尽费事. 移动存储.png

2.着手实现

于是开始开始动手搭建Samba服务

apt-get install -y samba

samba的配置文件是:/etc/samba/smb.conf 在

[Share]
path = /mnt/data/share
available = yes
valid users = sa
read only = no
browsable = yes

配置文件中添加了一个用户sa 配置samba用户目录权限\密码\开防火墙

chmod -R 775 /mnt/data/share
smbpasswd -a sa
firewall-cmd --permanent --add-service=samba

3.遇到问题

但是当连接的时候,界面上一直提示:请输入正确的用户名密码 可是命名用户名和密码是正确的的

无法登录.png

4.解决问题

于是想到抓包解决问题,samba监听在139和445端口

apt-get install -y tcpdump
tcpdump -i any port 445 or port 139 -w samba.pcap

在登录界面上点击确定,还是显示无法登录 CTRL+C结束抓包,将抓包文件传回Windows,用wireshark解析抓的数据 界面上清晰的显示了SMB相关的报文其中两个特别显眼: Negotiate Protocol Request Negotiate Protocol Response

overlook.png

点开Reponse报文 显示了Select Index:-1,server does not support any of the listed dialects

detial.png

意思是经过协商,不支持的协议,该协议是啥呢,看请求报文 显示Dialect:NT LM 0.12

request.png

将关键词输入百度: 百度AI给出了3条解决方案,经过分析还是第二条比较靠谱,可能是装的samba比较新,投影仪支持的协议比较老,降低最低协议版本比较靠谱 按照这个修改,重启服务,果然显示登录成功,终于解决了困扰已久的网络存储问题

resolve.png

登录成功.png