backtrace
August 26, 2026 · View on GitHub
三网回程路由线路测试
路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考
功能
- 检测回程显示IPV4/IPV6地址时的线路(使用1500字节的包),不显示IP地址时显示ASN检测不到
- 支持对
9929、4837和163线路的判断 - 支持对
CTGNET、CN2GIA和CN2GT线路的判断 - 支持对
CMIN2和CMI线路的判断 - 支持对整个回程路由进行线路分析,一个目标IP可能会分析出多种线路
- 支持对主流接入点的线路检测,方便分析国际互联能力
- 多次并发路由检测以分析平均多次路由,避免单次路由因网络波动未能准确检测
- 增加对全平台的编译支持,原版backtrace仅支持linux平台的amd64和arm64架构
- 兼容额外的ICMP地址获取,若当前目标IP无法查询路由尝试额外的IP地址
- 在线但本地 DNS 确认缺失时,在当前进程内使用经过固定地址 TLS 查询校验的最快 DoH/DoT 上游;瞬时超时、SERVFAIL 或丢包不会切换系统解析
相关输出和查询结果的说明:跳转
使用
下载、安装、更新
curl https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh -sSf | bash
或
curl https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh -sSf | bash
使用
backtrace
或
./backtrace
进行测试
无环境依赖,理论上适配所有系统和主流架构,更多架构请查看 https://github.com/oneclickvirt/backtrace/releases
Usage: backtrace [options]
-h Show help information
-ip string
Specify IP address for bgptools
-ipv6
Enable ipv6 testing
-dns-mode string
DNS mode (auto, system, doh, or dot) (default "auto")
-log
Enable logging
-s Disabe show ip info (default true)
-v Show version
卸载
rm -rf /root/backtrace
rm -rf /usr/bin/backtrace
在Golang中使用
go get github.com/oneclickvirt/backtrace@v0.0.21
DNS 解析回退
-dns-mode=auto 是默认值。它会先保留系统 DNS,只有独立探测都确认本地解析器不可用时,才在本次进程内启用内置加密 DNS,并选择实测延迟最低的 DoH 或 DoT 上游。正常响应、NXDOMAIN、短暂超时、SERVFAIL 和丢包都不会被误判为 DNS 缺失。system 禁用回退,doh 和 dot 可显式强制相应协议;不会修改 /etc/resolv.conf、/etc/hosts 或其他系统配置。
概览图
Thanks
部分代码基于 https://github.com/zhanghanyun/backtrace 的重构和优化,与原版存在很大不同
IPV4/IPV6可ICMP进行ping测试的 https://github.com/spiritLHLS/icmp_targets 收集仓库