CFNAT:Cloudflare优选新思路,专治泛播IP动态路由,提升网络体验!

CFnat:Cloudflare优选新思路,专治泛播IP动态路由,提升网络体验!

首先声明,这款软件并非我原创开发,而是目前了解到由一位神秘大佬在 CF中转IP 频道 发布的一款实时筛选 Cloudflare 数据中心的软件。我所编写的脚本是在这位开发者的原始版本基础上进行的二次开发

由于该软件尚未开源,接下来我将根据作者的简介,结合我的理解进行说明。若有不当之处,欢迎指正。

CFNAT 是一款自动查找并优化 Cloudflare IP 转发的工具,旨在解决泛播 IP 路由不稳定的问题。如果你曾找到过速度不错的 Cloudflare IP,CFNAT 能帮助你快速筛选出最佳 IP 并实现端口转发,从而提升网络使用体验。因此,这款工具对于移动、广电网络用户来说尤为明显

因为作者没开源,CFNAT 使用场景也必须是在国内机子长期上运行,所以我的脚本就不另开GitHub仓库(放在上面你也没办法直接下载),文章的末尾会附上 CFNAT 所有文件的下载链接,供各位直接调用二次开发。


免责声明

CFnat-Windows-GUI项目仅供教育、研究和安全测试目的而设计和开发。本项目旨在为安全研究人员、学术界人士及技术爱好者提供一个探索和实践网络通信技术的工具。
在下载和使用本项目代码时,使用者必须严格遵守其所适用的法律和规定。使用者有责任确保其行为符合所在地区的法律框架、规章制度及其他相关规定。

使用条款

  • 教育与研究用途:本软件仅可用于网络技术和编程领域的学习、研究和安全测试。
  • 禁止非法使用:严禁将CFnat用于任何非法活动或违反使用者所在地区法律法规的行为。
  • 使用时限:基于学习和研究目的,建议用户在完成研究或学习后,或在安装后的24小时内,删除本软件及所有相关文件。
  • 免责声明:CFnat的创建者和贡献者不对因使用或滥用本软件而导致的任何损害或法律问题负责。
  • 用户责任用户对使用本软件的方式以及由此产生的任何后果完全负责。
  • 无技术支持:本软件的创建者不提供任何技术支持或使用协助。
  • 知情同意:使用CFnat即表示您已阅读并理解本免责声明,并同意受其条款的约束。

请记住:本软件的主要目的是促进学习、研究和安全测试。作者不支持或认可任何其他用途。使用者应当在合法和负责任的前提下使用本工具。


经验之谈

  1. cfnat梯子同一台设备上运行时使用本地服务IP:端口连接。
  2. cfnat梯子分别处在同一局域网内的两台设备上运行时使用内网服务IP:端口连接。
  3. 如果你是使用 cmliu/edgetunnel 的节点,可将本地服务IP:端口内网服务IP:端口都添加至ADD变量里,直接订阅食用即可
  4. 移动/广电用户设置数据中心HKG直接起飞!电信/联通用户设置SJC,LAX
  5. 在跑过一次优选之后,可在colo文件夹里可以看到ip.csv扫描结果, 里面就能看到你的当前网络网络环境下能跑出来的所有数据中心
  6. 不推荐直接在OpenWRT上直接跑,除非你会设置cfnat不走代理!!!或者等一个大佬开发cfnat的luci界面
  7. 那个AS209242的IP库就是个笑话,别用!

CFnat Windows GUI

CFnat Windows GUI
点击CFnat Windows GUI下载,因EXE程序没有签名,会被杀软查杀是正常现象,请自行考虑放行与否。

  • 使用cmd带参执行原程序,例如:
    1
    cfnat-windows-amd64.exe -addr="0.0.0.0:1234" -colo=HKG -delay=100 -port=80 -tls=false

GUI文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CFnat Windows GUI.exe      # GUI本体
cfnat.ini # GUI配置文件
cfnat-windows-386.exe # cfnat x86_32位 原程序本体
cfnat-windows-amd64.exe # cfnat x86_64位 原程序本体
cfnat-windows-arm.exe # cfnat arm_32位 原程序本体
cfnat-windows-arm64.exe # cfnat arm_64位 原程序本体
cfnat-windows7-386.exe # cfnat Win7_x86_32位 原程序本体 Win7专用
cfnat-windows7-amd64.exe # cfnat Win7_x86_64位 原程序本体 Win7专用
colo
├─ colo-windows-386.exe # colo x86_32位 用于生成缓存IP库
├─ colo-windows-amd64.exe # colo x86_64位 用于生成缓存IP库
├─ colo-windows-arm.exe # colo arm_32位 用于生成缓存IP库
├─ colo-windows-arm64.exe # colo arm_64位 用于生成缓存IP库
├─ ip.csv # colo 扫描结果 用于生成缓存IP库
├─ ips-v4.txt # IPv4库
├─ ips-v6.txt # IPv6库
└─ locations.json # CF数据中心json文件
ips-v4.txt # 缓存IPv4库
ips-v6.txt # 缓存IPv6库
locations.json # CF数据中心json文件

CFnat 一键脚本

cfnat

