rsync使用守护进程启动服务

rsync 本身通常使用 SSH(Secure Shell)协议来进行数据传输,因此它默认使用 SSH 的端口 22。如果使用 rsync 进行通过 SSH 的数据同步,它会通过端口 22 来建立连接。

然而,如果你使用 rsync 作为一个守护进程进行文件同步(即不通过 SSH),则可以配置它使用 TCP 端口 873 作为默认端口。

总结:

默认端口 22:当 rsync 使用 SSH 进行数据传输时。
默认端口 873:当 rsync 作为守护进程运行时。

要使用 rsync873 端口,你可以将 rsync 配置为通过其守护进程进行通信,而不是通过 SSH。rsync 守护进程默认监听 873 端口,并允许客户端通过该端口进行连接。下面是如何配置和使用 873 端口的步骤:

1. 启动 rsync 守护进程

首先,需要在服务器端启动 rsync 守护进程。这通常通过配置文件来实现。

配置守护进程(在服务器上)

创建或编辑 rsync 的配置文件 /etc/rsyncd.conf,内容示例如下:

[module_name]
path = /path/to/directory
comment = My rsync module
read only = no
list = yes
auth users = username
secrets file = /etc/rsyncd.secrets

[module_name] 是该模块的名称,通常可以自定义,但需要确保它是唯一的。这一行定义了一个 模块。每个模块代表一个 rsync 服务端提供的共享目录,用户可以通过模块名来访问该共享。
path 这个目录将会被 rsync daemon 共享给客户端访问。
comment 为该模块添加一个描述性注释,便于其他人理解该模块的用途。这个字段不是必需的,主要用于标明模块的用途或其他信息,客户端在访问时会看到这个注释。
read only 指定模块是否是只读的。no 表示该模块是可读写的,客户端可以上传和下载文件。yes 表示该模块是只读的,客户端只能下载文件,不能上传。
list 决定该模块是否会出现在 rsync 服务的模块列表中。yes 表示该模块会显示在模块列表中,客户端可以看到并选择访问该模块。no 表示该模块不会出现在模块列表中,但仍然可以通过明确指定模块名来访问。
auth users 指定允许访问的用户名(你可以定义多个用户)。可以指定多个用户名,使用逗号分隔(例如:auth users = user1, user2
secrets file 指定一个文件路径,文件中保存了 rsync 用户的认证信息(用户名和密码),格式是 username:password

配置好 /etc/rsyncd.conf 文件后,你可以通过以下命令启动 rsync 守护进程:

sudo rsync --daemon

这会在 873 端口 上启动 rsync 服务。

创建密码文件

确保你在 /etc/rsyncd.secrets 文件中包含了正确的用户名和密码,格式如下:

username:password

设置合适的权限,确保文件的安全:

chmod 600 /etc/rsyncd.secrets

2. 使用 rsync 连接到 873 端口

客户端使用 rsync 命令连接到服务器上的守护进程时,指定使用端口 873。你可以使用如下命令:

sync -avz rsync://user@remote_host/module_name/ /local/directory

在这个命令中:

rsync://user@remote_host/module_name/ 是目标服务器上 rsync 守护进程的地址。
module_name 是在 rsyncd.conf 中定义的模块名。
/local/directory 是你希望同步到的本地目录路径。

如果需要验证用户身份,可以指定用户名和密码文件:

rsync -avz --password-file=/path/to/password/file rsync://user@remote_host/module_name/ /local/directory

-a (--archive):

归档模式,表示递归复制目录,并保持符号链接、权限、时间戳等元数据。相当于 -rlptgoD,确保文件和目录结构完整保留,适用于备份和复制文件。
-v (--verbose):
详细模式,表示输出更多的运行信息。使用 -v 后,rsync 会在传输过程中显示每个文件的传输状态,帮助用户了解正在进行的操作。
-z (--compress):
压缩模式,表示在传输过程中对数据进行压缩。这通常用于通过网络传输时,减少带宽消耗,尤其是在带宽较低的情况下非常有用。

3. 防火墙设置

确保防火墙允许 873 端口的流量。如果你的服务器使用防火墙(例如 firewalldiptables),需要打开 873 端口:

使用 firewalld
sudo firewall-cmd --zone=public --add-port=873/tcp --permanent
sudo firewall-cmd --reload
使用 iptables
sudo iptables -A INPUT -p tcp --dport 873 -j ACCEPT
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容