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 命令、标志和后端帮助。