树莓派smb、ftp、webdav三种共享协议搭建方法和对比
树莓派挂了块3.5的硬盘做下载机和局域网影音共享，性能和耗电量都好于群晖Nas，特别是多盘位做raid保护的机型，群晖就不用24小时开机了，有需要的时候可以直接用树莓派通过网卡唤醒。换了电视后对片源的质量有了更高的要求，文件超过20G后，即使使用wifi6路由器，电视网卡支持800m+的传输速率，smb已经满足不了需求了，播放杜比视界版本的文件ftp也很卡，目前三个共享协议都尝试过了，分享一下搭建的过程。smb应该是兼容性最好的协议了，通吃各种系统，很多移动端的播放器也都支持好习惯，先更新软件源sudo apt-get update安装sambasudo apt-get install samba sudo apt-get install samba-common-bin配置sambasudo vim /etc/samba/smb.confglobal节点下添加一下配置，优化传输速度min receivefile size = 16384 write cache size = 262144在配置文件的末尾添加自定义配置[Public] comment = Public Storage # 共享文件夹描述 path = /你的共享目录 # 共享文件夹目录 read only = no # 不只读 create mask = 0777 # 创建文件的权限 directory mask = 0777 # 创建文件夹的权限 guest ok = yes # guest访问，无需密码 browseable = yes # 可见不需要密码到此搭建就结束了，可以直接跳到”重启服务”那步即可如果sma共享需要密码，添加如下配置[pt] # 共享段备注 comment = pt folder # 共享文件夹路径，必填 path = /你的共享目录 # 是否只读 read only = no # 允许匿名访问 guest ok = no # 是否出现在网络发现中 browseable = yes # 可以访问的用户，这个用户和本地的用户不同 valid users = 你的用户名为你的用户名设置密码sudo smbpasswd -a pi重启服务sudo samba restart #或 sudo systemctl restart smbd附上日志存放的目录，有问题方便排查cd /var/log/samba/ftp比较古老的协议，但在kodi播放器下，传输明显速度优于smb安全起见，创建新用户，给ftp使用sudo useradd -m -s /bin/bash ftper sudo passwd ftper映射共享的文件路径到新用户的home目录sudo ln -s /你的共享目录 /home/ftper/你的共享目录安装vsftpdsudo apt-get install vsftpd编辑配置文件sudo vim /etc/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022启动sudo service vsftpd startwebdav速度和ftp没有明显区别，但kodi下播放杜比视界视频时，只有webdav可以流畅播放下载webdav程序，选择armv7版本wget https://github.com/hacdias/webdav/releases/linux-armv7-webdav.tar.gz解压、复制到/usr/bin目录下tar -zxvf linux-armv7-webdav.tar.gz sudo cp webdav /usr/bin/注册servicecd /etc/systemd/system sudo vim webdav.service写入如下内容[Unit] Description=WebDAV server After=network.target [Service] Type=simple User=root ExecStart=/usr/bin/webdav --config /etc/webdav/config.yaml Restart=on-failure [Install] WantedBy=multi-user.target建立配置文件和上面/etc/systemd/system/webdav.service里的ExecStart目录要对应上cd /etc/webdav/ sudo vim config.yaml写入# Server related settings address: 0.0.0.0 port: 21234 auth: true tls: false cert: cert.pem key: key.pem # Default user settings (will be merged) scope: . modify: true rules: [] users: - username: admin password: admin #这里为共享目录 scope: /你的共享目录开机并启动服务systemctl enable webdav systemctl start webdav查看运行状态systemctl status webdav不报错的话直接输入http://你的ip地址:21234就可以正常访问根据自身实际使用情况（SONY电视 + 电视版KODI播放器 + 树莓派4 + 千兆有线网络/WIFI6 5G模式传输 + 4K 原生60帧片源/杜比视界片源）和体验来说，个人总结如下表：协议类型 速度 兼容性 KODIsmb 较快 好 传输性能较差ftp 快 较好 可播放70G视频文件webdav 快 差 最理想的模式总体来说smb协议的兼容性最好，windows/mac/linux均可支持，各个厂商的电视、盒子和各个手机端的播放器均支持smb协议传输，ftp和webdav原生支持的较少。理论上三者速度相差并不大，这里测试的环境是KODI播放器，没深入了解过KODI读取文件的方式，但大视频文件一定不能用smb协议，杜比视界视频文件一定要用webdav，咨询过KODI其中的一位开发者，他表示webdav可以开启多通道读取文件的模式，有利于文件更快的传输，但并不代表所有播放器的表现都一致。总结想要兼容性好首选smb如果播放器用的KODI，不用折腾，首选webdav