Skip to content

网络存储

网络存储功能可以将服务器上的指定目录通过 WebDAV 或 SFTP 协议对外提供访问,方便远程管理文件。NetPanel 内置了轻量级的 WebDAV 和 SFTP 服务,无需额外安装软件即可使用。

技术原理

协议对比

协议全称传输层加密适用场景
WebDAVWeb Distributed Authoring and VersioningHTTP/HTTPS可选(HTTPS)跨平台文件访问,浏览器/系统原生支持
SFTPSSH File Transfer ProtocolSSH强制加密安全文件传输,命令行/专业工具
SMBServer Message BlockTCP 445可选Windows 局域网共享(NetPanel 暂不支持)
NFSNetwork File SystemTCP/UDP可选Linux 高性能网络文件系统(NetPanel 暂不支持)

WebDAV 工作原理

WebDAV 是 HTTP 协议的扩展,在标准 GET/POST 基础上增加了文件操作方法:

客户端                          WebDAV 服务器(NetPanel)
  │                                      │
  │  PROPFIND /files/  (列出目录)         │
  │─────────────────────────────────────>│
  │  207 Multi-Status (目录内容)          │
  │<─────────────────────────────────────│
  │                                      │
  │  GET /files/doc.pdf  (下载文件)       │
  │─────────────────────────────────────>│
  │  200 OK + 文件内容                    │
  │<─────────────────────────────────────│
  │                                      │
  │  PUT /files/new.txt  (上传文件)       │
  │─────────────────────────────────────>│
  │  201 Created                         │
  │<─────────────────────────────────────│

WebDAV 扩展方法:

方法说明
PROPFIND获取文件/目录属性(列目录)
MKCOL创建目录
COPY复制文件/目录
MOVE移动/重命名文件/目录
DELETE删除文件/目录
LOCK/UNLOCK文件锁定(防止并发写入冲突)

SFTP 工作原理

SFTP 基于 SSH 协议,所有数据均经过加密传输:

客户端(FileZilla/WinSCP)          SFTP 服务器(NetPanel)
         │                                   │
         │  SSH 握手 + 身份验证               │
         │──────────────────────────────────>│
         │  建立加密通道                      │
         │<──────────────────────────────────│
         │                                   │
         │  文件操作请求(加密)               │
         │──────────────────────────────────>│
         │  响应(加密)                      │
         │<──────────────────────────────────│

功能概述

  • 通过 WebDAV 协议提供文件访问(支持 Windows 资源管理器、macOS Finder 直接挂载)
  • 通过 SFTP 协议提供加密文件访问(支持 FileZilla、WinSCP、命令行等工具)
  • 支持用户名/密码认证
  • 支持只读或读写模式
  • 支持多个存储实例,不同目录使用不同端口和权限

配置说明

进入 网络存储 页面,点击 新建 按钮:

字段类型必填默认值说明
名称字符串存储实例名称
启用布尔true是否启用
协议枚举WebDAVWebDAVSFTP
根目录字符串对外暴露的本地目录路径
监听端口整数服务监听端口
用户名字符串访问用户名
密码字符串访问密码(建议使用强密码)
只读模式布尔false是否只允许读取,禁止写入/删除

配置示例

示例 1:WebDAV 文件共享

/home/user/files 目录通过 WebDAV 共享:

字段
名称文件共享
协议WebDAV
根目录/home/user/files
监听端口8081
用户名admin
密码your-strong-password
只读模式false

示例 2:SFTP 安全传输

/data/backup 目录通过 SFTP 提供只读访问:

字段
名称备份只读访问
协议SFTP
根目录/data/backup
监听端口2222
用户名backup-reader
密码your-strong-password
只读模式true

示例 3:多目录分权限管理

为不同目录创建不同的存储实例,实现权限隔离:

实例协议目录端口只读
照片共享WebDAV/home/photos8082
文档协作WebDAV/home/docs8083
系统备份SFTP/data/backup2223

客户端连接方式

WebDAV 客户端

Windows 资源管理器(原生支持)

