前言

webdav挂载远程在mac上很容易,但是大文件或数量较多后,webdav挂载加载较慢,尝试多个方案后最终选择sshfs挂载远程目录,解决大文件和多数量文件访问速度问题。在 macOS 上,sshfs 是通过 macFUSE 提供的。装好 macFUSE 后,还需要安装 sshfs。

macFUSE安装及SSHFS


进入https://macfuse.github.io/下载macFUSE和SSHFS安装后安装即可,另外SSHFS需要启用SFTP服务才能使用。

挂载命令

参数 含义
-p 22 指定 SSH 端口(默认是 22)。这里用了 6122。
-o reconnect 如果连接断开,自动重连。
-o cache=no 禁用缓存,每次都直接读远程文件(保证实时性,但会牺牲性能)。
-o auto_cache 自动缓存文件,如果远程修改了文件则自动失效(常用在小文件多时)。
-o kernel_cache 允许内核缓存文件数据,提高性能(但文件变更可能延迟)。
-o direct_io 禁用本地缓存,所有读写直接走远程(避免多进程一致性问题,但可能降低速度)。
-o async_read 启用异步读取,提高读取大文件性能(默认开启)。
-o defer_permissions 把权限检查交给远程服务器处理,而不是本地(适合 macOS)。
-o allow_other 允许除了当前用户外的其他用户也能访问挂载目录(需要 user_allow_other 配置)。
-o IdentityFile=~/.ssh/id_rsa 指定 SSH 私钥文件,用于免密登录。
-o uid=$(id -u) -o gid=$(id -g) 映射用户和组 ID,避免权限问题。
-o follow_symlinks 让远程的符号链接在本地生效。
-o Ciphers=aes128-gcm@openssh.com 指定加密算法,可以换成更快的算法以提升速度。

示例

1
2
3
4
5
6
7
sshfs user@192.168.1.1:/Obsidian \
/Users/nanbowan/Documents/Obsidian \
-p 22 \
-o reconnect \
-o auto_cache \
-o cache_timeout=20 \
-o defer_permissions