零成本的 cf-vless 美国节点能做到什么程度?edgetunnel + 优选 IP + ProxyIP 三版实测
开发实践
要点 一分钱不花,用 Cloudflare Workers 跑 edgetunnel,就能得到一个能用的美国节点。cleanip.io 给出口 IP 打了 75 分(B 档),归属是美国弗吉尼亚州雷斯顿,属于原生 IP。
一句话结论:一分钱不花,用 Cloudflare Workers 跑 edgetunnel,就能得到一个能用的美国节点。cleanip.io 给出口 IP 打了 75 分(B 档),归属是美国弗吉尼亚州雷斯顿,属于原生 IP。 对一个免费方案来说,这个成绩不错。它的局限也很清楚:出口是 Cloudflare 自己的 104.28.x 机房 IP,而且每建一条连接就会换一个。想要固定、干净的美国 IP,下一步要接 SOCKS5 落地。
下面是我 2026-10-20(太平洋时间)实际做过的三版:
- v1 默认配置:Worker 域名直连,ProxyIP 用项目默认值;
- v2 固定 ProxyIP:客户端路径里指定一个固定的 ProxyIP;
- v3 优选 IP:用 CloudflareSpeedTest 挑一个 Cloudflare 入口 IP,填进客户端。
文中所有密钥都用占位符:<UUID>、<ADMIN>、<WORKER_HOST>(你自己的 Worker 域名)。
1. 原理:一个 cf-vless 节点有两条出口线路
edgetunnel(https://github.com/cmliu/edgetunnel )把 VLESS over WebSocket 跑在 Cloudflare Workers 上。客户端先连到 Cloudflare 的边缘节点(入口),Worker 再用 connect() 去连目标网站(出口)。
这里有一个很多人没注意的点。@ygkkkg 的帖子讲得很清楚:
ProxyIP → 负责 CF 网站……优选 IP → 负责非 CF 网站……一个VPN节点,两条线路彼此独立,并不是所有网站都走同一个 IP。 —— https://x.com/ygkkkg/status/2107024669698330950
- 访问普通网站(Google、YouTube、ipinfo、cleanip 等,不托管在 Cloudflare 上):Worker 直接连过去,对方看到的是 Cloudflare 的出口 IP。我实测都是 104.28.x,AS13335。
- 访问托管在 Cloudflare 上的网站(X、ChatGPT、cloudflare.com 等):Workers 不能用
connect()连 Cloudflare 自己的 IP,edgetunnel 会改走 ProxyIP。ProxyIP 是一台把 443 端口转发到 Cloudflare 的机器,这类网站看到的出口就是这台机器的 IP。 - 优选 IP 改的是「客户端 → Cloudflare 入口」这一段:入口换成延迟低、速度快的 Cloudflare IP,SNI 和 Host 不变。
@ygkkkg 在另一条帖子里还说,用优选 IP 的时候,出口「落地显示104.28开头,IP后缀在几秒内会不停变化,但国家地区不变」(https://x.com/ygkkkg/status/2101595720700584411 ,引用的文章:https://x.com/ygkkkg/status/2101288958403768716 )。下面的实测和这个说法一致。
2. 部署 edgetunnel 到 Workers
2.1 准备
- 一个 Cloudflare 免费账号。建议单独注册一个,不要和正式网站放在同一个账号。把 Workers 当通用代理用不符合 Cloudflare 条款的本意,账号被限制时会连带同账号下的其他站点。
- 客户端我用的是 sing-box 1.14.3。v2rayN、mihomo、Shadowrocket 也可以。
2.2 生成密钥
mkdir -p ~/cf-vless && cd ~/cf-vless && umask 077
python3 -c "import uuid,secrets;print(f'UUID={uuid.uuid4()}\nADMIN={secrets.token_urlsafe(24)}')" > secrets.env
chmod 600 secrets.envUUID 要用 UUIDv4 格式。ADMIN 是后台密码,同时也是代理功能的开关,必须设置。
2.3 拿源码
git clone https://github.com/cmliu/edgetunnel.git && cd edgetunnel
git checkout a8ab11125ece9bc27983f609a6359be81b21050c # 我用的版本:2026-10-08 22:23:272.4 部署
用 wrangler 最简单:
npx wrangler login
# wrangler.toml 里 name = "<WORKER_NAME>"
npx wrangler deploy
echo "<UUID>" | npx wrangler secret put UUID
echo "<ADMIN>" | npx wrangler secret put ADMIN我实际是用 Cloudflare API 上传的。PUT /accounts/{account_id}/workers/scripts/<WORKER_NAME>,metadata 里带上 UUID、ADMIN 两个 secret 和 OFF_LOG=1(我没绑 KV)。然后 POST .../subdomain 打开 workers.dev 子域,效果一样。
2.5 验证
curl -s https://<WORKER_HOST>/ | head # 返回伪装的 "Welcome to nginx!" 页面就说明部署成功了注意:@ygkkkg 的文章说workers.dev默认域名在国内「已经基本失去实际作用」,国内用户一般要绑自定义域名,或者改用 Pages。我的测试机在美国,直接用workers.dev没有问题。
3. 客户端配置(v1 默认)
{
"log": {"level": "warn"},
"inbounds": [{"type": "mixed", "tag": "in", "listen": "127.0.0.1", "listen_port": 10808}],
"outbounds": [{
"type": "vless", "tag": "cf",
"server": "<WORKER_HOST>", "server_port": 443, "uuid": "<UUID>",
"tls": {"enabled": true, "server_name": "<WORKER_HOST>", "utls": {"enabled": true, "fingerprint": "chrome"}},
"transport": {"type": "ws", "path": "/?ed=2560", "headers": {"Host": "<WORKER_HOST>"},
"max_early_data": 2560, "early_data_header_name": "Sec-WebSocket-Protocol"}
}],
"route": {"final": "cf"}
}等价的分享链接:
vless://<UUID>@<WORKER_HOST>:443?encryption=none&security=tls&sni=<WORKER_HOST>&fp=chrome&type=ws&host=<WORKER_HOST>&path=%2F%3Fed%3D2560#cf-vless启动:sing-box run -c client.json,再用 curl -x socks5h://127.0.0.1:10808 https://ipinfo.io/ip 看出口。
4. v2:ProxyIP 怎么用
ProxyIP 可以写在 Worker 变量 PROXYIP 里,也可以直接写在客户端路径里:
"path": "/proxyip=<PROXYIP_HOST:443>?ed=2560"我从项目默认的公共池 proxyip.us.cmliussss.net 里挑了一个 IP 固定下来:150.136.139.228,Oracle Cloud,美国阿什本。公共 ProxyIP 都是别人的机器,谁在运营查不到,我只拿它做了几次检测请求,没有日常使用。
效果:
- 访问 Cloudflare 托管的网站,出口固定在 150.136.139.228。
cloudflare.com/cdn-cgi/trace连测 3 次、api.ipify.org连测 4 次,IP 都没变,colo=IAD。 - 访问普通网站(cleanip、ipinfo 等)还是 104.28.x,而且照样每次都变。ProxyIP 只管 Cloudflare 托管的网站。
v2 cdn-cgi/trace:Cloudflare 托管的网站看到的出口固定为 150.136.139.228
v2 IPPure:Cloudflare 线路的出口 150.136.139.228,Oracle 机房 IP
cleanip.io 查询 150.136.139.228:75 分 B 档
5. v3:优选 IP 怎么做
5.1 用 CloudflareSpeedTest 挑入口 IP
工具是 XIU2/CloudflareSpeedTest v2.3.5(https://github.com/XIU2/CloudflareSpeedTest/releases )。它自带的 ip.txt 就是 Cloudflare 官方 IPv4 段,每个 /24 随机抽一个,共 5955 个。
我的测试机网络会在本地直接完成 TCP 握手,默认的 TCPing 测出来全是 0 ms,看不出差别。所以我改用 HTTPing 加下载测速:
./cfst -httping -httping-code 200 -url "https://speed.cloudflare.com/__down?bytes=50000000" \
-n 200 -t 3 -dn 10 -dt 8 -tl 400 -p 15 -o result.csv大陆用户一般直接跑默认 TCPing 就行,-url 最好指向自己搭的测速文件,默认地址不保证能用。
结果:5871 个可用。我的测试机在美东,所有 IP 都进 IAD(华盛顿)机房。排名靠前的几个:
| IP | 平均延迟 | 直连下载 |
|---|---|---|
| 104.31.220.40 | 16 ms | 379 MB/s |
| 172.65.222.149 | 14 ms | 340 MB/s |
| 104.20.80.180 | 10 ms | 290 MB/s |
| 172.65.26.34 | 9 ms | 229 MB/s |
我也试了几个常见的优选域名:www.visa.com 正常;cf.090227.xyz 那次 10 MB 下了 11.6 秒,只有约 7 Mbps。第三方优选域名不一定靠谱,最好自己测一下。
5.2 写进客户端
只改 server,server_name(SNI)和 Host 保持 Worker 域名:
"server": "104.31.220.40", "server_port": 443,
"tls": {"enabled": true, "server_name": "<WORKER_HOST>", "utls": {"enabled": true, "fingerprint": "chrome"}},
"transport": {"type": "ws", "path": "/?ed=2560", "headers": {"Host": "<WORKER_HOST>"}, "max_early_data": 2560, "early_data_header_name": "Sec-WebSocket-Protocol"}分享链接:
vless://<UUID>@104.31.220.40:443?encryption=none&security=tls&sni=<WORKER_HOST>&fp=chrome&type=ws&host=<WORKER_HOST>&path=%2F%3Fed%3D2560#cf-vless-preferip6. 测试结果
6.1 cleanip.io:三版都是 75 分 B 档
| 版本 | cleanip 看到的出口 | 评分 | 归属 / 类型 |
|---|---|---|---|
| v1 默认 | 104.28.153.241 | 75 / B | Cloudflare AS13335,美国弗吉尼亚州雷斯顿;原生 IP、机房 IP |
| v2 固定 ProxyIP | 104.28.167.2 | 75 / B | 同上(cleanip 不托管在 Cloudflare 上,所以 ProxyIP 不影响它) |
| v3 优选 IP | 104.28.153.181 | 75 / B | 同上 |
v1 默认配置 cleanip.io:104.28.x,75 分 B
v2 固定 ProxyIP cleanip.io:普通网站的出口仍是 104.28.x,75 分 B
v3 优选 IP cleanip.io:104.28.x,75 分 B
前一轮我用同样的方法测过几次,结果是 74~75 分,都在 B 档。cleanip 页面列出的情况:信誉记录命中 4 项(共查 24 项),代理威胁分 33/100,网段滥用率 1.6%,主要扣分原因是「机房出口」。
6.2 其他工具(v1)
- Scamalytics:Fraud Score 24,Medium Risk。页面写明这是 Cloudflare 的商业服务器 IP,不是家庭宽带。
v1 Scamalytics:Fraud Score 24
- IPPure:原生 IP、机房 IP。IPPure 系数跟着具体 IP 变,我几次看到的是 23%(纯净)、44%(轻度风险)、61%(中度风险)。截图里这次是 44%。
v1 IPPure:104.28.x,机房 IP
- ipinfo.io:Reston, Virginia,AS13335,标签 Hosting 和 Relay,Privacy = true。
v1 ipinfo:Hosting + Relay
- Cloudflare 托管网站的出口(
www.cloudflare.com/cdn-cgi/trace):v1 和 v3 也都是 104.28.x,colo=SJC;只有 v2 固定成 150.136.139.228。
v1 cdn-cgi/trace
v3 cdn-cgi/trace
6.3 测速:v1 和 v3
测试机在美国。延迟是经节点请求 google.com/generate_204 的总耗时,每次都是新连接,所以包含建连时间。下载测的是 proof.ovh.net 的测试文件。
| 版本 | generate_204 延迟中位数 | 10 MB | 100 MB |
|---|---|---|---|
| v1 默认(截图那次) | 248 ms | 58.7 Mbps | 218.7 Mbps |
| v3 优选(截图那次) | 278 ms | 53.7 Mbps | 211.9 Mbps |
| v1 默认(A/B 交替 3 轮平均) | 约 323 ms | 约 54.6 Mbps | 约 214 Mbps |
| v3 优选(A/B 交替 3 轮平均) | 约 298 ms | 约 56.3 Mbps | 约 242 Mbps |
v1 测速终端输出
v3 测速终端输出
在我这台机器上,优选 IP 和默认入口差不多:3 轮平均略好,但单次测量有时反而慢,差距没有超过波动范围。原因是测试机就在 Cloudflare 华盛顿机房旁边,所有入口 IP 都进 IAD,走的路由一样。优选 IP 真正有用的场景,是客户端到 Cloudflare 的线路本来就不好,比如国内三网高峰期,或者 workers.dev 被墙需要换入口。那种情况要在你自己的网络上跑 cfst,结果因人而异。
v2 只改了 Cloudflare 托管网站的出口,我没有单独测它的速度。
7. 零成本能做到什么程度
能做到的:
- 完全免费,几分钟部署好一个能用的美国节点;
- cleanip.io 75 分 B 档,美国原生 IP,Scamalytics 24(Medium);
- 普通测速 10 MB 约 55 Mbps,100 MB 能到 200 多 Mbps(在美国测试机上);
- 用固定 ProxyIP,可以让访问 Cloudflare 托管的网站时出口固定。
局限:
- 出口始终是 Cloudflare 104.28.x 机房 IP。 所有检测站都认得出来是 Cloudflare / 机房 / 中继。对 IP 要求严的服务(风控严的电商、部分流媒体和 AI 服务)可能不认。
- 每建一条连接都会换 IP。 地区不变,但 IP 后缀一直在跳,需要会话粘性的网站可能频繁要求验证。
- 优选 IP 和 ProxyIP 都不改变普通网站看到的出口。 优选 IP 只改入口和速度;ProxyIP 只管 Cloudflare 托管的网站,而且公共 ProxyIP 是来源不明的机房 IP。我测的那个 150.136.139.228,在 IPPure 上是 88%(极度风险),cleanip 75 分。
所以,只靠 Workers 拿不到固定又干净的美国 IP。 想要的话,下一步是:
进阶:接 SOCKS5 落地。 edgetunnel 支持 SOCKS5/HTTP 落地:Worker 变量设 SOCKS5=<user:pass@host:port> 加 GO2SOCKS5=*,或者客户端路径写 /socks5://<user:pass@host:port>?ed=2560。这样所有流量的出口都变成落地机的 IP,固定不变。落地机的 IP 质量决定最终结果:
- 自己的美国 VPS:出口固定,但还是机房 IP;
- 住宅 / ISP 静态代理:可以拿到「美国家宽」级别的 IP,一般要付费;
- 免费的路子,比如 @404jsh 的文章《我就动动嘴,0元白嫖美、日、韩家宽 IP!》(https://x.com/404jsh/status/2106399056159560032 ):CF Worker → 自己 VPS 的 SOCKS5 → VPN Gate 志愿者节点。这需要一台 VPS,而且 VPN Gate 上美国本土的节点很少。我试过 edgetunnel 自带的 SSTP 直连 VPN Gate,当时没连通,这条路线本文没有结果。
不要用网上来路不明的免费公开 SOCKS5,很多是被入侵的机器。
8. 参考
- edgetunnel:https://github.com/cmliu/edgetunnel
- CloudflareSpeedTest:https://github.com/XIU2/CloudflareSpeedTest
- @ygkkkg:ProxyIP 和优选 IP 两条线路 https://x.com/ygkkkg/status/2107024669698330950
- @ygkkkg:CF 免费节点跳 IP 的问题 https://x.com/ygkkkg/status/2101595720700584411
- @ygkkkg 文章《CF免费节点新时代:Workers+Pages精简部署方案》 https://x.com/ygkkkg/status/2101288958403768716
- @404jsh 家宽落地思路 https://x.com/404jsh/status/2106399056159560032
- 检测工具:https://cleanip.io 、https://scamalytics.com 、https://ippure.com 、https://ipinfo.io