DevTrends开发者趋势
主题色

nanmuyao-tools /

ghostwire

做了一个小工具,解决一个很具体的问题:你的程序会 ping 服务器、连数据库、解析域名,然后根据结果做决策——选最快的节点、重试、故障切换、显示"离线"。测试这些逻辑,需要网络在你想要的时刻变慢、变通或者直接不可达,而且要能复现。 ghostwire 用一个 TUN 设备接管你指定的地址段,程序完全不用改代码——不管它是跑 `ping` 命令还是自己发原始 ICMP 包,都能被模拟。规则按地址/端口设置,运行中可以用 HTTP API …

语言GoDT数据与运维DT软件开发DT命令行工具DTLinuxDT终端原始golang原始icmp原始latency原始mock原始network-simulation原始ping原始testing

关于

做了一个小工具,解决一个很具体的问题:你的程序会 ping 服务器、连数据库、解析域名,然后根据结果做决策——选最快的节点、重试、故障切换、显示"离线"。测试这些逻辑,需要网络在你想要的时刻变慢、变通或者直接不可达,而且要能复现。 ghostwire 用一个 TUN 设备接管你指定的地址段,程序完全不用改代码——不管它是跑 `ping` 命令还是自己发原始 ICMP 包,都能被模拟。规则按地址/端口设置,运行中可以用 HTTP API 实时改,还支持设随机种子让结果可复现。 ```bash ghostwire exec -rule 10.99.0.1=50ms -rule 10.99.0.2=unreachable -- ./my-app ``` 对比 `tc netem`:它是按网卡整形,这个是按目标地址;对比 Toxiproxy:它是 TCP 代理需要改程序指向,这个是透明的,程序不用做任何改动。 Go 写的,依赖只有标准库加一个 YAML 解析库,`exec` 模式不需要 root 。有中英双语文档。欢迎试用和提意见: https://github.com/nanmuyao-tools/ghostwire

收录记录

  1. V2EX·分享创造

    2026年11月1日 · 1 次收录

讨论这个产品