将 Storage Server 挂载为网络驱动器:Linux 与 Windows
像使用本地硬盘一样使用您的 Storage Server:在 Linux 下挂载为目录 /storage,在 Windows 下映射为网络驱动器 storage。另附永久挂载方法和常见错误提示的排查。
您的 Storage Server 可以像本地硬盘一样挂载到您的服务器上。挂载之后,它在 Linux 下显示为目录 /storage,在 Windows 下显示为名为 storage 的网络驱动器。这样,程序、脚本和备份工具直接写入这个路径即可,您不必再手动来回复制文件。
本教程分步介绍两种方式:适用于 Linux 和 Windows 的 SMB(也称 CIFS 或 Samba),以及作为 Linux 加密替代方案的 SSHFS。此外还会讲解如何让挂载在重启后自动恢复,以及实践中最常见的错误提示。文中的 Linux 命令适用于 Debian 12 和 13、Ubuntu 22.04 和 24.04,以及 AlmaLinux 和 Rocky Linux 9;Windows 步骤适用于 Windows 10 和 11,以及 Windows Server 2019 至 2025。
开始之前:登录凭据与访问设置
所需信息都可以在客户中心找到:打开您的 Storage Server,在“连接信息”部分即可看到主机名、用户名和密码。如果那里没有显示密码,请点击“重置密码”生成一个新密码。但请注意,这会断开所有现有连接,之前已挂载存储的服务器随后都需要改用新密码。
在同一页面上,点击“访问设置”按钮即可看到各项访问方式的开关。本教程会用到其中三个:
- Samba / CIFS 用于 Windows 和 Linux 下的网络驱动器(445 端口)。
- SSH / SFTP / SCP / rsync 用于 Linux 下的 SSHFS(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。
首先检查您的服务器能否通过 445 端口连接到 Storage Server。在 Linux 下:
timeout 5 bash -c '</dev/tcp/u123456.storage.kernelhost.net/445' && echo "445 端口可达"
在 Windows 下使用 PowerShell:
Test-NetConnection u123456.storage.kernelhost.net -Port 445
如果输出中显示 TcpTestSucceeded : True,说明连接畅通。如果无法建立连接,请检查“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 11 中,这一项藏在三个点按钮的菜单里;在 Windows Server 中,则位于“计算机”选项卡下。
- “驱动器”选择
S:,“文件夹”填写\\u123456.storage.kernelhost.net\backup。 - 勾选“登录时重新连接”和“使用其他凭据连接”,然后单击“完成”。
- 输入用户名
u123456和您的密码,并勾选“记住我的凭据”。 - 该驱动器起初显示为“backup (\\u123456.storage.kernelhost.net) (S:)”。右键单击它,选择“重命名”,然后输入
storage。
此后,存储会以驱动器 storage 的形式出现在“此电脑”中,并在每次登录时自动连接。
通过 PowerShell 或命令提示符
用两条命令会更快。第一条命令把凭据保存到 Windows 凭据管理器中,执行时会提示您输入密码;第二条命令则永久映射该驱动器:
cmdkey /add:u123456.storage.kernelhost.net /user:u123456 /pass
net use S: \\u123456.storage.kernelhost.net\backup /persistent:yes
驱动器名称 storage 需要在 PowerShell 中设置:
(New-Object -ComObject Shell.Application).NameSpace('S:').Self.Name = 'storage'
重要提示:请在普通窗口中执行这些命令,不要在通过“以管理员身份运行”打开的窗口中执行。在提升权限的会话中映射的驱动器,文件资源管理器是看不到的,即使 net use 提示成功也是如此。
检查并加密连接
Windows 协商使用了哪个 SMB 版本,连接是否已签名或加密,都可以用 PowerShell 查看:
Get-SmbConnection -ServerName u123456.storage.kernelhost.net | Format-List ServerName,ShareName,Dialect,Signed,Encrypted
从 Windows 11 24H2 和 Windows Server 2025 起,您可以强制要求所有出站 SMB 连接都必须加密。此后,Windows 只会连接支持 SMB 3 加密的服务器,而您的 Storage Server 正好支持:
Set-SmbClientConfiguration -RequireEncryption $true -Confirm:$false
这项设置对这台计算机的所有 SMB 连接都生效。如果您的服务器还连接着其他不支持加密的旧共享,之后将无法再访问它们。
在服务和计划任务中使用
驱动器号只在映射它的那个用户的登录会话中有效。因此,服务、计划任务和许多备份程序都看不到 S:。在这些场景中,请使用完整路径 \\u123456.storage.kernelhost.net\backup,并在运行该任务的用户账户中用 cmdkey 保存凭据。
常见错误及其原因
| 提示信息 | 原因 | 解决方法 |
|---|---|---|
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 |
| 发生系统错误 53 | 找不到网络路径,通常是 445 端口被封锁 | 执行 Test-NetConnection,检查开关 |
| 发生系统错误 67 | 找不到网络名 | 路径必须以 \backup 结尾 |
| 发生系统错误 86 或 1326 | 用户名或密码错误 | 用 cmdkey /delete:u123456.storage.kernelhost.net 删除后重新添加 |
| 发生系统错误 1219 | 已经存在一个使用其他凭据建立的连接 | 执行 net use \\u123456.storage.kernelhost.net\backup /delete,然后重新连接 |
要断开连接,在 Linux 下执行 umount /storage 即可,在 Windows 下执行 net use S: /delete。在 Windows 中,已保存的凭据可以用 cmdkey /delete:u123456.storage.kernelhost.net 删除。
网络驱动器还是备份工具?
如果程序需要直接写入某个文件夹,例如用于上传、导出或归档,挂载的驱动器是理想之选。至于定期备份,通过 23 端口经 SSH 运行的 rsync、BorgBackup 或 restic 等工具往往更加稳健:它们只传输发生变化的部分,可以从中断处继续,还能按需在您的服务器上就先完成加密。如何搭建这样的方案,请参阅我们关于服务器备份策略的文章;定时执行则可以参考设置 cron 任务的教程。
提示:如果您在访问设置中开启“ZFS 快照目录”,Storage Server 的快照就会以只读目录 .zfs/snapshot 的形式出现。这样,只需把单个文件复制出来即可完成恢复,而不必回滚整个快照。
安全要点
- 在 Linux 下始终使用
seal挂载,或者改用 SSHFS,确保数据以加密方式传输。 - 凭据文件
/etc/storage-credentials归 root 所有,权限为600。 - 在访问设置中关闭您用不到的功能。如果只使用 SSHFS,可以让“Samba / CIFS”保持关闭。
- 如上文所示,为 SSHFS 使用一个仅用于 Storage Server 的专用密钥。如何从整体上加固 SSH,请参阅加固 SSH 并设置密钥登录一文。
常见问题
我的 Storage Server 的共享名是什么?
Storage Server 需要哪些端口?
与 Storage Server 之间的连接是加密的吗?
为什么重启之后驱动器不见了?
net use 已经成功,为什么文件资源管理器里看不到驱动器?
可以在多台服务器上同时挂载同一个 Storage Server 吗?
2026 KernelHost GmbH。保留所有权利。本教程受著作权法保护,未经我们书面同意,不得在其他网站上转载,节选转载或改写后转载同样不被允许。欢迎在注明出处并附上链接的前提下引用。

