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