Centos7 使用 rclone 挂载远程sftp到本地

一、安装rclone及依赖

yum install epel-release -y
yum install fuse fuse3 fuse3-libs -y
curl https://rclone.org/install.sh | bash

二、配置 rclone 连接 SFTP

方法一,直接创建配置文件

mkdir -p /root/.config/rclone
vi /root/.config/rclone/rclone.conf

[mysftp]
type = sftp
host = 192.168.21.1
pass = 1XiK***************s
shell_type = unix
md5sum_command = md5sum
sha1sum_command = sha1sum
关于密文,可以手动加密后写入配置
使用 rclone obscure 加密密码:
rclone obscure your_password

方法二,使用配置向导

(1)进入 rclone 配置模式

rclone config

(2)添加新的 SFTP 远程存储

  1. 选择 n(新建远程)
  2. 输入远程名称(如 mysftp
  3. 选择存储类型 sftp:48  
  4. 输入 SFTP 服务器地址(如 example.com 或 192.168.1.100):192.168.21.1
  5. 输入用户名:root
  6. 输入密码:
  7. 其他选项默认(直接回车):
  8. 确认配置:
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote
    y/e/d> y
  9. 退出配置模式:
q) Quit config
e/n/d/q> q


三、测试 SFTP 连接

先查看配置文件(记下远程名称mysftp,后面都要使用)
cat /root/.config/rclone/rclone.conf
# 列出远程目录(验证连接)
rclone lsf mysftp:/


四、挂载 SFTP 到本地目录

(1)创建本地挂载点

mkdir -p /mnt/mysftp
chown $(whoami):$(whoami) /mnt/mysftp

(2)使用 rclone mount 挂载

rclone mount mysftp:/opt /mnt/mysftp \
    --allow-other \
    --vfs-cache-mode full \
    --umask 000 \
    --no-modtime \
    --daemon

参数说明:

参数 作用
--allow-other 允许其他用户访问
--vfs-cache-mode full 启用缓存,提高性能
--umask 000 设置文件权限(777)
--no-modtime 不修改文件时间(减少SFTP请求)
--daemon 后台运行

(3)验证挂载

df -h | grep mysftp
ls /mnt/mysftp

(4)开机自动挂载(Systemd 服务)

sudo tee /etc/systemd/system/rclone-sftp.service <<'EOF'
[Unit]
Description=rclone mount for SFTP Server
After=network-online.target
Wants=network-online.target

[Service]
User=root
ExecStart=/usr/bin/rclone mount mysftp:/opt /mnt/mysftp \
    --allow-other \
    --allow-non-empty \
    --vfs-cache-mode full \
    --umask 000 \
    --no-modtime \
    --fusermount-path /usr/bin/fusermount3
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 启动服务
systemctl daemon-reload
sudo systemctl start rclone-sftp
systemctl enable rclone-sftp

(5)状态及日志查看

systemctl status rclone-sftp
journalctl -u rclone-sftp -f