在实现板卡、ubuntu虚拟机、windows主机三方ping通后,曾经有一段时间一直无法实现文件夹的挂载,提示无法访问共享目录。做过以下尝试,基本上是把所有网络上能尝试到的解决方法都尝试国一遍了,最终解决总算是解决了。
但大家尝试的时候可能只需针对自己遇到的问题,使用里面的部分措施就能成功挂载。
1. 在windows中启动smb1.0支持:
控制面板-->程序-->启用或关闭windows功能-->勾选smb 1.0/CIFS
重启电脑后生效
2. ubuntu放行相关端口
sudo ufw enable
sudo ufw allow Samba
sudo ufw status numbered
输出为:
重启服务:sudo systemctl restart smbd nmbd
在windows高级安全windows defender防火墙,打开文件和打印机共享smb-in:
3. 按win+R 输入secpol.msc-->导航到本地策略-安全选项-->设置网络安全:LAN管理其身份验证级别为发送LM和NTLM响应。
测试结果为:samba服务器正常,但windows无法访问samba。
4. 再次尝试,按win+R 输入gpedit.msc,进入计算机配置-->管理模板-->网络-->lanman工作站。双击打开右侧“启用不安全的来宾登陆”。选择“已启用”,点击:应用或确定。
5. 在windows中再次尝试访问共享目录失败。
调整协议兼容性问题:
结果:
tcp显示true,至少通信通了。
但关个机回来后又不通了。
6. 定位原因:iptables规则未持久化。再加上,ubuntu系统既配置了ufw,又配置了firewalld,一直都只关了其中一个。
解决方式:
安装iptables-persistent工具
sudo apt update
sudo apt install iptables-persistent -y
在清空旧规则并验证445端口可用后,执行:
# 清空旧规则(确保当前会话规则允许445端口)
sudo iptables -F
sudo iptables -X
sudo iptables -Z
# 添加允许445端口的规则(关键步骤)
sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT
# 保存规则至持久化文件
sudo netfilter-persistent save
# 启用服务确保开机加载规则
sudo systemctl enable netfilter-persistent
# 立即加载规则(避免重启)
sudo netfilter-persistent reload
禁用ufw(若未使用):
sudo ufw disable
检查其他防火墙服务:
systemctl status firewalld
# 若存在则禁用:sudo systemctl stop firewalld && sudo systemctl disable firewalld
以上配置完成后,重启后规则仍保存。
7. 进入共享文件夹:
又遇到错误:在用户名、密码都输入正确的情况下,还是一直提示密码不正确。
解决方案:
再进入共享文件夹:
成功