一个 udp ping 的工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
matate

一个 udp ping 的工具

  •  
  •   matate 3 月 25 日 858 次点击

    omni-ping

    检测 UDP 的延迟、丢包的工具。

    程序分 client 和 server 两个部分,被 ping 的远程机器上需要运行 server 。

    client 自带 dashboard ,可在浏览器实时查看统计结果。

    支持 linux, windows, mac

    可能会添加 TCP, ICMP 的 ping

    欢迎提 issue 和 pr


    github: https://github.com/vincascm/omni-ping

    client 截图:

    截图

    4 条回复    2026-03-28 13:46:20 +08:00
    gesse
        1
    gesse  
       3 月 26 日
    有个建议,相对于 c/s 模式,其实更能有需求的是去中心化模式,

    比如只有一个运行文件,然后运行了的多个服务器可以通过一个中心节点管理组成一个网状拓扑,可以设置各个节点间的 ping 关系。

    可以参考一个项目
    https://github.com/smartping/smartping
    matate
        2
    matate  
    OP
       3 月 26 日
    @gesse 这个想法不错。不过我理解,icmp 的 ping 其实是不需要 server 的,remote 的回包是系统发出的。这个工具需要,是因为这种 udp 的回包是自定义的,是需要应用程序发出的,所以 server 是免不了。

    smartping 看起来是数据独立存储,又存储了节点的关系,所以查询时能够查到关联节点的数据,这样会在查询时形成一张拓扑图。

    对于 omni-ping 这个工具,可以在 client 定义一个运行模式,不需要启动 dashboard ,只提供查询接口,外加节点关系的存储,大致能模拟这种需求。不过这样感觉又往监控、上报、告警的方向演进了,这只是个小工具,自己用的,因为运营商偶尔会阻断或 QoS 某些国际 IP 的 UDP 的流量,比如 hy2, quic , 用它看看啥情况,也刚好够用了。
    pagxir
        3
    pagxir  
       3 月 28 日 via Android
    为啥不直接用 iperf
    matate
        4
    matate  
    OP
       3 月 28 日
    @pagxir 一开始是用 iperf ,不好用放弃了,网上找了很久,不得已还是造轮子了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:56 PVG 17:56 LAX 02:56 JFK 05:56
    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