最近,我在家里的电脑上安装了支持 ssh 的 Ubuntu 服务器 12.04。我使用 WiFi 而不是有线连接来连接这台服务器。一切正常,只是出于某种未知原因,当我白天从工作地点尝试访问它时,ssh 无法工作。当我在家时,它可以工作。我确实注意到,有时我必须“尝试”一次本地连接到服务器才能使 ssh 工作(我使用 Putty 进行连接)。
我诊断它的步骤:1. 禁用 WiFi 设备的电源管理 2. 禁用 sshd 的 dns 3. 尝试从我的家用 NAS“ping”我的服务器(没有 ping 回复。我必须从我的工作远程连接到我的 NAS 才能进行此 ping。因此 ssh 端口是开放的)4. 在家时,我尝试从外部(从亚马逊上的服务器)访问我的服务器,并且成功了。5. 检查日志但找不到任何相关信息
我确实已启用 UFW 并在服务器上打开了端口 22。
我觉得这个问题可能与某种电源管理有关,这种电源管理使我的 wifi 进入睡眠状态,因此 ssh 无法访问,但我不知道在哪里寻找电源设置。
差点忘了说,昨天我下班回家时尝试本地连接到该服务器,但没有成功。然后我登录到服务器并检查 ssh 服务是否正在运行,结果正在运行。然后我尝试 ping 某个服务器,之后我才能够通过 ssh 连接到该服务器。
任何建议或帮助都将不胜感激...
编辑#1:我有一个 D-Link 655 无线路由器,我的 WiFi 卡是 Asus USB-N13(库存驱动程序)
编辑#2:我今天尝试从服务器(物理连接)ping Google,大约 2-3 分钟后无法ping通。然后,服务器突然恢复响应并可用。 系统配置表明我始终连接到网络。
答案1
最终我解决了这个问题。
问题出在我路由器的 DNS 设置上。我不得不禁用DNS 中继在路由器上手动配置 DNS 记录。然后我强制我的 Ubuntu 机器更新 DHCP 设置,并设置正确的 DNS 记录。
已经两天了,没有任何连接问题。