适用场景:拥有干净网关Linux设备,OpenWRT软路由使用时必须保证 cfnat 处于直连环境!!!


  • 终端命令
    1
    bash <(curl -Ls https://raw.cmliussss.com/cfnat.sh)

    在正式运行之前,推荐先配置 cfnat参数后调试运行 cfnat
    系统/架构识别不正确,则需要7手动设置系统架构
    调试运行 cfnat测试无误后Ctrl+C取消运行,后再次进入脚本选择2启动 cfnat即可

  • 安卓手机 termux命令

    不推荐手机用户使用后台运行,直接使用调试运行 cfnat即可

  • 无交互命令
    1
    2
    3
    4
    5
    # 无交互直接跑SJC,LAX优选,需要提前将脚本下载到~目录
    cfnat SJC,LAX

    # 无交互直接跑HKG优选
    bash <(curl -Ls https://raw.cmliussss.com/cfnat.sh) HKG

    注意使用无交互启动后,脚本会使用crontabcfnat进程进行守护,关闭需要进入脚本bash cfnat.sh选择3即可停止cfnat进程并清理crontab


脚本文件结构

1
2
3
4
5
6
7
cfnat.sh            # sh脚本 本体
cfnat
├─ cfnat-linux-* # cfnat 原程序本体
├─ cfnat.conf # sh脚本 相关参数配置文件
├─ ips-v4.txt # IPv4库
├─ ips-v6.txt # IPv6库
└─ locations.json # CF数据中心json文件

所谓的卸载就是删除cfnat文件夹


CFnat 原程序

cfnat

命令

  • 下载并赋权,示例(cfnat-linux-amd64程序名架构自行对照下载目录修改):

    1
    curl -sSL https://raw.cmliussss.com/cfnat/cfnat-linux-amd64 -o cfnat-linux-amd64 && chmod +x cfnat-linux-amd64
  • 执行命令,示例:

    1
    ./cfnat-linux-amd64 -addr="0.0.0.0:1234" -colo=HKG -delay=100

下载目录

  • 下载地址https://raw.cmliussss.com/cfnat/*,自行替换*为下载文件名:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    cfnat-android-arm64
    cfnat-darwin-amd64
    cfnat-darwin-arm64
    cfnat-dragonfly-amd64
    cfnat-freebsd-386
    cfnat-freebsd-amd64
    cfnat-freebsd-arm
    cfnat-freebsd-arm64
    cfnat-linux-386
    cfnat-linux-amd64
    cfnat-linux-arm
    cfnat-linux-arm64
    cfnat-linux-mips
    cfnat-linux-mips64
    cfnat-linux-mips64le
    cfnat-linux-mipsle
    cfnat-linux-ppc64
    cfnat-linux-ppc64le
    cfnat-linux-riscv64
    cfnat-linux-s390x
    cfnat-netbsd-386
    cfnat-netbsd-amd64
    cfnat-netbsd-arm
    cfnat-netbsd-arm64
    cfnat-openbsd-386
    cfnat-openbsd-amd64
    cfnat-openbsd-arm
    cfnat-openbsd-arm64
    cfnat-plan9-386
    cfnat-plan9-amd64
    cfnat-solaris-amd64
    cfnat-termux
    cfnat-windows-386.exe
    cfnat-windows-amd64.exe
    cfnat-windows-arm.exe
    cfnat-windows-arm64.exe
    cfnat-windows7-386.exe
    cfnat-windows7-amd64.exe
    ips-v4.txt
    ips-v6.txt

参数命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Usage of cfnat:
-addr string
本地监听的 IP 和端口 (default "0.0.0.0:1234")
-code int
HTTP/HTTPS 响应状态码 (default 200)
-colo string
筛选数据中心例如 HKG,SJC,LAX (多个数据中心用逗号隔开,留空则忽略匹配)
-delay int
有效延迟(毫秒),超过此延迟将断开连接 (default 300)
-domain string
响应状态码检查的域名地址 (default "cloudflaremirrors.com/debian")
-ipnum int
提取的有效IP数量 (default 20)
-ips string
指定生成IPv4还是IPv6地址 (4或6) (default "4")
-num int
目标负载 IP 数量 (default 10)
-port int
转发的目标端口 (default 443)
-random
是否随机生成IP,如果为false,则从CIDR中拆分出所有IP (default true)
-task int
并发请求最大协程数 (default 100)
-tls
是否为 TLS 端口 (default true)

亚洲COLO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ICN 韩国仁川
NRT 日本成田
SIN 新加坡
KIX 日本关西
FUK 日本福冈
HKG 香港
TPE 台湾桃源
BOM 印度孟买
KHH 台湾高雄
MAA 印度真奈
BLR 印度班加罗尔
DXB 迪拜
KUL 马来西亚吉隆坡
TLV 以色列
HFA 以色列海法
CGK 印尼雅加达
HYD 印度海得拉巴
DAC 孟加拉国
MNL 菲律宾马尼拉
DEL 印度新德里

美国COLO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
ORD 美国芝加哥
SJC 美国圣何塞
IAD 美国华盛顿
EWR 美国纽约
SEA 美国西雅图
YYZ 加拿大多伦多
DFW 美国德克萨斯
PDX 美国波特兰
ATL 美国亚特兰大
MIA 美国佛罗里达州
BUF 美国纽约
MCI 美国密苏里州
PHX 美国亚利桑那
BOS 美国马萨诸塞
IAH 美国得克萨斯州
SLC 美国犹他州
DEN 美国科罗拉多州
JAX 美国佛罗里达州
MFE 美国得克萨斯州
PHL 美国宾夕法尼亚州
SMF 美国加利福尼亚
MSP 美国圣保罗
HNL 美国夏威夷檀香山
LAS 美国内华达州
AUS 美国德克萨斯州
TPA 美国佛罗里达
DTW 美国底特律
CLT 美国北卡罗来纳州
IND 美国印第安纳州
MEM 美国田纳西州
STL 美国密苏里州
SFO 美国旧金山

新人Youtuber,需要您的支持,请务必帮我点赞关注打开小铃铛十分感谢!!!