Appearance
节点写着 BGP / 专线,怎么自己验一遍
节点名里的「BGP」「IEPL」「专线」是销售文案,不是路由表。广州到香港直线大约 130 公里,物理延迟该在 5–15ms;我测过名叫「香港 BGP」的节点,解析到香港 AWS,路由却先绕新加坡,ICMP 已经 115ms。标签和包走的路可以完全不是一回事。
2026-02 我在广州用电信、联通、移动出口,按同一套步骤核过一批节点。这篇把当时用的方法和判据收成清单。商家名、域名、入口 IP 不写。文里的数字只说明「这类路径大概长什么样」,不是现在还能买到的成绩。
从 VPS 看出网回程(CN2 / 163 那些)是另一件事,清单在 新 VPS 验收 第 3 节。这篇是反过来:从你这边看客户端配置里的 server,它到底是海外机器本身,还是国内入口。
1. 先分清三种东西
客户端配置里的 server(域名或 IP)是你 TCP/UDP 真正连上的那一台。三种常见情况:
| 类型 | server 解析到哪 | 路由看起来怎样 | 标签常怎么写 |
|---|---|---|---|
| 直连 | 海外 VPS / 云主机 | 出运营商国际口,可能绕路 | 也有人标 BGP、专线 |
| BGP 中转 | 中转机房(常见香港) | 先到中转,再到落地 | BGP、中转 |
| 国内入口(IEPL / IPLC / 同类专线) | 国内 IP | 到入口全程在境内闭合 | IEPL、IPLC、专线 |
专线的跨境段走运营商私网,公网 traceroute 看不到香港以后的跳。所以:
- 解析到国内、到入口不跨境:只能核实「入口在国内」
- 核实不了私网那一段到底是 IEPL、IPLC,还是别的专线
- 入口对了,落地质量仍要靠走代理之后的延迟和速度,ICMP 到不了落地
「BGP」本身只表示中转机房有多线接入,不保证你走 CN2,更不保证入口在国内。解析到香港 AWS、路由出 163,那就只是直连。
2. 测之前先把 Fake-IP 拿掉
Clash / Mihomo 一类客户端开了 Fake-IP 或 TUN 时,本机 dig、ping、traceroute 看到的经常是 198.18.x.x 这种假地址。那是客户端的劫持,不是节点。
测 DNS 和路由时:
- 关掉系统代理、TUN、Fake-IP
- DNS 不要走本机 stub,改用 DNS-over-HTTPS(下面用 Cloudflare)
- traceroute 要对 解析出来的真实 IP 打,不要对
198.18.0.1
配置里直接写了公网 IP、没有域名,跳过解析,仍要关 TUN 再 traceroute,否则第一跳就进虚拟网卡,后面全废。
3. 四步
配置里抠出 server → DoH 拿真实 IP 和 CNAME → 查归属 → nexttrace速度测试是第五步,可选,见第 6 节。前四步已经够判断标签有没有在撒谎。
3.1 从配置拿出 server
YAML 里找 server / servername(后者常是 TLS SNI,不是入口)。要解析、要 trace 的是 server 这一列。同一批节点去重之后,名字可以有几十个,真实入口往往只有几个 IP。
3.2 DNS-over-HTTPS
dig 会吃 Fake-IP,DoH 不会。Cloudflare 的 JSON 接口:
bash
# 把 NODE_HOST 换成配置里的 server 域名
curl -s "https://1.1.1.1/dns-query?name=NODE_HOST&type=A" \
-H "accept: application/dns-json" | python3 -c "
import sys, json
d = json.load(sys.stdin)
for a in d.get('Answer', []):
print(f\"Type:{a.get('type')} -> {a['data']}\")"Type:5 是 CNAME,Type:1 是 A 记录。CNAME 链留着,第 3.5 节用。
一批域名可以套个循环:
bash
DOMAINS=("node-a.example.com" "node-b.example.com")
for domain in "${DOMAINS[@]}"; do
IP=$(curl -s "https://1.1.1.1/dns-query?name=$domain&type=A" \
-H "accept: application/dns-json" | python3 -c "
import sys, json
d = json.load(sys.stdin)
ans = d.get('Answer', [])
parts = [a['data'] for a in ans if a.get('type') in (1, 5)]
print(' | '.join(parts) if parts else 'NXDOMAIN')")
echo "$domain -> $IP"
done3.3 IP 归属
bash
curl -s "https://ipinfo.io/IP_ADDRESS"看 country、org、asn。这一步只回答:这是不是国内入口。
- 中国大陆 ASN(电信 AS4134、移动 AS9808 这类)→ 国内入口候选
- 香港 / 海外云(AWS、GCP、Oracle、常见香港机房 ASN)→ 不是国内入口
- Cloudflare
104.18.x.x/104.19.x.x→ Anycast CDN,既不是专线入口,也不是它名字里写的那个国家
归属是国内,还没完,得看路由是不是真在境内闭合。归属是海外,基本就可以排除 IEPL/IPLC。
3.4 nexttrace
工具和 VPS 验收那篇一样,nexttrace(开源,github.com/nxtrace/NTrace-core)。需要 root。ICMP 被滤再改 TCP:
bash
# 安装见官方脚本: curl -sL https://nxtrace.org/nt | bash
# 必须关掉 TUN / 系统代理
sudo nexttrace TARGET_IP # ICMP,先试这个
sudo nexttrace -T TARGET_IP # ICMP 被滤再用 TCP
sudo nexttrace -q 1 -n TARGET_IP # 少探针、不反解,输出干净一点盯三件事:有没有出到国外、中间有没有明显绕路、最后一跳可见延迟。
国内入口:全程省内或境内,广州打广东入口常见个位数到十几毫秒。 直连香港却先出现新加坡、东京,再回到香港:绕路。物理上不该那么走。
中间跳 * 很常见,尤其专线入口之后。以最后还能看见的那一跳为准,别被星星吓到。
3.5 CNAME 链
很多入口不会直接给 A 记录,而是一层或多层 CNAME。主机名里偶尔能看到运营自己的分类,比如带 iepl、iplc、bgp、gtm、ct(电信)、cm(移动)。
这只能当旁证。CNAME 写 iepl 不证明私网段真是 IEPL;但同一批域名如果收束到少数几条 CNAME,再落到少数几个 A 记录,说明「一百个节点」多半是同一批入口做端口映射。去重看 IP,别数名字。
换 DNS 再解析一次同一个名字(国内 114、海外 8.8.8.8、以及你当前运营商的本地 DNS)。结果不一样,就是 GeoDNS / GTM,第 5.3 节。
4. 骨干网怎么认
去程里这些前缀出现得多。和 VPS 验收里的回程 是同一套东西,只是方向反了:
| IP 段 | 运营商 | 骨干 | 质量 |
|---|---|---|---|
202.97.x.x | 电信 | 163 | 普通国际口,晚高峰容易堵 |
59.43.x.x | 电信 | CN2 (AS4809) | 相对好 |
219.158.x.x | 联通 | 169 (AS4837) | 普通 |
223.120.x.x | 移动 | CMI 国际 (AS58453) | 出国常见,质量看具体落地 |
路径里长时间停在 202.97 再出国,按普通直连对待,不管节点名叫什么。出现 59.43 只说明这一段走了 CN2,不自动等于「BGP 中转」或「专线」。
5. 三个对照(2026-02,广州)
数字来自当时一次测试,用来认形状。换一天、换接入、换对端,绝对值会变。
5.1 名叫 BGP,其实是直连
节点名带「香港 BGP」。DoH 解析到香港 AWS,不是国内地址。
广州电信 → 202.97(163)→ 新加坡 → 香港 AWS
约 4ms → 4ms → 94ms → 115ms广州到香港不该是 115ms,也不该途经新加坡。同批「日本 BGP」走 163 出国,代理握手 RTT 已经 150–200ms;真有一条靠谱中转到日本,用户侧常见大概 50–80ms 这个量级(经验范围,不是承诺)。
同名系列里还有解析到 Cloudflare Anycast 的:到香港 CF POP 可以只有十几毫秒,但那是 CDN 边缘,不是落地机房。Workers / 回源还要再跳一次,体感延迟另算。
判据:海外云 ASN + 公网国际口 + 绕路 → 直连。前面加「BGP」两个字没有对应基础设施。
5.2 名叫 IEPL,入口确实在省内
节点名带 IEPL。解析到广东电信 / 移动,不是香港。
广州电信 → 省网 → 广东某市电信入口
约 4ms → 8ms → 9–13ms
全程省内,没有国际跳到入口 9–13ms,和广州到香港该有的物理延迟同量级,但这是到省内机房,不是到香港。入口之后公网 traceroute 结束,跨境段在私网上,从用户侧看不见。
所以能写进结论的是:「国内入口是真的,到入口不跨境」。不能写:「我用 traceroute 证明了这是 IEPL」。IEPL / IPLC 的差别在运营商产品和合约,不在这几跳 ICMP 上。
同批里没有 IEPL 标签的节点,解析到另一组省内移动地址,延迟也是十几毫秒。那是普通国内中转入口,不是专线。标签有无,要靠解析和路由对,不能只看名字。
再有一组直接解析到海外 AWS,延迟和速度按直连算。同一份配置里三种入口并存很常见:专线、普通中转、下载用直连。
5.3 同一个域名,电信和移动不是同一个入口
有的名字会按 ISP 做 GeoDNS。当时同一批域名:
| 你的出口 | 解析到的入口 | 到入口 ICMP | 走代理后香港方向下载(量级) |
|---|---|---|---|
| 电信 | 省内电信 | ~8ms | ~68 MB/s |
| 移动家宽 | 省内移动或香港中转 | ~14–50ms | ~27 MB/s |
CNAME 主机名里能看到 ct 这类电信标记,换 8.8.8.8 又落到另一组电信地址。三条接入测下来是三组 IP。
所以单线测一次不够。家宽移动测得差,可能是分到了差入口,不代表电信用户也差;反过来也成立。换接入、换 DNS 再解析一遍,比多测几个节点名有用。
基础设施也会整批换。同一套方法,隔天入口 ASN 全换了的情况我碰到过。结论要写测试日期和出口类型,别当永久标签。
6. 两套延迟,别混
| 你看的数字 | 测到哪 | 典型工具 |
|---|---|---|
| ICMP / TCP traceroute RTT | 到 server 这台入口 | nexttrace、ping、mtr |
| 代理握手 / 应用 RTT | 进隧道之后整条链路 | 客户端延迟、走代理的测速 |
后者一定更大,因为它含协议握手、落地、再访问测速源。用 Clash 测速看到日本 180ms、nexttrace 到入口只有 12ms,两者可以同时成立:入口在国内,落地在日本。
「专线」节点未必更快。同区域里,Hysteria2 标专线、VLESS 标高速,速度完全可以倒过来。那只是换了协议,路可能是同一条。比速度之前先比第 3 节的解析和路由,确认是不是同一入口。
走代理测吞吐,得让测速工具自己建连,别套在已经开着的系统代理外面。节点在本地 Clash / Mihomo YAML 里的话,可以用 clash-speedtest(开源,github.com/faceair/clash-speedtest):
bash
# 关 TUN、关系统代理
clash-speedtest -c ./config.yaml测的是代理链路,不是入口 ICMP。单次 50MB、超时几秒,只能当抽样。晚高峰和午后可以差一截,要下结论就换时段再来。
看入口稳不稳,直接 ping server 的真实 IP 即可(国内入口才有意义;海外直连 ping 的是 VPS 本身):
bash
ping -c 20 TARGET_IP要覆盖晚高峰,把间隔拉长、挂几小时,看超时比例和延迟分位。一次性测速看不出超售。
7. 一页速查
| 步骤 | 命令 | 看什么 |
|---|---|---|
| 关劫持 | 关 TUN / 系统代理 / Fake-IP | dig 不再返回 198.18.x.x |
| DoH | curl https://1.1.1.1/dns-query?name=... | A 记录 + CNAME |
| 归属 | curl https://ipinfo.io/IP | 国内 ASN vs 海外云 vs Cloudflare |
| 路由 | sudo nexttrace IP | 是否出境、是否绕路、到入口延迟 |
| 换 DNS | 114 / 8.8.8.8 / 当前 ISP | 是不是 GeoDNS |
| 去重 | 按 IP 不按节点名 | 多少个入口,不是多少个名字 |
| 代理 RTT / 速度 | 客户端或 clash-speedtest -c config.yaml | 和 ICMP 分开记录 |
红线(经验,不是合同):
- 名叫香港、解析到海外云、广州 ICMP 已经 >80ms 还绕第三地 → 当直连,别信 BGP
- 名叫专线 / IEPL,解析却在海外 → 标签当没写
- 解析在国内、路由出境 → 归属和路由打架,重测;仍打架就不要当专线入口
- 解析在国内、路由省内闭合、到入口 <20ms(同省)→ 国内入口成立;跨境段类型另说
- Cloudflare Anycast → 按 CDN 中继,不按名字里的国家
8. 这套方法做不到的
- 证明私网跨境段是 IEPL 还是 IPLC。用户侧没有那张合约。
- 代替落地机房的质量。入口好,落地可以是一台很差的 VPS。
- 预测晚高峰。要自己挂采样。
- 跨 ISP 通用。GeoDNS 会按出口给你不同入口。
- 长期有效。入口 IP 和 CNAME 会换。
能做的只有一件事:在你当前的出口上,判断这个 server 是海外机器、境外中转,还是国内入口。标签跟这三条对不上,就当文案。