linux - 反向 ssh 隧道

标签 linux ssh cron tunnel

我在现场有一个嵌入式设备,通过 USB 电池棒连接到互联网。为了能够访问它,我在端口 19996 上建立了一个到我家用 PC 的反向 ssh 隧道,以便能够访问它。

现在,我每 10 分钟(通过 cron)重新建立一次该隧道,以确保即使提供商决定更改我的 IP,我的访问也几乎不会中断。

现在我意识到我的进程列表已经满了

"4383 root     ssh -R 19996:localhost:22 -f -N user@host"

并且 netstat 也加载了连接。我怎样才能确保这不会发生?我一次只需要打开一个隧道,而不是 100 个。

最佳答案

我编写了以下似乎工作正常的 shell 脚本!

#!/bin/sh
RETVAL=`netstat | grep 'S0106b0487afe2a57'| grep -c 'ssh ESTABLISHED'`
echo "${RETVAL} open tunnel(s)"
if [ "$RETVAL" -lt "1" ]
  then
        echo "starting reverse ssh tunnel"
        `ssh -R 19999:localhost:22 -f -N user@host`
        echo "done"
fi

关于linux - 反向 ssh 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839014/

相关文章:

javascript - Nodejs ssh2仅在一个终端运行多个命令

python - pexpect 和 ssh 连接到 ipv6 主机

php - 在 Crontab CentOS 中使用 Sleep 命令

linux - 如何运行 Cron Job 以将文件创建为用户文件而不是根文件

ruby - Cronjob 不适用于 rake 命令

python - gz 文件解压缩过程的不同行为

php - 将网站从 Windows 迁移到 Linux

c - 我第一次使用 poll(),是否需要无限循环?

linux - 写入 fifo(命名管道)

linux - 通过公钥 ssh key 登录