You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Rsync Daemon非SSH场景下的用户认证与数据传输方式的问询

Rsync Daemon非SSH场景下的用户认证与数据传输方式详解

嗨,这个问题问得相当精准!很多刚切换到rsync daemon模式的朋友都会有这个困惑,我来给你拆解清楚~

一、认证方式

rsync daemon完全不靠SSH那套认证体系,而是用自己的模块级认证机制:

  • 用户名/密码验证:核心配置在/etc/rsyncd.conf里,你可以给每个共享模块(就是你定义的同步目录单元)指定auth users(允许访问的用户名列表),再用secrets file指向一个存储账号密码的文件——这个文件格式很简单,每行都是用户名:密码,而且一定要把文件权限设成600,不然rsync daemon会拒绝加载,怕密码泄露。客户端连接时,要么手动输入密码,要么通过--password-file参数指定密码文件,daemon会直接比对这个本地的密码文件完成认证。
  • 匿名访问:如果模块里没配置auth users,那就是开放匿名访问了,任何人都能连接(当然你可以用hosts allow/hosts deny来限制IP段,避免乱访问),这时候连用户名密码都不用输。

二、数据传输方式

这时候rsync走的是自身专属的TCP协议,默认用873端口。客户端发起连接时,要使用rsync://开头的地址格式(比如rsync://john@server.example.com/my_shared_module),或者更简洁的@server::module写法,这时候客户端会直接和服务器上的rsync daemon进程建立TCP连接,所有数据都通过这个通道传输,完全绕开了SSH的加密隧道。

值得一提的是,不管用不用SSH,rsync的增量传输逻辑都是一样的——它会对比两端文件的校验和,只传输有变化的部分,这点效率优势还是保留的。

备注:内容来源于stack exchange,提问作者displayname12345

火山引擎 最新活动