Skip to main content

远程磁盘挂载

为了更方便地使用 Windows 文件管理器 管理远程服务器,我们可以使用 Windows 远程磁盘挂载的方法。

下面按照 被挂载端 的系统种类分为 WindowsLinux,目标是把 被挂载端 的某个目录挂载到 Windows 的根目录下,作为一个磁盘 或者网络磁盘。

最终实现的效果如下

image-20250305121433774

Windows 服务器远程挂载

windows 服务器远程挂载有两种方法,


方法一:SMB 共享文件夹

SMB 协议共享文件夹需要 共享者和 接受者 在同一局域网内。

下面以 在主机上共享 D 盘 为例:

  1. 提供 D 盘的电脑 上(假设 IP 地址为 192.168.1.100),右键点击 D: 盘,选择 属性

  2. 进入 共享 选项卡,点击 高级共享

  3. 勾选 共享此文件夹,在 共享名 中输入 DDrive(你可以改成其他名称)。

  4. 点击 权限,添加 Everyone 并给予 读取和写入 权限(如果需要)。

  5. 确保 安全性 选项卡下 Everyone 也有合适的访问权限。

  6. 点击 确定,保存设置。


然后需要启用 SMB 服务

  1. 打开 PowerShell(管理员模式)

    Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

    如果 SMB 关闭,可以启用 SMB2

    Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force

    然后重启 SMB 服务:

    Restart-Service -Name lanmanserver
  2. 确保 ServerWorkstation 服务正在运行

    Get-Service -Name LanmanServer, LanmanWorkstation

    如果未运行,启动它们:

    Start-Service -Name LanmanServer
    Start-Service -Name LanmanWorkstation
  3. 然后允许 SMB 端口(445)通过防火墙

    New-NetFirewallRule -DisplayName "Allow SMB" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow

