我无法保持办公室 LAN (ADSL) 上的几种类型的长期运行连接处于打开状态,我需要让服务提供商相信确实存在问题。标准 ping 和跟踪路由未显示任何问题,我需要更高级的方法。
每当我通过 ADSL 线路从我的机器(PHP 或 MySQL Workbench)向 Internet 上的服务器启动长时间运行的 MySQL 查询时,驱动程序似乎都会断开连接。MySQL Workbench 会冻结并需要强制退出。PHP 从不返回任何结果,必须将其终止。我家里的相同查询总是运行良好。
通过 ADSL 线路进行的远程桌面连接经常会断开,我每天需要重新连接 15 次。在家里不会发生这种情况。SSH 连接也会断开。
我使用的是 Mac,但我使用 Windows 的同事也遇到了同样的问题。我该如何诊断和证明问题?
答案1
您应该尝试到主机的路由,执行此操作的一个工具是 mtr,它是一种跟踪路由,可以显示路由上每一跳的延迟。
在 Mac 上你可以使用 Homebrew 安装
brew install mtr
然后
mtr example.com
您将能够看到哪个主机正在丢弃数据包。
答案2
例如,如果您精心设计了 ping 请求,并让它在后台运行并指向日志文件,那么 ping 应该会显示问题;
ping -t -w 250 -4 -l 1024 google.com >> log.txt
将使用 1k 数据包和 250ms 超时对 google.com 执行 ping 操作。某些主机不接受大于 32/64 字节的数据包,但数据包越大,ping 模拟的实际使用情况就越好,如果发生这种情况,则会显示丢弃的数据包。不必担心回复的大小。
答案3
您可以使用带宽监控软件,并在 24 小时内运行它。这应该可以为您提供相当精确的带宽状态读数。
或者,您也可以复制 ssh 连接的日志。由于每次微断时这些连接都会断开,因此这应该证明您确实遇到了频繁发生的连接丢失。
您的 ssh 会话信息将保存在 /var/log/system.log 中
在 Lion 和更早版本的 OS X 中,该文件位于 /var/log/secure.log
希望有帮助