rclone rcd

rclone rcd

仅监听远程控制命令来运行 rclone。

概要

此命令用于运行 rclone,使其仅监听远程控制命令。

如果您通过 rc API 来控制 rclone,此功能会非常有用。

如果您传入一个目录的路径,rclone 将在传入的 URL 上为该目录处理 GET 请求。并且在运行 rclone 时,它还会在浏览器中打开该 URL。

有关 rc 标志的更多信息,请参阅 rc 文档

服务器选项

使用 --rc-addr 来指定服务器应监听的 IP 地址和端口,例如 --rc-addr 1.2.3.4:8000--rc-addr :8080 以监听所有 IP 地址。默认情况下,它仅监听本地主机。您可以使用端口 :0 让操作系统选择一个可用的端口。

如果您将 --rc-addr 设置为监听公共或局域网可访问的 IP 地址,建议使用身份验证 - 有关信息请参阅下一节。

您可以通过将 URL 设置为 unix:///path/to/socket 或直接使用绝对路径名来使用 Unix 套接字。

--rc-addr 可以重复使用,以监听多个 IP 地址、端口或套接字。下面进一步描述的套接字激活也可用于实现相同的目的。

--rc-server-read-timeout--rc-server-write-timeout 可用于控制服务器的超时时间。请注意,这是一次传输的总时间。

--rc-max-header-bytes 控制服务器在 HTTP 头中接受的最大字节数。

--rc-baseurl 控制 rclone 服务的 URL 前缀。默认情况下,rclone 将从根目录开始提供服务。如果您使用 --rc-baseurl "/rclone",则 rclone 将从以 “/rclone/” 开头的 URL 提供服务。如果您希望代理 rclone 服务,这将非常有用。rclone 会自动在 --rc-baseurl 前后插入 “/",因此 --rc-baseurl "rclone"--rc-baseurl "/rclone"--rc-baseurl "/rclone/" 的处理方式相同。

TLS (SSL)

默认情况下,此服务将通过 HTTP 提供。如果您需要通过 HTTPS 提供服务,则需要提供 --rc-cert--rc-key 标志。

如果您希望进行客户端证书验证,则还需要提供 --rc-client-ca

--rc-cert 必须设置为包含 PEM 编码证书或该证书与 CA 证书的拼接文件的路径。--rc-key 必须设置为包含 PEM 编码私钥的文件的路径。如果设置了 --rc-client-ca,则应将其设置为包含 PEM 编码客户端证书颁发机构证书的文件的路径。

--rc-min-tls-version 是可接受的最低 TLS 版本。有效值为 “tls1.0”、“tls1.1”、“tls1.2” 和 “tls1.3”(默认值为 “tls1.0”)。

套接字激活

如果服务管理器传递了任何文件描述符(FD),rclone 将监听这些 FD,而不是上面指定的监听地址(并忽略 --rc-addr 传递的任何参数)。

这允许 rclone 成为一个套接字激活的服务。可以按照 https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html 中所述,使用 .socket.service 单元文件对其进行配置。

可以使用 systemd-socket-activate 命令临时测试套接字激活:

   systemd-socket-activate -l 8000 -- rclone serve

这将在首次通过 TCP 连接到端口 8000 时激活 rclone 的套接字。

模板

--rc-template 允许用户为 HTTP 和 WebDAV 服务功能指定自定义标记模板。服务器导出以下标记,可在模板中用于服务页面:

参数 描述
.Name 文件/目录的完整路径。
.Title .Name 的目录列表。
.Sort 当前使用的排序方式。可通过 ?sort= 参数更改。
排序选项:namedirfirst、name、size、time(默认值为 namedirfirst)
.Order 当前使用的排序顺序。可通过 ?order= 参数更改。
排序顺序选项:asc、desc(默认值为 asc)
.Query 当前未使用。
.Breadcrumb 用于创建相对导航。
– .Link 文本相对于根目录的链接。
– .Text 目录的名称。
.Entries 特定文件/目录的信息。
– .URL 条目的“url”。
– .Leaf 当前与“URL”相同,但旨在仅为名称。
– .IsDir 条目是否为目录的布尔值。
– .Size 条目的大小(以字节为单位)。
– .ModTime 条目的 UTC 时间戳。