然后就可以在另一台电脑上挂载 D 盘了:

  1. 另一台 Windows 电脑 上,打开 文件资源管理器 (Win + E)。

  2. 在左侧导航栏,右键点击 "此电脑",选择 "映射网络驱动器"

  3. 在弹出的窗口中:

    • 驱动器号(例如 Z:)。
    • 文件夹路径 (例如:\\192.168.1.100\DDrive
    • 勾选 “登录时重新连接”(这样重启后仍然保持挂载)。
    • 如果需要凭据,勾选 “使用其他凭据连接”
  4. 点击完成,如果需要,输入共享电脑上的用户名和密码。

  5. 现在 DDrive 应该会以 Z: 盘的形式出现在 此电脑 中。


Take care

有时候连接断开时会出现这个错误

image-20250305121310124

这是因为,你已经挂载了该网络共享,但可能连接不稳定或凭据有问题。

Windows 设备缓存了错误的网络驱动器信息,导致新的连接冲突

方法一:右键这个磁盘,选择 断开连接,然后再重新连接就好了

方法二:直接重启 Windows 文件管理器


至此我们已经完成了磁盘的远程挂载

但是SMB磁盘挂载存在一个问题,就是 只能在局域网内使用

这是因为 Windows 只允许SMB监听 445 端口,然而经过 FRP转发后,端口很可能不是 445

因此无法通过 FRP 实现 在局域网外挂载磁盘,因此就有了方法二


方法二:SSHFS 文件共享

sshfs 是通过 ssh 协议模拟的方式,实现将远程服务器上的硬盘挂载到本地。

也就是说,只要你的服务器支持 ssh连接,你就可以将服务器的硬盘挂载到本地。

在服务器上安装这两个软件:

  1. sshfs-winReleases · winfsp/sshfs-win

  2. winfspReleases · winfsp/winfsp

然后在本地安装 SSHFS-Win ManagerReleases · evsar3/sshfs-win-manager

SSHFS-Win Manager 是用来给挂载磁盘添加图形化界面的

安装好上述3个软件后,打开 GUI 界面如下,点击 Add Connection

image-20250305122818524

依次填写每一项内容:

  • NAME:给远程服务器取个名字
  • Connection:远程服务器配置,如IP、端口、远程用户名、验证方式(这里已经使用 FRP 转发过了)
  • Remote:远程目录配置,挂载后将成为本地对应盘符的根目录
  • Local:本地盘符设置(注意不要与现有盘符冲突)
  • 示例如下: image-20250305123046616

保存后,在主界面中点击连接按钮,即可将远程目录挂在到本地:

image-20250305123312080

此时远程目录已经出现在了本地资源管理器中,未出现可刷新一下,

或直接点击GUI主界面连接按钮左边的打开文件夹按钮即可进入目录。

如果失败了请参见这篇文章中的更多方法:Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录-CSDN博客

Linux 服务器远程挂载

Linux 下的磁盘挂载要简单的多,也是使用 SSHFS 的方式

这里使用 Ubuntu 24 为例,能够挂载的前提是 能够访问Linux 服务器的 IP 地址。这意味这你的 Linux 服务器 需要具有一个 公网IP 地址,或者和 Windows 挂载端处于一个局域网或虚拟局域网内,从而可以使用内网 IP 地址互相访问。

这里挂载的 Linux 系统是 WSL 虚拟机,它和 宿主机之间通过 WSL 虚拟局域网进行通信。

在 WSL Ubuntu 终端中执行:

sudo apt update
sudo apt install openssh-server
sudo service ssh start

确保 SSH 默认监听端口 22。

你可以设置密码或用密钥登录,也可以设置 /etc/ssh/sshd_config 来允许密码登录。


然后,需要 在 Windows 上安装 SSHFS-Win,下方是安装链接

安装完成后会自动注册一个文件系统驱动。


接下来 查看 Ubuntu 的 IP 地址

ip addr

输出中应该有:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:45:40:e6 brd ff:ff:ff:ff:ff:ff
inet 172.27.50.28/20 brd 172.27.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe45:40e6/64 scope link
valid_lft forever preferred_lft forever

其中 172.27.50.28 就是 Ubuntu 的IP地址


然后回到 Windows系统,按下 Win + E 打开资源管理器,右键 “此电脑”,选择 “映射网络驱动器”。

  • 驱动器号随便选(如 Z:)

  • 文件夹输入:(我的账号名是 heihe

    \\sshfs\heihe@172.27.50.28

    点击“完成”,输入你的密码。

    如果你没有设置密码,可以先在 WSL 中设置一个:

    sudo passwd heihe
    

image-20250311213158226

这样一来就成功挂载了

image-20250311221523144

Mac 远程挂载

如何把 Ubuntu 服务器远程挂载到 Mac 上呢?

本机是 macOS(ARM 架构),可以用 rclone 将远程 Ubuntu 的目录挂载到本地 /Users/heihe/Desktop/Notes


因为 macOS 不支持 FUSE 文件系统挂载,而 rclone mount 依赖于 macOS 的 macFUSE 内核扩展。

所以首先要安装 macFUSE(用最新 release 安装 .dmg

在这个过程中会出现弹窗报错:

The system extension required for mounting macFUSE volumes could not be loaded.
Please open the Privacy & Security System Settings and allow loading system software from developer "Benjamin Fleischer". A restart might be required before the system extension can be loaded.
Then try mounting the volume again.

这是 macOS 的安全机制阻止了 macFUSE 内核扩展的加载,也就是你虽然安装了 macFUSE,但系统还没“批准”它运行。

因此要打开 系统设置(System Settings) > 隐私与安全(Privacy & Security)

滚动到最下方,你会看到:

"系统软件已被阻止载入" System software from developer “Benjamin Fleischer” was blocked.

点击右边的 “允许”(Allow)。系统会提示你 必须重启电脑 以使内核扩展生效。

这个“Benjamin Fleischer”就是 macFUSE 的开发者。

然后重启,不然扩展不会加载。

danger

补充:M 系列芯片(Apple Silicon)特殊注意

如果你是 M1/M2/M3 的 Mac,你可能找不到 系统软件已被阻止载入 的提示 ,需要你先:

  1. 关机后按住电源键直到看到“启动选项”,进入恢复模式
  2. 进入 “启动安全性实用工具”
  3. 将安全策略设置为允许从已验证开发者加载系统扩展(允许降级安全性)

接下来安装 rclone

前往 官网,下载对应你的架构的版本 macOS ARM64 zip版本,在解压后的文件夹中找到名为 rclone 的文件(无后缀)。

rclone 放到 /usr/local/bin/$HOME/bin/

sudo mv rclone /usr/local/bin/
chmod +x /usr/local/bin/rclone

验证是否成功:

rclone version

配置挂载:(所有挂载方式由 rclone 统一管理)

rclone config

然后依次操作:

  1. 输入 n 创建新的 remote,例如命名为 UbuntuServer
  2. 选择 50(SFTP协议)
  3. 设置参数:
    • host: proxy.heihet09.com
    • user: heihe
    • port: (默认回车为22,或自定义)
    • 是否使用密码或私钥认证?你可以选择:
      • 输入密码
      • 或者输入私钥路径,例如 ~/.ssh/id_rsa
  4. 其他设置默认回车即可(也可以根据需要调整)

配置完毕后,输入 q 退出。

挂载远程目录到本地 /Users/heihe/Desktop/Notes

mkdir -p ~/Desktop/Notes
rclone mount Notes:/home/heihe/Projects/Notes/my-docs/docs ~/Desktop/Notes --vfs-cache-mode writes
  • ``UbuntuServer: 是你配置的 remote 名
  • --vfs-cache-mode writes 可以避免文件写入锁问题,兼容 Typora
  • 这个本地文件夹必须要是空的!

挂载成功后如图

image-20250806230559363

你可以直接像本地文件一样打开,所有更改实时同步到远程服务器

image-20250806230642491


danger

在执行 rclone mount 命令的时候,可能会出现报错

2025/08/03 16:17:17 CRITICAL: Fatal error: failed to mount FUSE fs: rclone mount is not supported on MacOS when rclone is installed via Homebrew. Please install the rclone binaries available at https://rclone.org/downloads/ instead if you want to use the rclone mount command

这说明 MacFUSE 没有安装好

danger

在执行 rclone mount 命令的时候,可能会出现报错

mount_macfuse: failed to mount /Users/heihe/Desktop/Notes@/dev/macfuse1: Resource busy
fuse: mount failed with error: 16

这意味着你要挂载的目标路径 /Users/heihe/Desktop/Notes 已经被占用或被锁定,无法再挂载新的文件系统上去。

需要卸载当前挂载点

sudo umount -f ~/Desktop/Notes

或者直接清空并重新创建挂载点目录(适用于死锁)

rm -rf ~/Desktop/Notes
mkdir -p ~/Desktop/Notes

然后再挂载。


但是要注意,当前运行 rclone mount 的窗口一旦关闭,这个挂载就会停止。

因此我们需要添加后台进程,并且设置登录自启动。需要用到工具 screen

创建脚本 ~/scripts/mount_notes.sh

#!/bin/bash

# 1. 定义 screen 会话名
SESSION="rclone_notes"

# 2. 检查 screen 会话是否已存在
if screen -list | grep -q "$SESSION"; then
    echo "Rclone mount screen session already running"
    exit 0
fi

# 3. 确保本地目录存在
mkdir -p ~/Desktop/Notes

# 4. 在 screen 中启动 rclone 挂载(后台运行)
/usr/bin/screen -dmS $SESSION /usr/local/bin/rclone mount Notes:/home/heihe/Projects/Notes/my-docs/docs ~/Desktop/Notes --vfs-cache-mode writes --dir-cache-time 5s

添加权限

chmod +x ~/scripts/mount_notes.sh

手动运行 ~/scripts/mount_notes.sh 来验证挂载是否成功

后续只用把这个脚本在 系统设置中添加到启动项就好了

image-20250806234718988

danger

BUG的修复方法:

在系统自动更新后,还是会出现 "System Extension Blocked" 的报错,

The system extension required formounting macFUSE volumes couldnot be loaded.
Please open the Privacy & SecuritySystem Settings and allow loadingsystem software from developer "Benjamin Fleischer". A restart might berequired before the system extensioncan be loaded.

即使这个时候我们已经还开机的恢复设置里开启了允许第三方插件,并且在隐私设置中设置了: f7cfa20c5dd0cd7c9803d2834433a985去œ

出现这个问题时,需要按照下面的步骤重装 MacFUSE:

  1. 进入"系统设置" - 划到最下面找到 “macFUSE” - Remove FUSE 删除 FUSE

  2. 进入“系统设置” - “隐私与安全性” 会看到允许 Apple Inc 的需要更新 - 允许后重启

    7fdf25fd969b2232a48888381f836e61

  3. 来到 Macfuse 官网 https://macfuse.github.io/, 下载稳定版 4.10.2 ,安装,此后会显示

    image-20250826123543366

  4. 进入“系统设置” - “隐私与安全性” 会看到允许 Macfuse 的需要更新 - 允许后重启

重启之后就可以正常使用了


测试命令:

rclone mount Notes:/home/heihe/Projects/Notes/my-docs/docs ~/Desktop/Notes --vfs-cache-mode writes