文章目录
多种方式搭建个人网盘服务器
本文针对个人网盘/文件服务器需求,提供了用于因特网或局域网的 Webdav
、SMB
、目录浏览
方案,还针对 windows 下的体验优化提供了建议。
FTP
过于陈旧,不推荐使用,chrome、firefox 已经计划结束对它的支持。
NFS
较难保证设置地安全,且个人使用无法发挥长处,如需要请自行查找。
1. Webdav
可读可写,且读写性可编辑,安全性取决于 https 设置,效率尚可。
- 安装
caddy
, 至少附加service hook
,webdav
选项。 - 设置
caddy
, 配置文件参照以下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
http://domain-name { root /storage log /var/log/caddy/webdav.log timeouts none basicauth / username password gzip browse webdav webdav/ { scope /storage modify true allow / } } |
- 安装服务和启动
1 2 3 |
sudo caddy -service install -conf /code/caddy/caddy.conf -name webdav sudo caddy -service start -name webdav |
- 如有需要,注意设置系统防火墙
2. SMB
SMB
经常爆出一些安全漏洞,但是文件传输效率很高,建议在内网中使用。对于 Windows 做文件服务器,开启文件共享并设置共享文件夹即可,samba
为搭建 linux 下文件服务器所需,且以 manjaro
发行版为例:
2.1 SAMBA 服务器搭建
- 安装 samba
1 2 |
sudo pacman -S manjaro-settings-samba |
- 编写配置文件,参照以下配置文件, 位置位于
/etc/samba/smb.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
[global] workgroup = ENFW dns proxy = no log file = /var/log/samba/%m.log hosts allow = 192.168.6.0/24 max log size = 1000 client min protocol = SMB3 client max protocol = SMB3 server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* pam password change = yes map to guest = Bad Password usershare allow guests = yes name resolve order = lmhosts bcast host wins security = user guest account = nobody usershare path = /var/lib/samba/usershare usershare max shares = 100 usershare owner only = yes force create mode = 0070 force directory mode = 0070 [homes] comment = Home Directories browseable = yes read only = no create mask = 0765 directory mask = 0765 valid users = %S [printers] comment = All Printers browseable = yes path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no [storage] comment = ENFW-D1IN Storage Files path = /storage guest ok = no browseable = yes read only = no create mask = 0765 directory mask = 0765 |
- 添加用户,服务并启动服务
1 2 3 4 |
sudo smbpasswd -a <username> sudo systemctl enable smb nmb sudo systemctl start smb nmb |
- 如有需要,注意设置系统防火墙
3. 目录浏览
该方式只读,安全性取决于 https 设置,效率上限取决于服务器性能。
Windows,IIS
按照 GUI 引导新建网站,最后开启目录浏览。
Linux,安装 Nginx
等,对于 manjaro
:
1 2 3 4 |
sudo pacman -S nginx-mainline # 或者 sudo pacman -S nginx |
编辑 /etc/nginx/nginx.conf
:
为对应服务器选项(location
或 server
)添加 autoindex on;
项。
重新加载 nginx 配置:
1 2 |
sudo systemctl restart nginx |
4. windows 体验优化
- 执行
webdav.reg
脚本,使得 windows 允许建立在http
上的webdav
并将复制上限从50MB
调整到FFFFFFFFH
。 - 在
计算机/我的电脑
中,点击映射网络驱动器 - 对于
webdav
,文件夹设置https|http://domain/folder
;对于samba
,文件夹设置\\domain\folder
。 登录时重新连接
选否,若有密码。
webdav.reg
脚本如下:
1 2 3 4 5 6 |
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters] "FileSizeLimitInBytes" = dword:FFFFFFFF "BasicAuthLevel" = dword:00000002 |