用Windows试图挂载CentOS上的Samba文件夹时会报“找不到网络名”,而用同为CentOS的WSL2虚拟机挂载则没有任何问题。
一开始一直只在139端口上抓包,发现双方在发完两对SMB协议的“Request-Resonse”包后,Windows端就断开了TCP连接,由此猜测不是在139端口上出的问题。
于是在Wireshark里取消了对139端口的过滤,由此发现Windows在用139端口完成SMB协议的“Request-Resonse”后,接下来对445端口的TCP握手请求失败了,CentOS端禁止访问该端口。
查到关于445端口的资料如下:
445端口使用的是SMB(Server Message Block)协议,在Windows NT中SMB基于NBT实现,而在 Windows 2000/XP/2003 中,SMB除了基于NBT实现还直接通过445端口实现。 139端口与445端口的区别 139端口是在NBT协议基础上,而445端口是在TCP/IP协议基础上。
看来Windows上的smbclient主要是使用445端口跟服务端通信的。
综上所述,只需要在CentOS下让防火墙放行445端口即可:
- # 开放端口
- firewall-cmd --add-port=445/tcp --zone=public --permanent
- # 重载生效
- firewall-cmd --reload
至于安全性问题就待进一步再优化吧。