backtrace

August 26, 2026 · View on GitHub

Hits Downloads

Build and Release

三网回程路由线路测试

路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考

功能

  • 检测回程显示IPV4/IPV6地址时的线路(使用1500字节的包),不显示IP地址时显示ASN检测不到
  • 支持对99294837163线路的判断
  • 支持对CTGNETCN2GIACN2GT线路的判断
  • 支持对CMIN2CMI线路的判断
  • 支持对整个回程路由进行线路分析,一个目标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 禁用回退,dohdot 可显式强制相应协议;不会修改 /etc/resolv.conf/etc/hosts 或其他系统配置。

概览图

图片

图片

图片

Thanks

部分代码基于 https://github.com/zhanghanyun/backtrace 的重构和优化,与原版存在很大不同

IPV4/IPV6可ICMP进行ping测试的 https://github.com/spiritLHLS/icmp_targets 收集仓库