尽管已创建 SSH 隧道,但无法使用它

尽管已创建 SSH 隧道,但无法使用它

我安装了一个远程 Raspberry Pi(Debian 最新版)相机,并连接了移动调制解调器路由器,以便将照片上传到云端。
过去和现在,这种方法都运行良好。
为了管理照片序列的频率和其他内容,我在家里建立了一个通往 Ubuntu(20-04 最新版)台式电脑的隧道。
这是因为移动调制解调器路由器关闭了所有传入端口,所以我无法直接访问它。
这是执行的建立隧道的命令。(每分钟都会检查它是否处于活动状态)

/usr/bin/screen -dmS ssh-Ubuntu /usr/bin/ssh -o ExitOnForwardFailure=yes -R 2222:localhost:22 me@no-ip-domain -g

因此,我的桌面ssh -p 2222 pi@localhost应该会提示我输入密码以登录 RPi。
去年它运行正常,没有问题,但现在我遇到了问题,它有时可以工作。
当它不工作时,不会出现输入密码的提示。
使用一个非常有用的工具 pitunnel,我获得了 ssh 访问权限。无论如何,我更喜欢我的隧道,因为它在每次输入字母之间没有延迟。
这样我就可以看到 ps aux | grep SCREEN转储

pi 2759 0.0 0.2 5788 2084 ? Ss 15:04 0:00 /usr/bin/SCREEN -d​​mS ssh-Ubuntu /usr/bin/ssh -o ExitOnForwardFailure=yes -R 2222:localhost:22 me@no-ip-domain -g

因此隧道似乎已建立。如果我kill 2759等待时间发生变化,则 cron 检查将再次建立隧道。然后再次
ps aux | grep SCREEN转储

pi 11772 0.0 0.2 5788 2164 ? Ss 16:10 0:00 /usr/bin/SCREEN -d​​mS ssh-Ubuntu /usr/bin/ssh -o ExitOnForwardFailure=yes -R 2222:localhost:22 me@no-ip-domain -g

之后,会显示密码提示,我可以成功登录。
注销后,几个小时后,我进入了一个循环:没有提示输入密码等等。

如果命令和检查脚本在过去有效并且隧道似乎已建立,我不明白为什么有时不会显示密码提示。

除了软件更新之外,唯一的变化是我的桌面路由器。
我使用了与旧路由器相同的配置。在这种情况下:
NAT 转发 -> 服务类型=SSH;外部和内部端口=22;内部 IP=192.168.1.33;协议=全部;

更新 1:

netstat / ss -nltp从桌面,但此时试图进入隧道,我得到

ssh:连接到主机 localhost 端口 2257:连接被拒绝

tcp 0 0 0.0.0.0:22 0.0.0.0:* 侦听 - 
tcp6 0 0 ::1:2222 :::* 侦听 - 
tcp6 0 0 :::22 :::* 侦听 -

更新 2:
昨天我在 /etc/ssh/ssh_config 桌面添加了两行

服务器存活间隔 15
服务器存活计数最大值 4

今天我可以使用隧道,但过了一段时间后再次尝试, ssh -p 2222 pi@localhost却被耽搁了几分钟,然后输出

kex_exchange_identification:读取:对等方重置连接

几分钟后 ssh -p 2222 pi@localhost

ssh:连接到主机 localhost 端口 2222:连接被拒绝

netstat / ss -nltp不显示

tcp6 0 0 ::1:2222 :::* 侦听

尽管 Pips aux | grep Ubuntu显示任务处于活动状态

pi 7232 0.0 0.2 5788 2036 ? Ss 09:17 0:00 /usr/bin/SCREEN -d​​mS ssh-Ubuntu /usr/bin/ssh -o ExitOnForwardFailure=yes -R 2222:localhost:22 me@no-ip -

相关内容