将 Storage Server 挂载为网络驱动器:Linux 与 Windows
像使用本地硬盘一样使用您的 Storage Server,并且全程加密:在 Linux 下挂载为目录 /storage,在 Windows 下映射为网络驱动器 storage。另附永久挂载方法和常见错误提示的排查。
您的 Storage Server 可以像本地硬盘一样挂载到您的服务器上。挂载之后,它在 Linux 下显示为目录 /storage,在 Windows 下显示为名为 storage 的网络驱动器。这样,程序、脚本和备份工具直接写入这个路径即可,您不必再手动来回复制文件。
本教程分步介绍所有方式,并且每种方式都全程加密,因为数据要经由互联网传输:在 Linux 下使用启用 SMB 3 加密的 SMB(也称 CIFS 或 Samba)或 SSHFS,在 Windows 下通过 SFTP 使用 SSHFS-Win。此外还会讲解如何让挂载在重启后自动恢复,以及实践中最常见的错误提示。文中的 Linux 命令适用于 Debian 12 和 13、Ubuntu 22.04 和 24.04,以及 AlmaLinux 和 Rocky Linux 9;Windows 步骤适用于 Windows 10 和 11,以及 Windows Server 2016 至 2025。
在客户中心打开您的 Storage Server,即可在“挂载为网络驱动器”卡片中找到最重要的命令,其中已预先填好您的主机名和用户名。
开始之前:登录凭据与访问设置
所需信息都可以在客户中心找到:打开您的 Storage Server,在“连接信息”部分即可看到主机名、用户名和密码。如果那里没有显示密码,请点击“重置密码”生成一个新密码。但请注意,这会断开所有现有连接,之前已挂载存储的服务器随后都需要改用新密码。
在同一页面上,点击“访问设置”按钮即可看到各项访问方式的开关。本教程会用到其中三个:
- Samba / CIFS 用于通过 SMB 连接的网络驱动器(445 端口)。
- SSH / SFTP / SCP / rsync 用于 Linux 下的 SSHFS 和 Windows 下的 SSHFS-Win(23 端口)。
- 外部可访问性必须开启,因为您的服务器要通过互联网访问存储。
新订购的 Storage Server 已默认开启这三个开关。本文的示例使用下列值,请将它们替换为您自己的值:
| 项目 | 示例值 |
|---|---|
| 主机名 | u123456.storage.kernelhost.net |
| 用户名 | u123456 |
| 共享(SMB) | backup |
| SMB 端口 | 445 |
| SSH、SFTP、rsync 端口 | 23 |
每台 Storage Server 的共享名都是 backup,因此完整路径在 Windows 下为 \\u123456.storage.kernelhost.net\backup,在 Linux 下为 //u123456.storage.kernelhost.net/backup。
首先检查您的服务器能否连接到 Storage Server:SSHFS 和 SSHFS-Win 需要 23 端口,SMB 需要 445 端口。在 Linux 下:
timeout 5 bash -c '</dev/tcp/u123456.storage.kernelhost.net/23' && echo "23 端口可达"
timeout 5 bash -c '</dev/tcp/u123456.storage.kernelhost.net/445' && echo "445 端口可达"
在 Windows 下使用 PowerShell:
Test-NetConnection u123456.storage.kernelhost.net -Port 23
如果输出中显示 TcpTestSucceeded : True,说明连接畅通。如果无法建立连接,请检查对应的开关(23 端口对应“SSH / SFTP / SCP / rsync”,445 端口对应“Samba / CIFS”)和“外部可访问性”,并检查您的服务器上是否有过滤出站连接的防火墙。如果 445 端口一直被封锁,在 Linux 下可以改用下文介绍的 SSHFS。
Linux:通过 SMB 将存储挂载到 /storage
第 1 步:安装 cifs-utils
SMB 客户端由软件包 cifs-utils 提供。在 Debian 和 Ubuntu 上:
apt-get update
apt-get install -y cifs-utils
在 AlmaLinux、Rocky Linux 和 RHEL 上:
dnf install -y cifs-utils
第 2 步:创建挂载点和凭据文件
创建存储要挂载到的目录,以及一个用于存放凭据的文件:
mkdir -p /storage
nano /etc/storage-credentials
文件内容如下:
username=u123456
password=YOUR_PASSWORD
然后设置为只有 root 才能读取该文件:
chmod 600 /etc/storage-credentials
为什么要单独使用一个文件:这样一来,密码既不会出现在所有用户都能读取的 /etc/fstab 中,也不会留在命令历史里。密码中含有特殊字符也没有问题,在这个文件里无需加引号。
第 3 步:先手动挂载一次并测试
mount -t cifs //u123456.storage.kernelhost.net/backup /storage -o credentials=/etc/storage-credentials,seal,iocharset=utf8,uid=0,gid=0,file_mode=0660,dir_mode=0770
各选项的作用如下:
seal使用 SMB 3 加密连接。由于数据经由互联网传输,请务必保留这个选项。iocharset=utf8可以避免文件名中的中文和特殊字符出现乱码。uid和gid决定文件归哪个本地用户所有。例如需要让 Web 服务器写入时,请使用uid=www-data,gid=www-data。file_mode和dir_mode决定 Linux 为文件和文件夹显示的权限。Storage Server 上并不保存 Linux 权限,这些值只在您的服务器上生效。
用以下命令检查是否一切正常:
df -h /storage
touch /storage/testfile && ls -l /storage && rm /storage/testfile
现在 df 显示的是您的 Storage Server 的容量,而不是本地硬盘的容量。
第 4 步:通过 /etc/fstab 永久挂载
为了让存储在每次重启后自动重新挂载,需要把它写入 /etc/fstab。在此之前,先卸载测试时的挂载:
umount /storage
nano /etc/fstab
在文件末尾添加下面这一行(整条内容必须写在同一行中):
//u123456.storage.kernelhost.net/backup /storage cifs credentials=/etc/storage-credentials,seal,iocharset=utf8,uid=0,gid=0,file_mode=0660,dir_mode=0770,_netdev,nofail,x-systemd.automount 0 0
行尾的三个附加选项很重要:
_netdev告诉系统这是一个网络驱动器,必须等网络就绪后才能挂载。nofail可以确保即使存储暂时无法访问,您的服务器也不会在启动时卡住。x-systemd.automount会在首次访问/storage时才挂载存储,并在连接中断后自动重新挂载。
重新加载配置并挂载:
systemctl daemon-reload
mount -a
ls /storage
如果 mount -a 没有报错,说明这一行写得正确。之后您可以放心地测试重启:得益于 nofail,即使哪里配置有误,服务器也能正常启动。
Linux 替代方案:通过 23 端口使用 SSHFS
SSHFS 通过 SSH 挂载存储。如果您那里的 445 端口被封锁,或者您更愿意使用 SSH 密钥而不是密码,这种方式就很合适。连接始终是加密的。请在 /storage 上只配置 SMB 或 SSHFS 其中一种,不要同时使用两者。
在 Debian 和 Ubuntu 上安装 SSHFS:
apt-get install -y sshfs
在 AlmaLinux 和 Rocky Linux 上,该软件包位于 EPEL 软件源中:
dnf install -y epel-release
dnf install -y fuse-sshfs
生成一个专用密钥,并将其添加到 Storage Server 上:
ssh-keygen -t ed25519 -f /root/.ssh/storage_ed25519 -N ""
cat /root/.ssh/storage_ed25519.pub | ssh -p 23 u123456@u123456.storage.kernelhost.net install-ssh-key
首次连接时,请输入 yes 确认 Storage Server 的主机指纹,并输入一次密码。install-ssh-key 命令会添加这个密钥,而不会覆盖已有的密钥。此后,您的服务器无需密码即可登录。
手动挂载:
mkdir -p /storage
sshfs -p 23 -o IdentityFile=/root/.ssh/storage_ed25519,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 u123456@u123456.storage.kernelhost.net: /storage
主机名后面的冒号代表您在 Storage Server 上的主目录,也就是您通过 SMB 共享看到的同一批文件。如需永久挂载,请将下面这一行写入 /etc/fstab:
u123456@u123456.storage.kernelhost.net: /storage fuse.sshfs port=23,IdentityFile=/root/.ssh/storage_ed25519,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,allow_other,_netdev,nofail,x-systemd.automount 0 0
allow_other 允许 root 以外的用户访问,例如 Web 服务器。reconnect 和两个 ServerAlive 参数可以在网络短暂波动时保持连接稳定。之后和上文一样,执行 systemctl daemon-reload 和 mount -a。
Windows:以加密方式将存储映射为名为“storage”的网络驱动器
Windows 默认通过 SMB 映射网络驱动器。但只有当某一方明确要求加密时,这种连接才会被加密,而在 Windows 下您无法依赖这一点。为了防止任何人在数据经由互联网传输的途中读取您的数据,请在 Windows 下通过 SFTP(也就是通过 SSH)连接存储。为此您需要两款免费的开源程序:WinFsp 负责提供文件系统,SSHFS-Win 则把 SFTP 以网络驱动器的形式带入文件资源管理器。
第 1 步:安装 WinFsp 和 SSHFS-Win
通过“以管理员身份运行”打开 PowerShell,然后粘贴以下命令。这些命令会从 GitHub 下载两个安装包,并在不进行任何询问的情况下完成安装:
[Net.ServicePointManager]::SecurityProtocol = 'Tls12'
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/winfsp/winfsp/releases/download/v2.1/winfsp-2.1.25156.msi -OutFile "$env:TEMP\winfsp.msi" -UseBasicParsing
Invoke-WebRequest https://github.com/winfsp/sshfs-win/releases/download/v3.5.20357/sshfs-win-3.5.20357-x64.msi -OutFile "$env:TEMP\sshfs-win.msi" -UseBasicParsing
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$env:TEMP\winfsp.msi`" /qn /norestart"
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$env:TEMP\sshfs-win.msi`" /qn /norestart"
如果您的计算机上已有 winget(例如在 Windows 11 中),也可以只执行 winget install -e --id SSHFS-Win.SSHFS-Win。WinFsp 会随之自动安装。
第 2 步:在文件资源管理器中映射驱动器
- 打开文件资源管理器,在左侧选择“此电脑”。
- 选择“映射网络驱动器”。在 Windows 11 和 Windows Server 2025 中,这一项藏在三个点按钮的菜单里;在 Windows 10 和 Windows Server 2016 至 2022 中,则位于“计算机”选项卡下。
- “驱动器”选择
S:,“文件夹”填写\\sshfs\u123456@u123456.storage.kernelhost.net!23。末尾的!23表示端口;如果省略,SSHFS-Win 会尝试连接 22 端口。 - 保持勾选“登录时重新连接”,然后单击“完成”。
- 在弹出的凭据窗口中输入您的密码,并勾选“记住我的凭据”。
- 该驱动器起初会以一个技术性名称显示。右键单击它,选择“重命名”,然后输入
storage。
此后,存储会以驱动器 storage 的形式出现在“此电脑”中,并在每次登录时自动以加密方式连接。
通过 PowerShell
用一条命令会更快。请在普通的 PowerShell 窗口中执行,不要在通过“以管理员身份运行”打开的窗口中执行,因为在提升权限的会话中映射的驱动器,文件资源管理器是看不到的。执行时 Windows 会提示您输入密码:
net use S: \\sshfs\u123456@u123456.storage.kernelhost.net!23 * /user:u123456 /persistent:yes
然后按如下方式设置驱动器名称 storage:
(New-Object -ComObject Shell.Application).NameSpace('S:').Self.Name = 'storage'
net use 会记住这个驱动器,但不会记住密码。因此,重启之后第一次打开该驱动器时,Windows 会再次询问密码。如果您在这个窗口中勾选“记住我的凭据”,之后 Windows 就会直接连接该驱动器,不再询问。cmdkey 在这里不起作用,因为 SSHFS-Win 只接受在它自己的凭据窗口中输入的凭据。
驱动器是否通过 SSHFS-Win 连接,可以用 net use 查看:S: 这一行的“网络”一栏显示为 WinFsp.Np。这种连接始终经由 SSH,因此是加密的。
Windows 下使用 SMB 必须强制加密
从 Windows 11 24H2 和 Windows Server 2025 起,Windows 可以要求所有出站 SMB 连接都必须加密。只有这样,通过共享 backup 连接的传统方式才是安全的。请在具有管理员权限的 PowerShell 中启用加密:
Set-SmbClientConfiguration -RequireEncryption $true -Confirm:$false
这项设置对这台计算机的所有 SMB 连接都生效。如果您的服务器还连接着其他不支持加密的旧共享,之后将无法再访问它们。然后在普通窗口中映射驱动器,并检查输出中是否显示 Encrypted : True:
Test-NetConnection u123456.storage.kernelhost.net -Port 445
cmdkey /add:u123456.storage.kernelhost.net /user:u123456 /pass
net use S: \\u123456.storage.kernelhost.net\backup /persistent:yes
Get-SmbConnection -ServerName u123456.storage.kernelhost.net | Format-List ServerName,ShareName,Dialect,Encrypted
这种方式用于替代 SSHFS-Win。如果 S: 已通过 SSHFS-Win 连接,请先用 net use S: /delete 断开。在较旧的 Windows 版本上无法强制加密。请在这些版本上按上文所述使用 SSHFS-Win。
在服务和计划任务中使用
驱动器号只在映射它的那个用户的登录会话中有效。因此,服务、计划任务和许多备份程序都看不到 S:。对于自动备份,最好使用本身支持 SFTP 的程序,例如 rclone 或 restic,并填写主机 u123456.storage.kernelhost.net、端口 23 和您的用户名。
常见错误及其原因
| 提示信息 | 原因 | 解决方法 |
|---|---|---|
mount error(13): Permission denied | 用户名或密码错误,或者“Samba / CIFS”未开启 | 检查凭据文件和开关;重置密码后需相应更新该文件 |
mount error(115): Operation now in progress | 445 端口无法访问,或者“外部可访问性”未开启 | 执行上文的端口测试,检查开关,或改用 SSHFS |
mount error(112): Host is down | 客户端与 Storage Server 无法协商出共同的 SMB 版本 | 在挂载选项中加入 vers=3.0 |
mount error(2): No such file or directory | 共享名错误 | 共享名始终是 backup |
bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program. | 缺少软件包 cifs-utils | 按上文所述安装该软件包 |
| 传输 4 GB 及以上的文件时中断 | SMB 客户端的缓存 | 在挂载选项中加入 cache=none |
| Windows:找不到网络路径或网络名(系统错误 53 或 67) | 缺少 WinFsp 或 SSHFS-Win,路径错误,或者端口被封锁 | 重新安装,检查路径 \\sshfs\u123456@u123456.storage.kernelhost.net!23,执行 Test-NetConnection |
| Windows 反复要求输入密码 | 密码错误,或者“SSH / SFTP / SCP / rsync”或“外部可访问性”未开启 | 在“连接信息”中核对密码,在访问设置中开启相应开关 |
| Windows(SMB):发生系统错误 86 或 1326 | 用户名或密码错误 | 用 cmdkey /delete:u123456.storage.kernelhost.net 删除后重新添加 |
| Windows(SMB):发生系统错误 1219 | 已经存在一个使用其他凭据建立的连接 | 执行 net use \\u123456.storage.kernelhost.net\backup /delete,然后重新连接 |
要断开连接,在 Linux 下执行 umount /storage 即可,在 Windows 下执行 net use S: /delete。SSHFS-Win 已保存的凭据可以在 Windows 凭据管理器的“普通凭据”下删除,SMB 的凭据则用 cmdkey /delete:u123456.storage.kernelhost.net 删除。
网络驱动器还是备份工具?
如果程序需要直接写入某个文件夹,例如用于上传、导出或归档,挂载的驱动器是理想之选。至于定期备份,通过 23 端口经 SSH 运行的 rsync、BorgBackup 或 restic 等工具往往更加稳健:它们只传输发生变化的部分,可以从中断处继续,还能按需在您的服务器上就先完成加密。如何搭建这样的方案,请参阅我们关于服务器备份策略的文章;定时执行则可以参考设置 cron 任务的教程。
提示:如果您在访问设置中开启“ZFS 快照目录”,Storage Server 的快照就会以只读目录 .zfs/snapshot 的形式出现。这样,只需把单个文件复制出来即可完成恢复,而不必回滚整个快照。
安全要点
- 在 Linux 下始终使用
seal挂载,或者改用 SSHFS,在 Windows 下使用 SSHFS-Win,确保数据以加密方式传输。在 Windows 下,只有在 Windows 11 24H2 或 Windows Server 2025 及更高版本中强制加密时,才使用传统的 SMB。 - 凭据文件
/etc/storage-credentials归 root 所有,权限为600。 - 在访问设置中关闭您用不到的功能。如果只使用 SSHFS 和 SSHFS-Win,可以让“Samba / CIFS”保持关闭。
- 如上文所示,为 SSHFS 使用一个仅用于 Storage Server 的专用密钥。如何从整体上加固 SSH,请参阅加固 SSH 并设置密钥登录一文。
常见问题
我的 Storage Server 的共享名是什么?
Storage Server 需要哪些端口?
与 Storage Server 之间的连接是加密的吗?
为什么重启之后驱动器不见了?
net use 已经成功,为什么文件资源管理器里看不到驱动器?
可以在多台服务器上同时挂载同一个 Storage Server 吗?
2026 KernelHost GmbH。保留所有权利。本教程受著作权法保护,未经我们书面同意,不得在其他网站上转载,节选转载或改写后转载同样不被允许。欢迎在注明出处并附上链接的前提下引用。

