自己所处网络老断,断表现在比如 ssh 服务器,没一会儿就断开;或者网页正好打开就是没网络的页面,得不断刷新;或者就是下载文件老断开;或者 xcode 下载东西老失败; macos 升级老失败; adobe 下载软件也是失败等等。 而我只知道用终端 ping ,ping 又一直正常。我也问了 AI ,说“仅说明该主机的网络层( IP 层)是可达的” 有没类似其他指令可以持续类似 ping 这样可以判断更全的网络联通状态?或者软件也行或者 docker 。 ping, 断开, 网络, 失败
以前写过个脚本 放在树莓派上自己跑 断网会在 Log 文件夹生成记录: #!/bin/bash WGET="/usr/bin/wget" second=0 for (( ; ; )) do $WGET -q --tries=1 --timeout=1 http://www.baidu.com -O /tmp/file.idx &> /dev/null if [ ! -s /tmp/file.idx ] then if [ "$second" -eq "1" ] then echo "$(date +"%Y-%m-%d %H:%M:%S "): Disconnected" >> ./Log/network_connection-$(date +"%Y-%m-%d").log fi let "second += 1" else if [ "$second" -gt "1" ] then echo "$(date +"%Y-%m-%d %H:%M:%S "): Reconnected, downtime: $second 's" >> ./Log/network_connection-$(date +"%Y-%m-%d").log fi second=0 fi sleep 1 done
参考楼上的我改个自己用用看看, 主要是改请求 204 ,一方面网络流量更小些,一方面能检测到宽带欠费之类的页面异常跳转的情况, 顺便把失败的请求详情写进日志里, 再在终端打印点东西,免得看着空白,配合 screen 使用, 没有经过时间验证, #!/bin/bash mkdir -p ./Log second=0 for (( ; ; )); do rm ./Log/test.out code=$(curl --connect-timeout 1 -sS -L -o ./Log/test.out -w '%{http_code}' 'http://connect.rom.miui.com/generate_204' 2>./Log/test.err) if [ "$code" -ne "204" ]; then if [ "$second" -eq "1" ]; then logFile=./Log/network_connection-$(date +"%Y-%m-%d").log echo "$(date +"%Y-%m-%d %H:%M:%S "): Disconnected, code: $code" >> $logFile cat ./Log/test.err >> $logFile cat ./Log/test.out >> $logFile fi let "second += 1" else if [ "$second" -gt "1" ]; then logFile=./Log/network_connection-$(date +"%Y-%m-%d").log echo "$(date +"%Y-%m-%d %H:%M:%S "): Reconnected, downtime: $second 's" >> $logFile fi second=0 fi echo $code, $second sleep 1 done
AI 最终给我推荐使用 mtr ,我感觉还行: Wi-Fi-Mac-Studio.local (192.168.0.199) -> 114.114.1142024-01-09T16:26:56+0800 Keys: Help Display mode Restart statistics Order of fields quit Last 48 pings 1. 192.168.0.1 ..............1..............2..............1... 2. 192.168.1.1 111111111111111211111111111111111111111111111111 3. 115.216.116.129 221122121222211122213312121111211221231111111111 4. 183.159.251.128 ?1??????????2112123111?11132??1?11??????21211211 5. 183.159.251.129 1112???????????????????1111321a11??????????????? 6. 115.233.18.25 ??2???2???1a???1??212??????2??1?????11????????? 7. 202.97.101.146 ??????????2?2??????2???2??222????????????2??2?? 8. 61.155.228.138 3???????3?2???????????????????333????3??33????3 9. 58.217.249.94 ??????????????333333?????3333333333333333333333 10. public1.114dns.com 222223222222222222222??222222223a32222222222222 Scale: .:3 ms 1:9 ms 2:18 ms 3:32 ms a:49 ms b:70 ms c:95 ms
@AoEiuV020JP 毕竟也是大学时写的脚本, 有些东西当时也没考虑周全. 当时只是想了解具体的断点时间和断点时长, 对于日志方面的问题并没有太关注. 不过, 看到您提出的优化方式, 确实是个不错的点子.