服务器还提供以下函数,以便在模板中使用。这些函数有助于扩展 HTML 动态渲染的选项。它们可用于根据特定条件渲染 HTML。

函数 描述
afterEpoch 返回给定时间自纪元以来的时间。
contains 检查给定字符串中是否存在给定子字符串。
hasPrefix 检查给定字符串是否以指定前缀开头。
hasSuffix 检查给定字符串是否以指定后缀结尾。

身份验证

默认情况下,此服务提供文件时无需登录。

您可以使用一个可以容纳多个用户的 htpasswd 文件,或者使用 --rc-user--rc-pass 标志设置单个用户名和密码。

如果上述两种方法都未配置静态用户,并且服务器通过 --client-ca 标志要求客户端证书,则客户端证书的通用名称将被视为用户名。

使用 --rc-htpasswd /path/to/htpasswd 来提供一个 htpasswd 文件。该文件采用标准的 Apache 格式,支持 MD5、SHA1 和 BCrypt 进行基本身份验证。建议使用 BCrypt。

要创建一个 htpasswd 文件:

touch htpasswd
htpasswd -B htpasswd user
htpasswd -B htpasswd anotherUser

在 rclone 运行时,可以更新密码文件。

使用 --rc-realm 来设置身份验证领域。

使用 --rc-salt 来更改默认的密码哈希盐值。

rclone rcd <path to files to serve>* [flags]

Options

  -h, --help   help for rcd

接下来将介绍与其他命令共享的选项。 有关此处未列出的全局选项,请参阅 全局标志页面

RC 选项

用于控制远程控制 API 的标志

      --rc                                 启用远程控制服务器
      --rc-addr stringArray                要绑定服务器的 IP 地址和端口,格式为 IPaddress:Port 或 :Port(默认值为 localhost:5572)
      --rc-allow-origin string             允许跨域请求(CORS)执行的源
      --rc-baseurl string                  URL 的前缀 - 留空表示根目录
      --rc-cert string                     TLS PEM 密钥(证书和 CA 证书的拼接)
      --rc-client-ca string                用于验证客户端的客户端证书颁发机构
      --rc-enable-metrics                  在远程控制服务器上启用 Prometheus 指标路径
      --rc-files string                    在 HTTP 服务器上提供服务的本地文件路径
      --rc-htpasswd string                 一个 htpasswd 文件 - 如果未提供,则不进行身份验证
      --rc-job-expire-duration Duration    使超过此时间的已完成异步作业过期(默认值为 1 分钟)
      --rc-job-expire-interval Duration    检查过期异步作业的间隔时间(默认值为 10 秒)
      --rc-key string                      TLS PEM 私钥
      --rc-max-header-bytes int            请求头的最大大小(默认值为 4096)
      --rc-min-tls-version string          可接受的最低 TLS 版本(默认值为 "tls1.0")
      --rc-no-auth                         某些方法不需要身份验证
      --rc-pass string                     用于身份验证的密码
      --rc-realm string                    身份验证领域
      --rc-salt string                     密码哈希盐值(默认值为 "dlPL2MqE")
      --rc-serve                           启用远程对象的服务
      --rc-serve-no-modtime                不读取修改时间(可以加快速度)
      --rc-server-read-timeout Duration    服务器读取数据的超时时间(默认值为 1 小时)
      --rc-server-write-timeout Duration   服务器写入数据的超时时间(默认值为 1 小时)
      --rc-template string                 用户指定的模板
      --rc-user string                     用于身份验证的用户名
      --rc-web-fetch-url string            获取 Web GUI 版本的 URL(默认值为 "https://api.github.com/repos/rclone/rclone-webui-react/releases/latest")
      --rc-web-gui                         在本地主机上启动 Web GUI
      --rc-web-gui-force-update            强制更新到 Web GUI 的最新版本
      --rc-web-gui-no-open-browser         不自动打开浏览器
      --rc-web-gui-update                  检查并更新到 Web GUI 的最新版本

参见

  • rclone - 显示 rclone 命令、标志和后端帮助。