方法一:映射网络驱动器

  1. 打开"此电脑",点击顶部"映射网络驱动器"
  2. 驱动器号选择任意字母(如 Z:
  3. 文件夹填写:http://服务器IP:8081
  4. 勾选"使用其他凭据连接"
  5. 输入用户名和密码,点击完成

方法二:直接在地址栏输入

  1. 打开资源管理器
  2. 地址栏输入:\\服务器IP@8081\DavWWWRoot
  3. 输入用户名和密码

Windows WebDAV HTTPS 要求

Windows 10/11 默认要求 WebDAV 使用 HTTPS。如果使用 HTTP,需要修改注册表:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
BasicAuthLevel = 2(允许 HTTP 基本认证)

或者通过 Caddy 反向代理 为 WebDAV 添加 HTTPS 支持。

macOS Finder(原生支持)

  1. 菜单栏 → 前往连接服务器(快捷键 ⌘K
  2. 服务器地址输入:http://服务器IP:8081(HTTPS 则用 https://
  3. 点击"连接",输入用户名和密码
  4. 选择挂载点,即可在 Finder 中访问

Linux 命令行挂载

bash
# 安装 davfs2
sudo apt install davfs2          # Debian/Ubuntu
sudo yum install davfs2          # CentOS/RHEL

# 创建挂载点
sudo mkdir -p /mnt/webdav

# 挂载(会提示输入用户名和密码)
sudo mount -t davfs http://服务器IP:8081 /mnt/webdav

# 自动挂载(写入 /etc/fstab)
# 先将凭据写入 /etc/davfs2/secrets
echo "http://服务器IP:8081 用户名 密码" | sudo tee -a /etc/davfs2/secrets
sudo chmod 600 /etc/davfs2/secrets

# 在 /etc/fstab 中添加
http://服务器IP:8081  /mnt/webdav  davfs  defaults,_netdev  0  0

跨平台客户端推荐

客户端平台特点
CyberduckWindows/macOS免费,支持 WebDAV/SFTP/S3
RaiDriveWindows将 WebDAV 映射为本地磁盘
Mountain DuckWindows/macOS付费,功能强大
ES 文件浏览器Android支持 WebDAV 访问

SFTP 客户端

FileZilla(推荐,免费)

  1. 下载安装 FileZilla
  2. 打开站点管理器(Ctrl+S
  3. 新建站点,填写:
    • 协议:SFTP - SSH File Transfer Protocol
    • 主机:服务器IP
    • 端口:2222
    • 登录类型:正常
    • 用户:填写用户名
    • 密码:填写密码
  4. 点击"连接"

WinSCP(Windows 推荐)

  1. 下载安装 WinSCP
  2. 新建会话:
    • 文件协议:SFTP
    • 主机名:服务器IP
    • 端口号:2222
    • 用户名/密码:填写配置的凭证
  3. 点击"登录"

命令行 SFTP

bash
# 连接 SFTP
sftp -P 2222 用户名@服务器IP

# 常用命令
ls          # 列出远程目录
lls         # 列出本地目录
get file    # 下载文件
put file    # 上传文件
mkdir dir   # 创建目录
exit        # 退出

# 使用 scp 传输单个文件
scp -P 2222 本地文件 用户名@服务器IP:远程路径
scp -P 2222 用户名@服务器IP:远程文件 本地路径

Linux 挂载 SFTP(sshfs)

bash
# 安装 sshfs
sudo apt install sshfs

# 创建挂载点
mkdir -p ~/remote-files

# 挂载
sshfs -p 2222 用户名@服务器IP:/ ~/remote-files

# 卸载
fusermount -u ~/remote-files

安全最佳实践

安全警告

网络存储服务直接暴露文件系统,安全配置至关重要。请务必遵循以下建议:

安全项建议
密码强度使用至少 12 位包含大小写字母、数字和特殊字符的密码
目录范围只暴露必要的目录,绝不要将根目录 / 作为根目录
只读模式对于只需读取的场景,启用只读模式
访问控制配合 访问控制 限制来源 IP
HTTPS 加密WebDAV 建议通过 Caddy 反向代理 添加 HTTPS
端口选择避免使用默认端口,使用非标准端口减少扫描风险
定期审查定期检查访问日志,发现异常及时处理

常见问题排查

WebDAV 连接失败

问题可能原因解决方案
Windows 无法连接 HTTPWindows 默认禁止 HTTP 基本认证修改注册表或改用 HTTPS
401 未授权用户名或密码错误检查凭据是否正确
403 禁止访问目录权限不足检查 NetPanel 进程对目录的读写权限
连接超时端口未开放检查防火墙是否放行对应端口

SFTP 连接失败

问题可能原因解决方案
连接被拒绝端口未开放或服务未启动检查服务状态和防火墙规则
认证失败用户名或密码错误检查凭据是否正确
权限被拒绝目录权限不足检查目录权限

注意事项

安全建议

  • 使用强密码,避免使用弱密码
  • 建议只暴露必要的目录,不要暴露系统根目录
  • 如果通过公网访问,建议配合 访问控制 限制来源 IP

HTTPS 加密

WebDAV 默认使用 HTTP 传输,数据未加密。如需加密传输,可以通过 Caddy 反向代理 为 WebDAV 添加 HTTPS 支持,然后使用 https:// 地址连接。

与网络唤醒配合使用

可以先通过 网络唤醒 唤醒 NAS 设备,再通过网络存储访问其文件,实现按需访问、节能省电的家庭 NAS 方案。

基于 GPL-3.0 许可证发布