0

我正在尝试让 Raspberry Pi Zero 连接到 Azure VM 并创建一个反向端口正向 ssh 隧道。我对此有点陌生,所以我的术语可能略有偏差。

这是问题所在:

当我切断 Pi Zero 的 wifi 以使用铝箔模拟 wifi 断开连接时,服务器会失去与 Pi Zero 的连接。当 Pi Zero 尝试使用 autossh/while 循环重新连接时,VM 服务器说我尝试反向转发的端口已被占用。

更具体地说,服务器端 sshd 的错误日志如下所示:“error: bind [::]:62002: Address already in use” “error: channel_setup_fwd_listener_tcpip: cannot listen to port:62002”

问题似乎是由于 wifi 断开连接,服务器没有正确断开连接。但是手动重新连接工作正常,端口似乎没有卡住。我已经尝试解决这个问题很长一段时间了,所以这里有一些我尝试过但没有奏效的东西。

  • 更改“ClientAliveInterval”、“ClientAliveCountMax”、“ServerAliveInterval”和“ServerAliceCountMax”
    • 更改这些似乎对正确断开连接并重新启动它没有任何作用
  • 在服务器端将“StreamLocalBindUnlink”更改为“yes”
    • 更改此设置似乎也无助于服务器断开连接
  • 制作一个不断重试 ssh 命令的 while 循环
    • 这种方法应该有效,但是在 wifi 连接断开后该进程被终止。我在 ssh 命令中使用了“-n”选项、“nohup”和“&”来尝试防止这种情况发生,但似乎没有解决任何问题。
  • 从 Pi Zero 中的 ssh 配置文件更改“ExitOnForwardFailure”

我不确定到底是什么问题,唯一的两个选择似乎是服务器没有正确断开连接,或者与 Pi Zero 的断开连接出现了某种错误。

有没有人知道我该如何解决这个问题?或者也许是丢弃隧道后重新连接的更好方法?

4

0 回答 0