NAS是Network Attached Storage的缩写,也就是网络附属存储,是一种专门用于提供文件级数据存储服务的设备或系统。以下是NAS的主要特点:
- 独立设备:NAS通常是连接到网络的独立硬件设备,内置硬盘驱动器,可以方便地扩展存储容量。
- 文件共享:它通过网络协议(如SMB、NFS等)为多个客户端提供文件共享和访问功能,支持不同操作系统之间的文件交换。
- 易于管理:NAS设备通常配备用户友好的管理界面,允许管理员轻松配置和监控存储资源。
- 备份与恢复:许多NAS设备内置了备份和恢复功能,确保数据的安全性和可靠性。
- 应用支持:除了基本的文件存储功能外,一些NAS设备还支持多媒体服务器、云同步、虚拟化等功能。
NAS广泛应用于家庭、中小企业以及大型企业中,用于集中管理和共享文件,提高工作效率并简化IT管理。
接下来我们选择NAS服务器中的smb协议来搭建NAS服务器
SMB协议
什么是smb协议
SMB(Server Message Block)协议是NAS(网络附加存储)服务器中常用的一种通信协议,具有以下特点:
- 文件共享:SMB协议主要用于在客户端和服务器之间进行文件和打印机的共享访问。
- 跨平台支持:它可以在不同的操作系统之间工作,如Windows、Linux和macOS,确保了良好的兼容性。
- 安全性:SMB协议支持身份验证和加密,保障数据传输的安全性。
- 版本更新:从早期的CIFS到现在的SMB 3.1.1,协议不断演进,增加了更多的功能和改进。
- 在NAS环境中,SMB协议使得用户能够方便地通过网络访问存储设备上的文件,如同访问本地磁盘一样。
搭建过程
更新源并安装Samba服务
sudo apt update
sudo apt install samba
配置Samba共享
编辑配置文件 /etc/samba/smb.conf,添加共享目录配置:
[Hikvision]
path = /path/to/your/shared/directory
valid users = nasuser
read only = no
browsable = yes
path: 存放录像文件的目录,需提前创建。
valid users: 允许访问该共享的用户。
read only: 是否只读,设为 no 表示可写。
创建NAS用户并设置权限
sudo adduser nasuser
sudo smbpasswd -a nasuser
sudo chmod -R 777 /path/to/your/shared/directory
启动并重启Samba服务
sudo systemctl restart smbd
sudo systemctl enable smbd
检查服务状态
sudo systemctl status smbd
客户端连接测试
smbclient //服务器IP/Hikvision -U nashw
海康监控录像配置
输入Linux服务器的地址,写入文件地址,文件地址是配置文件里的【】头部分,输入前面创建的nas用户的账号密码进行测试,测试通过即完成配置
异常问题
检查Samba服务状态时报错
systemd[1]: /lib/systemd/system/smbd.service:15: Unknown lvalue 'ExecCondition' in section 'Service'
出现这个错误是因为当前使用的 systemd 版本不支持 ExecCondition 配置。ExecCondition 是 systemd 的一个较新特性,用于在服务启动前运行某些条件检查。
检查当前 systemd 版本
运行以下命令,检查 systemd 的版本:
systemctl –version
如果版本较旧(低于 241),可能不支持 ExecCondition。
更新系统或 systemd
如果系统支持更新,可以尝试升级 systemd 到更高版本。
sudo apt update
sudo apt upgrade
单独升级 systemd(需要官方或社区支持的包):
sudo apt install systemd
移除或修改 ExecCondition
如果无法升级 systemd,可以通过修改 smbd.service 文件来绕过 ExecCondition。
修改配置文件:
编辑文件 /lib/systemd/system/smbd.service:
找到包含 ExecCondition= 的行,将其注释掉或删除。
例如:
# ExecCondition=/bin/some-check
重新加载 systemd 配置:
sudo systemctl daemon-reload
启动 Samba 服务:
sudo systemctl start smbd
重装 Samba(如有需要)
如果问题依然存在,可以尝试重新安装 Samba:
sudo apt remove –purge samba
sudo apt install samba
防火墙问题
确保防火墙允许 Samba 服务的端口(默认端口是 445 和 139)。
检查防火墙状态:
sudo ufw status
开放 Samba 所需端口:
sudo ufw allow 445
sudo ufw allow 139
调试日志
如果仍然无法连接,查看 Samba 的日志文件获取更多信息:
sudo tail -f /var/log/samba/log.smbd
sudo tail -f /var/log/samba/log.nmbd
或者查看特定客户端的日志文件:
sudo tail -f /var/log/samba/log.<客户端名称或IP>
可选:添加匿名访问
如果希望摄像头不需要身份验证,可以将共享配置为匿名访问:
修改 [Hikvision] 配置:
[Hikvision]
path = /home//NAS/HK
guest ok = yes
read only = no
browsable = yes
force user = root
重新加载 Samba 配置
欢迎关注公众号:“全栈开发指南针” 这里是技术潮流的风向标,也是你代码旅程的导航仪!🚀 Let’s code and have fun! 🎉
评论前必须登录!
注册