AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 674797
Accepted
user3236841
user3236841
Asked: 2021-10-26 18:49:28 +0800 CST2021-10-26 18:49:28 +0800 CST 2021-10-26 18:49:28 +0800 CST

编写脚本来检查 ssh 隧道是否开启

  • 772

我有一个 ssh 隧道设置如下:

ssh -N -L 1105:remote.server:25 office-machine&

我想编写一个脚本来设置检查,比如每分钟一次(我可以使用 cron 作业来做,也许),它将检查此连接是否已建立,否则它将建立连接(如果 vpn 已打开)。

我该怎么做才能检查 ssh 隧道?

提前致谢。

PS:我试过了

autossh -N -L 1105:remote.server:25 office-machine&

但它退出了。我怀疑这些选项是正确的。事实上,手册页/帮助表明没有 -N 和 -L 选项,而只有 -f 和 -M。

shell-script ssh
  • 1 1 个回答
  • 277 Views

1 个回答

  • Voted
  1. Best Answer
    muru
    2021-10-26T21:05:42+08:002021-10-26T21:05:42+08:00

    你可以用autossh这个。引用Ubuntu 联机帮助页:

     autossh is a program to start a copy of ssh and monitor it, restarting it as necessary
     should it die or stop passing traffic.
    
     The original idea and the mechanism were from rstunnel (Reliable SSH Tunnel). With version
     1.2 of autossh the method changed: autossh uses ssh to construct a loop of ssh forwardings
     (one from local to remote, one from remote to local), and then sends test data that it
     expects to get back. (The idea is thanks to Terrence Martin.)
    

    所以必须指定一个额外的监控端口autossh。选择一些端口 N 以便 N 和 N+1 都是空闲的,并将其与-M选项一起使用,例如,

    autossh -M 20000 -N -L 1105:remote.server:25 office-machine
    

    您还可以使用 禁用监视-M 0。在基于 Debian 的系统上,autossh可以自动选择一个空闲端口进行监控。


    如果您的 VPN 连接断开,autossh应通过监控端口检测到 SSH 连接不再有效,然后尝试重新启动它。在那之后:

    Continued failures
     If the ssh connection fails and attempts to restart it fail in quick succession, autossh
     will start delaying its attempts to restart, gradually backing farther and farther off up to
     a maximum interval of the autossh poll time (usually 10 minutes).  autossh can be "prodded"
     to retry by signalling it, perhaps with SIGHUP ("kill -HUP").
    
    • 3

相关问题

  • 在awk中的两行之间减去相同的列

  • 打印文件行及其长度的脚本[关闭]

  • 通过命令的标准输出以编程方式导出环境变量[重复]

  • 按分隔符拆分并连接字符串问题

  • MySQL Select with function IN () with bash array

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve