我从我的 Android 设备在我的树莓派上运行 Python 脚本,它总是可以运行 3 到 4 次,但是当我运行更多次时,Putty 会告诉我以下内容:
Network error: Software caused connection abort
(在这 3-5 次尝试中,我观察了 Putty 并在 Putty 中输入了基本命令来检查我的笔记本电脑是否仍然连接到 pi)
我该如何调试?我的 rasberry pi 上的 python 脚本有问题,还是 android 应用程序有问题,或者存在某种网络问题?
谢谢
答案1
如果您在 Android 设备上使用的软件支持与 Windows 版本的 PuTTY 相同的选项,您可以尝试在 PuTTY 中设置 keepalive 值。加载会话,然后单击联系在下面类别并将 keepalive 选项设置为几秒钟,例如 5 秒,以减少连接断开的可能性。您需要点击会议保存新设置。然后登录 SSH 服务器。
您还可以检查 SSH 服务器日志中是否存在发生问题时可能记录的任何消息,甚至可以打开 PuTTY 中的日志记录 - 参见下图 - 尽管我不确定那里是否会出现任何可用于帮助隔离问题原因的内容。
有一次,我使用 PuTTY 连接到特定服务器时反复收到该消息,我只需在服务器端重新启动 SSH 服务器软件即可解决问题,尽管在这种情况下 SSH 服务器软件是在 Microsoft Windows 系统上运行的。
您还可以尝试在 Android 设备上使用其他 SSH 客户端程序,例如连接机器人,看看问题是否与 SSH 客户端软件无关。
调试的另一种选择是安装Wireshark在 Rasberry Pi 上或使用tcpdump在 Rasbery Pi 上捕获 SSH 流量到一个文件,然后将该文件传输到另一个系统,在那里你可以用 Wireshark 对其进行分析——你可以在 Wireshark 中设置过滤器使用 过滤器仅查看 SSH 流量tcp.port==22
。您需要查找任何意外情况,例如来自服务器的用于重置连接的 RST 数据包、大量数据包重传等。