有没什么软件或工具能持续记录本地网络的“连通性”? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CSGO
V2EX    软件

有没什么软件或工具能持续记录本地网络的“连通性”?

  •  
  •   CSGO 2024-01-09 13:46:40 +08:00 1790 次点击
    这是一个创建于 707 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己所处网络老断,断表现在比如 ssh 服务器,没一会儿就断开;或者网页正好打开就是没网络的页面,得不断刷新;或者就是下载文件老断开;或者 xcode 下载东西老失败; macos 升级老失败; adobe 下载软件也是失败等等。

    而我只知道用终端 ping ,ping 又一直正常。我也问了 AI ,说“仅说明该主机的网络层( IP 层)是可达的”

    有没类似其他指令可以持续类似 ping 这样可以判断更全的网络联通状态?或者软件也行或者 docker 。
    13 条回复    2024-01-15 17:44:07 +08:00
    File
        1
    File  
       2024-01-09 14:42:21 +08:00
    以前写过个脚本 放在树莓派上自己跑 断网会在 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
    AoEiuV020JP
        2
    AoEiuV020JP  
       2024-01-09 15:28:35 +08:00
    @zhouscloud #1 看这意思,没把 wget 的报错也写入日志里吗?是否有必要呢,
    另外开头可以加一个 mkdir -p ./Log 否则等出问题才发现没有文件夹就坑了,
    AoEiuV020JP
        3
    AoEiuV020JP  
       2024-01-09 16:04:33 +08:00   1
    参考楼上的我改个自己用用看看,
    主要是改请求 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
    CSGO
        4
    CSGO  
    OP
       2024-01-09 16:27:04 +08:00
    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
    File
        5
    File  
       2024-01-09 16:28:31 +08:00
    @AoEiuV020JP 毕竟也是大学时写的脚本, 有些东西当时也没考虑周全.
    当时只是想了解具体的断点时间和断点时长, 对于日志方面的问题并没有太关注.
    不过, 看到您提出的优化方式, 确实是个不错的点子.
    slowman
        6
    slowman  
       2024-01-09 16:30:40 +08:00
    zx900930
        7
    zx900930  
       2024-01-09 17:38:14 +08:00
    uptime kuma
    Les1ie
        8
    Les1ie  
       2024-01-09 18:08:27 +08:00
    巧了,之前我这也是网络三天两头崩,整得我头疼,就用 ping_exporter(github 上找的) + prometheus + grafana 瞎整了一个统计,每隔 5 秒钟发一个 icmp 。

    ![https://i.imgur.com/a/pxTBzKg]( https://i.imgur.com/a/pxTBzKg)

    如果网络崩了,可以用 grafana 的 altering 功能( prometheus 也能干这事)给我发个通知。后来发现我的场景似乎不需要发通知的功能,因为那段时间网络 24x7 一直是崩的状态 :(

    如果有需要的话,我可以看看怎样把这套配置传到 github 去,其实很简单,半小时就能搞定。
    lvwj
        9
    lvwj  
       2024-01-10 16:36:30 +08:00
    @Les1ie 我需要,大佬给个 github 地址
    Les1ie
        10
    Les1ie  
       2024-01-10 21:02:10 +08:00
    err1y
        11
    err1y  
       2024-01-12 18:12:24 +08:00 via iPhone
    CSGO
        12
    CSGO  
    OP
       2024-01-15 13:57:39 +08:00
    @err1y 这个的话,应该添加什么能比较直观感受网络?

    “组 HTTP ( S ) TCP Port Ping HTTP ( s ) - 关键字 HTTP ( s )- JSON 查询 gRPC ( s )- 关键字 DNS Docker 容器 HTTP ( s ) - Browser Engine ( Chrome/Chromium ) ( Beta ) 被动监控类型 Push 特殊监控类型 Steam 游戏服务器 GameDig MQTT Kafka Producer Microsoft SQL Server PostgreSQL MySQL/MariaDB MongoDB Radius Redis”
    err1y
        13
    err1y  
       2024-01-15 17:44:07 +08:00 via iPhone
    @CSGO ping 或者 dns 解析就可以了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3060 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 12:37 PVG 20:37 LAX 04:37 JFK 07:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86