autossh 健康检查机制分析

本文详细分析了autossh如何通过包装ssh确保在因网络问题导致连接中断时自动重试并重新连接。在正常情况下,autossh每隔一定时间进行连通性测试。当连接断开时,autossh会不断重启ssh子进程尝试重新连接,并通过监听write和read端口进行健康检查。在client端,autossh寻找可用端口,通过-L和-R选项设置数据传输通道,确保数据能从写端口返回到读端口,从而维持连接的稳定性。
摘要由CSDN通过智能技术生成

autossh自动登陆日志分析

autossh通过对ssh进行包装,保证ssh和sshd的连接因为各种原因(大部分是网络原因)中断的时候,会自动不断重试,直到重新连接上.

我们有两台机器

192.168.162.50是client,192.168.162.51是server.使用如下的命令autossh命令从client登陆server.

AUTOSSH_DEBUG=1 AUTOSSH_LOGFILE=/tmp/autossh.log  AUTOSSH_POLL=5  autossh  192.168.162.51

其中3个AUTOSSH开头的环境变量是为了看到日志设置的,大部分情况下不用设置.直接用autossh替换ssh就可以了

autossh 192.168.162.51

正常登陆的情况如下:

正常情况下,每隔POLL时间就来进行一次连通测试,会发现是通的. 下面是通的情况下的日志.

当因为网络或者其他原因导致连接不通了之后,日志会显示不通了,然后再不断的重启ssh子进程来重试连接. 从日志可以看到ssh子进程的pid一直在变,通过ps auxf也可以看到ssh子进程一直在出现,消失.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现autossh的自启动,你可以按照以下步骤进行操作: 1. 创建一个启动脚本:首先,你需要创建一个启动脚本,以便在系统启动时运行autossh。你可以使用任何文本编辑器来创建一个新的脚本文件,比如autossh_start.sh。 2. 编辑启动脚本:在启动脚本中,你需要指定autossh的命令和参数。例如,如果你要使用autossh来建立一个SSH隧道连接,可以在启动脚本中添加以下内容: ```bash #!/bin/bash autossh -M 0 -f -N -L <本地端口>:<目标主机>:<目标端口> <SSH用户名>@<目标主机IP> ``` 请将 `<本地端口>`, `<目标主机>`, `<目标端口>`, `<SSH用户名>` 和 `<目标主机IP>` 替换为实际的值。 3. 保存并退出:完成编辑后,请保存并退出启动脚本。 4. 设置脚本权限:运行以下命令,以确保启动脚本具有执行权限: ```bash chmod +x autossh_start.sh ``` 5. 将脚本添加到启动项:将启动脚本添加到系统的启动项中,以便在系统启动时自动运行。具体的操作方式可能因操作系统而异。 - 对于基于 systemd 的系统(如Ubuntu 16.04+),你可以创建一个名为 `autossh.service` 的服务单元文件,并将其放置在 `/etc/systemd/system/` 目录下。在文件中添加以下内容: ``` [Unit] Description=Autossh Service After=network.target [Service] ExecStart=/path/to/autossh_start.sh [Install] WantedBy=default.target ``` 请将 `/path/to/autossh_start.sh` 替换为实际的启动脚本路径。 然后,运行以下命令以重新加载 systemd 配置并启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable autossh.service ``` - 对于其他系统(如 CentOS、Red Hat、Debian 等),你可以将启动脚本的符号链接添加到 `/etc/rc.d/rc.local` 文件中。运行以下命令将启动脚本添加到 `rc.local` 文件中: ```bash sudo ln -s /path/to/autossh_start.sh /etc/rc.d/rc.local ``` 请将 `/path/to/autossh_start.sh` 替换为实际的启动脚本路径。 6. 重新启动系统:完成上述步骤后,重新启动系统,autossh应该会在系统启动时自动运行。 这样,autossh就会在系统启动时自动建立 SSH 隧道连接。记得根据你的实际需求和配置进行相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值