精确测量本地到多个云服务的速度(很可能是最好的 HTTP ping) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
PINGms
V2EX    分享创造

精确测量本地到多个云服务的速度(很可能是最好的 HTTP ping)

  •  5
     
  •   PINGms 2018-07-05 23:27:06 +08:00 11306 次点击
    这是一个创建于 2655 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这次主要的改进是每个服务器有“多个 HTTP 请求”测试,很大程度上解决了“抖动”(网络和浏览器的不稳定性)。

    页面: http://www.pingms.com/ (每个服务器有五个 HTTP 请求)
    代码: https://github.com/pingms/pingms (求 star )

    最后,再次感谢 @codehz 对这个小工具的巨大改善。
    第 1 条附言    2018-07-12 15:50:14 +08:00
    添加了一些新功能:
    1. 点击城市名称可以测试下载。
    2. 目前只有“搬瓦工”的“ CN2 ”不能测试下载,有相关提示(“ No Download ”)。
    3. 有“超时检测”,超过六秒就进入下一个任务。
    4. 添加了“搬瓦工”(官方测速地址,找他们客服要的)和“ HostUS ”。
    5. 改善了 UI。
    第 2 条附言    2018-07-15 14:50:10 +08:00
    删除了“ HostUS ”,他们的测速地址突然出问题了:有的测速地址强制 HTTPS,测试结果搞的很难看,而且没有意义。添加了“ RamNode ”和“ Host1Plus ”。
    第 3 条附言    2018-07-15 19:10:34 +08:00
    腾讯“网址安全中心”已经没有把这个域名列为“恶意网站”了。Safari 应该不会报警了。

    感谢 @ltq918 @yuhuigreed 的帮助!
    113 条回复    2019-02-11 11:13:46 +08:00
    1  2  
    jrient
        1
    jrient  
       2018-07-06 09:19:34 +08:00
    用来挑选 vps 非常舒服,感谢
    Telegram
        2
    Telegram  
       2018-07-06 09:49:52 +08:00 via iPhone
    排序动作,很帅
    tyzxyz
        3
    tyzxyz  
       2018-07-06 09:52:02 +08:00   3
    好棒,能不能做成并行的,等结果好慢
    PINGms
        4
    PINGms  
    OP
       2018-07-06 10:24:21 +08:00
    @jrient 多谢夸奖 :-)
    PINGms
        5
    PINGms  
    OP
       2018-07-06 10:28:52 +08:00
    @Telegram 这个都是 @codehz 的功劳:

    https://github.com/pingms/pingms/pull/1

    事实上,他做的效果更酷:

    页面: https://codehz.github.io/pingms/
    代码: https://github.com/codehz/pingms

    为了更好的兼容性,我把长条的颜色特效去掉了。
    PINGms
        6
    PINGms  
    OP
       2018-07-06 10:30:47 +08:00
    @tyzxyz 多谢反馈,正在考虑这个问题……
    FanWall
        7
    FanWall  
       2018-07-07 00:07:53 +08:00 via Android
    谢谢分享
    wjm2038
        8
    wjm2038  
       2018-07-07 00:14:49 +08:00 via Android
    可以自定义次数么
    To5tE
        9
    To5tE  
       2018-07-07 08:07:16 +08:00
    863ms
    Frankfurt
    834ms
    Amsterdam
    823ms
    Paris
    795ms
    London
    920ms
    Singapore
    762ms
    Tokyo
    667ms
    New Jersey
    640ms
    Chicago
    609ms
    Seattle
    664ms
    Atlanta
    715ms
    Miami
    658ms
    Dallas

    这结果不对吧
    lniwn
        10
    lniwn  
       2018-07-07 09:02:01 +08:00 via Android
    不错的工具,能并行就更棒了
    PINGms
        11
    PINGms  
    OP
       2018-07-07 09:57:48 +08:00
    @FanWall :-)
    PINGms
        12
    PINGms  
    OP
       2018-07-07 09:59:20 +08:00
    @wjm2038 目前不能“自定义次数”,用于测速的 HTTP 请求有四个(对于每个服务器),个人觉得已经足够了。
    PINGms
        13
    PINGms  
    OP
       2018-07-07 10:01:25 +08:00
    @To5tE 如果怀疑数值不准确,请 F12 Network,然后刷新可以看到精确毫秒数值……当然,我已经检查过几次了,应该没问题哈。
    PINGms
        14
    PINGms  
    OP
       2018-07-07 10:02:49 +08:00
    @lniwn 反馈已经收到,正在研究……
    misaka19000
        15
    misaka19000  
       2018-07-07 10:12:02 +08:00
    背景全绿。。。盯着看了会延时信息之后再看其他页面感觉有点眼花
    PINGms
        16
    PINGms  
    OP
       2018-07-07 11:45:40 +08:00
    @misaka19000 晕倒……因为这个工具运行需要时间嘛,当时搞这个颜色就是为了眼睛轻松点,然后自我感觉良好……请问什么背景颜色更好呢?(现在仍然觉得这个颜色不错,眼睛很放松呀)
    lhx2008
        17
    lhx2008  
       2018-07-07 11:56:48 +08:00
    可以弄成多线程的吗,太慢了
    PINGms
        18
    PINGms  
    OP
       2018-07-07 12:59:13 +08:00
    @lhx2008 收到反馈(已经有几个人提到这件事情)是的,可以弄成“多线程”加快测试速度,主要的顾虑是:是否会影响精度?“抖动”(网络和浏览器的不稳定性)是否加大?作为测量工具,精确的结果永远是最重要的。
    lhx2008
        19
    lhx2008  
       2018-07-07 13:09:31 +08:00
    @PINGms 你可以用假设检验的方法,在多机上进行多次实验。看看影响是否在可接受范围内
    huyudong1991
        20
    huyudong1991  
       2018-07-07 13:14:53 +08:00 via Android
    感谢,非常需要且好用
    xxxxxshuai0
        21
    xxxxxshuai0  
       2018-07-07 13:14:56 +08:00 via Android
    赞一个,star 走起:)
    atlantis
        22
    atlantis  
       2018-07-07 13:19:07 +08:00
    楼主要是能把搬瓦工加进来就更好了
    inhzus
        23
    inhzus  
       2018-07-07 13:24:07 +08:00 via Android
    ping 不通就就卡在那儿了。。可以考虑设置一个 timeout ?(也有可能是我电脑问题的吧
    syahd
        24
    syahd  
       2018-07-07 13:35:48 +08:00 via Android
    但是 ping 不是服务器连接稳定性的唯一的标准啊,如果能加上文件下载上传测试,或者长时间 ping (几分钟)就好了
    PINGms
        25
    PINGms  
    OP
       2018-07-07 13:37:01 +08:00
    @huyudong1991 多谢夸奖 :-)
    PINGms
        26
    PINGms  
    OP
       2018-07-07 13:37:21 +08:00
    @xxxxxshuai0 多谢支持!
    PINGms
        27
    PINGms  
    OP
       2018-07-07 13:42:00 +08:00
    @atlantis 唉,“搬瓦工”有个麻烦事:他们官方没有测速地址……

    能找到的最好的列表是:
    https://www.bandwagonhost.net/test-ip

    这东西看起来不专业呀:都是 IP 地址,而且首页( http://IP/)是“ Forbidden ”所以就没弄了。
    PINGms
        28
    PINGms  
    OP
       2018-07-07 13:50:22 +08:00
    @inhzus 反馈已经收到。虽然我没有遇到“卡在那儿了”……这东西是不会“卡死”的(使用了“ img.onerror ”),等待一下就会过去……“设置一个 timeout ”是个好办法……这应该是网络问题,不是“电脑问题”。
    PINGms
        29
    PINGms  
    OP
       2018-07-07 13:51:59 +08:00
    @whwq2012 哥们,这东西不能测试“稳定性”的。
    PINGms
        30
    PINGms  
    OP
       2018-07-07 14:01:25 +08:00
    @lhx2008 是呀,需要很多测试研究,最担心的问题:几个线程一起跑,有可能“抖动”( JS 测量时间不准确了,网络不稳定了……特别是手机……台式电脑和光纤应该没有问题)。
    CloudnuY
        31
    CloudnuY  
       2018-07-07 16:05:10 +08:00
    单线程还是有些慢,我通常手机 VPS 测速地址然后用 fping 命令批量测,结果也可以,还能大致测到丢包率
    xiaolanger
        32
    xiaolanger  
       2018-07-07 16:28:25 +08:00
    如果多线程担心稳定的话,加一个点哪个测哪个的功能吧?
    mhycy
        33
    mhycy  
       2018-07-07 17:10:20 +08:00
    可惜,这些服务商的测速节点都是优化过的
    BitBoX
        34
    BitBoX  
       2018-07-07 18:07:34 +08:00
    界面比以前好看多了。
    daocheng
        35
    daocheng  
       2018-07-07 18:16:52 +08:00
    是否丢包是个重点,能显示丢包的数据吗
    PINGms
        36
    PINGms  
    OP
       2018-07-07 18:45:25 +08:00
    @CloudnuY 确实整个过程速度偏慢,但是稳妥呀……正在研究 fping ……
    PINGms
        37
    PINGms  
    OP
       2018-07-07 18:47:35 +08:00
    @xiaolanger 收到反馈,确实可以添加“点哪个测哪个”,重点反复测试某个服务器。
    Tink
        38
    Tink  
    PRO
       2018-07-07 18:53:03 +08:00 via iPhone
    能支持 tcping 就好了,这个 ping 速度说明不了问题
    Tink
        39
    Tink  
    PRO
       2018-07-07 18:54:13 +08:00 via iPhone
    另外能不能自定义添加云服务商?
    PINGms
        40
    PINGms  
    OP
       2018-07-07 18:55:06 +08:00
    @mhycy 最好“都是优化过的”这样就等于没有优化了,因为最主要的是速度排名 :-) 排名仅仅针对每个云服务内部几个节点(没有云服务的排名)。
    PINGms
        41
    PINGms  
    OP
       2018-07-07 18:56:14 +08:00
    @BitBoX 这个都是 @codehz 的功劳啦。
    PINGms
        42
    PINGms  
    OP
       2018-07-07 19:00:23 +08:00
    @daocheng 目前没有这个功能,只有“毫秒数值”。
    PINGms
        43
    PINGms  
    OP
       2018-07-07 19:04:39 +08:00
    @Tink 这个就是走的 TCP 呀( HTTP )。目前的 UI 没有“自定义添加云服务商”功能,啊,是根本就没有用户输入功能。
    B1ock
        44
    B1ock  
       2018-07-07 19:18:56 +08:00
    这是双程的吧...
    quickma
        45
    quickma  
       2018-07-07 20:18:08 +08:00
    ping 无法说明真实速度,真正的速度全看缘份
    wzy44944
        46
    wzy44944  
       2018-07-07 21:14:42 +08:00
    最好加上大包 ping,或者测试上传下载速度。单纯 ping 代表不了网络质量好的时候的优劣
    seiuneko
        47
    seiuneko  
       2018-07-07 21:58:20 +08:00
    @PINGms #5 兼容性方面会有什么问题呢 抱歉 对前端不是太了解
    Pythondr
        48
    Pythondr  
       2018-07-07 22:04:23 +08:00 via Android
    有点儿意思
    Livid
        49
    Livid  
    MOD
    PRO
       2018-07-07 22:13:02 +08:00 via Android
    很不错的工具,丢掉第一个结果是一种很专业的做法,赞
    kY8mbXW833Lu28xn
        50
    kY8mbXW833Lu28xn  
       2018-07-07 22:53:01 +08:00
    有没有打算把国内的也搞上?
    PINGms
        51
    PINGms  
    OP
       2018-07-07 22:56:40 +08:00
    @B1ock 是的,一个来回的时间,而且故意请求“ 404 ”页面(数据的大小几乎一模一样)。
    PINGms
        52
    PINGms  
    OP
       2018-07-07 23:01:32 +08:00
    @x7395759 不能同意你的说法,ping 的毫秒数值直接影响速度……是主要因素,不是唯一因素。
    MOmc
        53
    MOmc  
       2018-07-07 23:02:55 +08:00 via iPhone
    Mark !!!
    PINGms
        54
    PINGms  
    OP
       2018-07-07 23:03:13 +08:00
    @wzy44944 是呀,我也有想法搞“上传下载速度”的功能……
    PINGms
        55
    PINGms  
    OP
       2018-07-07 23:04:28 +08:00
    @F0nebula 很简单啦:“古董设备”上面长条不见了。
    PINGms
        56
    PINGms  
    OP
       2018-07-07 23:05:31 +08:00
    @Pythondr 多谢夸奖。
    PINGms
        57
    PINGms  
    OP
       2018-07-07 23:13:48 +08:00
    @Livid 多谢夸奖,得到你的点赞是很大的荣幸。
    PINGms
        58
    PINGms  
    OP
       2018-07-07 23:17:26 +08:00
    @1024MB 有这个打算,这个要做许多改动添加一大堆的云服务,肯定要用户选择“测试目标”,全部测试一遍太夸张了。
    edsheeran
        59
    edsheeran  
       2018-07-08 05:28:25 +08:00 via iPhone
    @x7395759 ping 是 ping,速是速,西
    seiuneko
        60
    seiuneko  
       2018-07-08 08:54:17 +08:00
    @PINGms #55 可是颜色渐变真的非常漂亮而且直观呢
    至于古董设备的兼容性问题 相信 pingms 用户的浏览器应该是最新版的吧
    blueshark
        61
    blueshark  
       2018-07-08 11:52:12 +08:00
    不支持 IP 地址格式吗?
    PINGms
        62
    PINGms  
    OP
       2018-07-08 12:40:36 +08:00
    @edsheeran 我不知道怎么解释了,就说一点吧:ping 直接反映网络质量。
    PINGms
        63
    PINGms  
    OP
       2018-07-08 12:48:28 +08:00
    @F0nebula 唉,就是不知道呀……根本不知道 pingms 用的什么浏览器(没有统计),所以做法有些保守了。
    PINGms
        64
    PINGms  
    OP
       2018-07-08 12:49:59 +08:00
    @blueshark 支持 IP 的测试地址,修改代码就可以了。
    seiuneko
        65
    seiuneko  
       2018-07-08 14:48:45 +08:00
    @PINGms #63 那可否加一个选项?
    edsheeran
        66
    edsheeran  
       2018-07-08 18:14:08 +08:00 via iPhone
    @PINGms 你回覆人了吧
    ltq918
        67
    ltq918  
       2018-07-09 00:34:37 +08:00
    同卡在那,DigitalOcean 反复卡住,状态一直是 pending
    xuanliang
        68
    xuanliang  
       2018-07-09 00:46:32 +08:00
    需要 ICMP Ping,TCP Ping 探测延迟。可以试试我们做的 https://cloudping.accesshub.cn

    支持 15 个公有云服务商 125 个可用区,提供 API 接口。
    ltq918
        69
    ltq918  
       2018-07-09 00:46:41 +08:00
    好吧,这一个 pending 卡了 8.3 分钟,然后又来了一个 ...
    lovelinghan
        71
    lovelinghan  
       2018-07-09 14:37:05 +08:00
    mark
    PINGms
        72
    PINGms  
    OP
       2018-07-09 14:39:49 +08:00
    @F0nebula 是的,最好是做成自动检查浏览器版本,自动判断。
    PINGms
        73
    PINGms  
    OP
       2018-07-09 14:42:43 +08:00
    @ltq918 这不科学呀…… bug 已经收到……这些地址都没有被“墙”,怎么会搞到“ 8.3 分钟”,晕倒。
    PINGms
        74
    PINGms  
    OP
       2018-07-09 14:52:55 +08:00
    @edsheeran “尴尬而不失礼貌的微笑”……
    ltq918
        75
    ltq918  
       2018-07-09 15:04:27 +08:00 via iPhone
    @PINGms 只要卡住就是 8.3 分钟,只在 DigitalOcean 遇到
    PINGms
        76
    PINGms  
    OP
       2018-07-10 14:10:41 +08:00
    @ltq918 收到,这个“检测超时”的功能有点麻烦:代码很容易写,测试不好搞。测试的时候,需要倒腾一个反应特别慢的服务器,查看代码是否运行正常……然后我这边没有“稳定特别慢”的服务器,别说“ 8.3 分钟”,顶多 5 秒钟就出来了。
    ltq918
        77
    ltq918  
       2018-07-10 16:31:59 +08:00
    @PINGms 用 php sleep() 一下呢
    codehz
        78
    codehz  
       2018-07-10 20:14:59 +08:00
    @PINGms #63 我看了一下,其实你直接把那里 background 改成 rgb(calc(var(--delay) / var(--max-delay) * 200), calc(255 - var(--delay) / var(--max-delay) * 128), 0); 应该就可以了。。。不用 linear-gradient 的话应该有足够的兼容性
    PINGms
        79
    PINGms  
    OP
       2018-07-11 09:29:13 +08:00
    @ltq918 已经搞定了,现在超过六秒,就会认为超时,进入下一个任务,百分之百不会卡死了。有一个暴力的测试方法,直接去掉“加载测试目标”(注释掉那一行),测试永远都超时 :-)
    PINGms
        80
    PINGms  
    OP
       2018-07-11 09:45:10 +08:00
    @codehz 收到,认真测试了,古董小米 Android 7 上面还是没有长条 :-/
    codehz
        81
    codehz  
       2018-07-11 09:49:51 +08:00
    @PINGms #80 不对啊,按道理 var 都支持了,没道理拼接一个 rgb 会炸。。。不如做个 Fallback,写两行,前面一行用固定值,后面一行用动态的,这样就可以解决了
    PINGms
        82
    PINGms  
    OP
       2018-07-11 22:42:28 +08:00
    @codehz 多谢指点,“ fallback ”确实是个好办法!
    chuanqirenwu
        83
    chuanqirenwu  
       2018-07-12 09:14:53 +08:00
    你的域名被标记为假冒平安银行的网站
    PINGms
        84
    PINGms  
    OP
       2018-07-12 11:42:44 +08:00
    @codehz 不灵光呀,目前测试结果是“ fallback ”不顶用 :-/
    PINGms
        85
    PINGms  
    OP
       2018-07-12 11:46:00 +08:00
    @chuanqirenwu Chrome/Firefox/iPad/小米都正常,然后我打开了 360 浏览器……终于重现了你说的问题……已经发送消息给 360 了,希望他们会处理吧。
    codehz
        86
    codehz  
       2018-07-12 11:47:43 +08:00
    @PINGms #84 你怎么写的
    PINGms
        87
    PINGms  
    OP
       2018-07-12 12:57:44 +08:00
    @codehz 代码是:

    background: DarkOliveGreen;
    background: rgb(calc(var(--delay) / var(--max-delay) * 200), calc(255 - var(--delay) / var(--max-delay) * 128), 0);

    测试:Chrome/Firefox 正常,“古董设备”( Android 7.1.2 MIUI 9.5 )没有“长条”。真的很头痛……
    codehz
        88
    codehz  
       2018-07-12 13:00:07 +08:00
    也许可以根据 UA 直接替换实现,看看 miui 的 ua 是啥,在 js 里把 miui 全部用 fallback 的样式替换掉好了
    PINGms
        89
    PINGms  
    OP
       2018-07-12 14:46:15 +08:00
    @codehz 哥们,这样弄不太好吧,还有其他品牌的“古董设备”呀。
    PINGms
        90
    PINGms  
    OP
       2018-07-12 14:48:02 +08:00
    @chuanqirenwu 已经搞定,请再次测试一下。给 360 点赞,反应速度真的很快。
    codehz
        91
    codehz  
       2018-07-12 14:50:20 +08:00
    @PINGms #89 或者那不显示色条就好了阿。。。反正又不是必备的。。。
    PINGms
        92
    PINGms  
    OP
       2018-07-12 15:39:41 +08:00
    @codehz 个人觉得还是要照顾“古董设备”没有“长条”很难看的,一大块的空白。
    Level6
        93
    Level6  
       2018-07-12 19:26:56 +08:00 via iPhone
    PINGms
        94
    PINGms  
    OP
       2018-07-13 10:17:01 +08:00
    @Level6 收到,多谢反馈。目前我这边不能重现这个问题,正在调查……
    raopeize
        95
    raopeize  
       2018-07-13 19:58:59 +08:00
    收藏
    artandlol
        96
    artandlol  
       2018-07-14 08:39:02 +08:00 via iPhone
    有没有 vps 到世界各地的 curl 版
    PINGms
        97
    PINGms  
    OP
       2018-07-14 11:36:04 +08:00
    @raopeize 多谢支持!
    PINGms
        98
    PINGms  
    OP
       2018-07-14 11:37:22 +08:00
    @artandlol 这个只是“ HTTP ping ”。
    PINGms
        99
    PINGms  
    OP
       2018-07-14 12:05:58 +08:00
    @codehz 已经搞定兼容性了,颜色特效在“古董设备”上面正常显示。方法是 JS 计算颜色的数值,然后传递给 CSS。
    yuhuigreed
        100
    yuhuigreed  
       2018-07-14 17:52:45 +08:00 via iPhone
    @Level6 同样这个提示
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2595 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 04:49 PVG 12:49 LAX 21:49 JFK 00:49
    Do have faith in what you're doing.
    ubao 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