CF中转IP
20240923-103639-SecureTCPRelay.zip
特性
动态转发:根据配置,程序可以将流量转发到不同的目标地址。
基于 IP 和域名的访问控制:允许配置白名单 IP 范围和域名模式。
活跃连接跟踪:实时跟踪并记录当前活跃连接数量。
支持多个目标地址:根据需要转发TCP到不同的目标地址,支持随机选择。
Host 与 SNI 支持:基于域名访问模式下,能够拦截非白名单域名请求。
TLS 与 非TLS 端口共用:能够识别并处理 TLS 和 非TLS 请求,只需暴露一个端口即可。
使用
启动代理服务器并配置监听地址、转发目标地址、允许的 IP 范围和域名列表:
./SecureTCPRelay -src=<local-address> -dst=<forward-addresses> -cidr=<allowed-cidrs> -domain=<allowed-domains>
-src: 本地监听的 IP 和端口(默认 0.0.0.0:1234)
-dst: 转发的目标 IP 和端口,多目标模式用逗号分隔(第一个是非TLS地址,第二个是TLS地址,多出部分地址无效)
-cidr: 允许的来源 IP 范围 (CIDR),多个范围用逗号分隔(默认 0.0.0.0/0,::/0)
-domain: 允许的域名列表,用逗号分隔,支持通配符*,默认转发所有域名
示例
要在 0.0.0.0:8080 上监听并将流量转发到 192.168.1.100:80 和 192.168.1.100:443,同时允许来自 192.168.1.0/24 的 IP 并允许访问 abc.com 和 *.example.org 的域名,你可以使用以下命令:
./SecureTCPRelay -src=0.0.0.0:8080 -dst=192.168.1.100:80,192.168.1.100:443 -cidr=192.168.1.0/24 -domain=abc.com,*.example.org
非TLS(HTTP & WS)的请求将被转发到 192.168.1.100:80 ,TLS(HTTPS & WSS)的请求将被转发到 192.168.1.100:443
配置说明
CIDR 配置
CIDR 配置用于限制允许的客户端 IP 地址范围。例如,192.168.1.0/24 允许来自 192.168.1.0 到 192.168.1.255 的所有 IP 地址。
域名列表
域名列表用于控制允许的目标域名。支持通配符 *。例如,*.example.com 将匹配 sub.example.com 和 www.example.com 等域名。
动态转发:根据配置,程序可以将流量转发到不同的目标地址。
基于 IP 和域名的访问控制:允许配置白名单 IP 范围和域名模式。
活跃连接跟踪:实时跟踪并记录当前活跃连接数量。
支持多个目标地址:根据需要转发TCP到不同的目标地址,支持随机选择。
Host 与 SNI 支持:基于域名访问模式下,能够拦截非白名单域名请求。
TLS 与 非TLS 端口共用:能够识别并处理 TLS 和 非TLS 请求,只需暴露一个端口即可。
使用
启动代理服务器并配置监听地址、转发目标地址、允许的 IP 范围和域名列表:
./SecureTCPRelay -src=<local-address> -dst=<forward-addresses> -cidr=<allowed-cidrs> -domain=<allowed-domains>
-src: 本地监听的 IP 和端口(默认 0.0.0.0:1234)
-dst: 转发的目标 IP 和端口,多目标模式用逗号分隔(第一个是非TLS地址,第二个是TLS地址,多出部分地址无效)
-cidr: 允许的来源 IP 范围 (CIDR),多个范围用逗号分隔(默认 0.0.0.0/0,::/0)
-domain: 允许的域名列表,用逗号分隔,支持通配符*,默认转发所有域名
示例
要在 0.0.0.0:8080 上监听并将流量转发到 192.168.1.100:80 和 192.168.1.100:443,同时允许来自 192.168.1.0/24 的 IP 并允许访问 abc.com 和 *.example.org 的域名,你可以使用以下命令:
./SecureTCPRelay -src=0.0.0.0:8080 -dst=192.168.1.100:80,192.168.1.100:443 -cidr=192.168.1.0/24 -domain=abc.com,*.example.org
非TLS(HTTP & WS)的请求将被转发到 192.168.1.100:80 ,TLS(HTTPS & WSS)的请求将被转发到 192.168.1.100:443
配置说明
CIDR 配置
CIDR 配置用于限制允许的客户端 IP 地址范围。例如,192.168.1.0/24 允许来自 192.168.1.0 到 192.168.1.255 的所有 IP 地址。
域名列表
域名列表用于控制允许的目标域名。支持通配符 *。例如,*.example.com 将匹配 sub.example.com 和 www.example.com 等域名。
👍12👏2❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
SecureTCPRelay 监听1234端口共用SNI和Host,后端自动分流到目标地址
colo.zip
72.2 MB
Usage of colo:
-ips string
指定生成IPv4还是IPv6地址 (4或6) (default "4")
-outfile string
输出文件名称 (default "ip.csv")
-random
是否随机生成IP(默认为true),如果为false,则从CIDR中拆分出所有IP (default true)
-task int
并发请求最大协程数 (default 100)
该工具用于提取cloudflare泛播数据中心
-ips string
指定生成IPv4还是IPv6地址 (4或6) (default "4")
-outfile string
输出文件名称 (default "ip.csv")
-random
是否随机生成IP(默认为true),如果为false,则从CIDR中拆分出所有IP (default true)
-task int
并发请求最大协程数 (default 100)
该工具用于提取cloudflare泛播数据中心
👍9🔥2🥰1
cfnat-20251210.zip
98.3 MB
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 5)
-port int
转发的目标端口 (default 443)
-random
是否随机生成IP,如果为false,则从CIDR中拆分出所有IP (default true)
-task int
并发请求最大协程数 (default 100)
-tls
是否为 TLS 端口 (default true)
2024年9月8日 已经更新对windows 7 以及 安卓termux支持
2024年9月22日 修复一些bug,删除一些不必要的参数
2024年10月22日 更改状态检测机制,一次检查失败直接切换IP,新增armv5 v6 v7 独立版本
2024年10月30日 修复了一些bug,状态检测改成2次连续失败再切换,此版本后续基本没有再更新的必要
2025年12月10日 通过引入 IPManager 封装状态管理 + Context 控制 goroutine 生命周期,解决了旧版本全局变量不安全、goroutine 无法优雅退出的问题,同时进行了代码模块化拆分和 API 现代化升级。
-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 5)
-port int
转发的目标端口 (default 443)
-random
是否随机生成IP,如果为false,则从CIDR中拆分出所有IP (default true)
-task int
并发请求最大协程数 (default 100)
-tls
是否为 TLS 端口 (default true)
2024年9月8日 已经更新对windows 7 以及 安卓termux支持
2024年9月22日 修复一些bug,删除一些不必要的参数
2024年10月22日 更改状态检测机制,一次检查失败直接切换IP,新增armv5 v6 v7 独立版本
2024年10月30日 修复了一些bug,状态检测改成2次连续失败再切换,此版本后续基本没有再更新的必要
2025年12月10日 通过引入 IPManager 封装状态管理 + Context 控制 goroutine 生命周期,解决了旧版本全局变量不安全、goroutine 无法优雅退出的问题,同时进行了代码模块化拆分和 API 现代化升级。
👍45❤7🔥2😁2⚡1👏1🖕1
CF中转IP
cfnat-20251210.zip
我们经常在现实中遇到cf官方ip /cdn-cgi/trace 后会出现不同的路由和数据中心反馈。
cfnat是一个自动查找自动进行CF转发的工具,目的是为了解决泛播ip路由乱跳的问题。
有了它,绝大多数用户网络环境下用cf中转ip意义就不大了。
其中高阶用法是修改同目录下的ips-v4.txt和ips-v6.txt
用上面的colo工具找适合自己的cidr地址段。
cfnat是一个自动查找自动进行CF转发的工具,目的是为了解决泛播ip路由乱跳的问题。
有了它,绝大多数用户网络环境下用cf中转ip意义就不大了。
其中高阶用法是修改同目录下的ips-v4.txt和ips-v6.txt
用上面的colo工具找适合自己的cidr地址段。
👍10🔥1👏1
CF中转IP
我们经常在现实中遇到cf官方ip /cdn-cgi/trace 后会出现不同的路由和数据中心反馈。 cfnat是一个自动查找自动进行CF转发的工具,目的是为了解决泛播ip路由乱跳的问题。 有了它,绝大多数用户网络环境下用cf中转ip意义就不大了。 其中高阶用法是修改同目录下的ips-v4.txt和ips-v6.txt 用上面的colo工具找适合自己的cidr地址段。
从并发的连接中提取出路由最短的连接来作为有效传输路径。同时具备状态检查功能,如果三次遇到tcp链路检测失败,就会切换下一个候选的ip作为中转的目标ip。这样就可以无人值守来创建一个cf转发的服务。
🔥6❤1👏1
CF中转IP
从并发的连接中提取出路由最短的连接来作为有效传输路径。同时具备状态检查功能,如果三次遇到tcp链路检测失败,就会切换下一个候选的ip作为中转的目标ip。这样就可以无人值守来创建一个cf转发的服务。
可配合 https://t.me/CF_NAT/38835 来进行域名过滤,这样可以更加具备私有化特性
Telegram
CF中转IP
SecureTCPRelay 是一个灵活且安全的 TCP 转发代理,支持动态选择转发目标和基于域名的访问控制。该程序能够处理 非TLS(HTTP & WS)和TLS(HTTPS & WSS)以及普通 TCP 连接,并根据配置自动选择目标地址进行转发。
🥰5👍2👏1
CF中转IP
cfnat-20251210.zip
其中的
-colo 参数提供指定数据中心的筛选
-delay 参数提供极限的链路优化,超过1000就失去了意义,该参数用于tcp目标ip连接超时判断
-domain 参数用来trace指定的域名,避免某些ip只能被官方ip使用而个人免费的域名不可用
-ipnum 参数用来colo提取过程中按照延迟排序候选指定的ip数量作为待中转的ip
-tls 参数要与 -port 参数配合使用 具体cf有哪些端口是tls端口 哪些端口是非tls端口 参考 https://developers.cloudflare.com/fundamentals/reference/network-ports/
-colo 参数提供指定数据中心的筛选
-delay 参数提供极限的链路优化,超过1000就失去了意义,该参数用于tcp目标ip连接超时判断
-domain 参数用来trace指定的域名,避免某些ip只能被官方ip使用而个人免费的域名不可用
-ipnum 参数用来colo提取过程中按照延迟排序候选指定的ip数量作为待中转的ip
-tls 参数要与 -port 参数配合使用 具体cf有哪些端口是tls端口 哪些端口是非tls端口 参考 https://developers.cloudflare.com/fundamentals/reference/network-ports/
Cloudflare Docs
Network ports · Cloudflare Fundamentals docs
Learn which network ports Cloudflare proxies by default and how to enable Cloudflare's proxy for additional ports.
👍4🔥3❤2
CF中转IP
cfnat-20251210.zip
ipv4-cidr提取.bat
792 B
默认的ips-v4.txt是整个AS13335,其中包括warp ip,cdn回源ip,以及cloudflared等服务ip,这些ip都不能作为优选ip来使用的。所以要想加快软件启动的时候扫描速度,需要使用前用colo扫描后的ip.csv地址提出后保存为新的/24子网的ips-v4.txt来使用。windows下提供一个批处理来快速提取。
linux下可以使用下面的命令提取
ipv6无需再次处理,已经是精简后的
linux下可以使用下面的命令提取
grep ms ip.csv | awk -F. '{printf $1"."$2"."$3".0/24\n"}' | sort -u > ips-v4.txtipv6无需再次处理,已经是精简后的
🔥7👍2🤔2❤1
20240919-180136-cfd.zip
28.8 MB
为了方便国内更好的使用cloudflared(原argo tunnel)
做了一个简易的cloudflared HTTP2协议回源的优选方案
其中原理是给cloudflared的服务强制指定host ip到127.0.0.1 并且本地转发7844端口到优选的cloudflared的回源ip
其中hosts需要添加下面的解析
然后再运行cfd优选程序,启动转发完毕后再运行cloudflared
其中cloudflared需要指定回源协议HTTP2
cloudflared --protocol http2
原始cloudflared程序下载地址
https://github.com/cloudflare/cloudflared
做了一个简易的cloudflared HTTP2协议回源的优选方案
其中原理是给cloudflared的服务强制指定host ip到127.0.0.1 并且本地转发7844端口到优选的cloudflared的回源ip
其中hosts需要添加下面的解析
127.0.0.1 region1.v2.argotunnel.com
127.0.0.1 region2.v2.argotunnel.com
127.0.0.1 us-region1.v2.argotunnel.com
127.0.0.1 us-region2.v2.argotunnel.com
然后再运行cfd优选程序,启动转发完毕后再运行cloudflared
其中cloudflared需要指定回源协议HTTP2
cloudflared --protocol http2
原始cloudflared程序下载地址
https://github.com/cloudflare/cloudflared
👍9🔥4❤2
CF中转IP
20240919-180136-cfd.zip
增加了一个参数-multi
Usage of ./cfd:
-file string
IP地址文件名称 (default "ip.txt")
-max int
最大允许延迟(毫秒),超过此延迟将断开连接 (default 500)
-min int
最小允许延迟(毫秒),低于此延迟的连接将被视为有效 (default 300)
-multi
是否启用多目标模式 (default true)
-num int
转发的IP数量 (default 10)
-task int
并发请求最大协程数 (default 100)
./cfd -multi=false 就变成了单一IP转发模式,属于垃圾堆里淘金的那种意思。
Usage of ./cfd:
-file string
IP地址文件名称 (default "ip.txt")
-max int
最大允许延迟(毫秒),超过此延迟将断开连接 (default 500)
-min int
最小允许延迟(毫秒),低于此延迟的连接将被视为有效 (default 300)
-multi
是否启用多目标模式 (default true)
-num int
转发的IP数量 (default 10)
-task int
并发请求最大协程数 (default 100)
./cfd -multi=false 就变成了单一IP转发模式,属于垃圾堆里淘金的那种意思。
👍9
CF中转IP
warp-linux-amd64.zip
cloudflare-warp 最新版支持MASQUE协议目前国内可用
一种是登录zerotrust改账户连接协议
还有一种方法就是修改配置文件
Windows下给 mdm.xml 放到
Linux下给 mdm.xml 放到
然后用 warp-cli settings 命令查看连接协议已经动态切换到MASQUE
Windows自行去官网 https://1111-releases.cloudflareclient.com/win/latest 下载完安装
linux amd64环境下提取的二进制压缩包 warp-linux-amd64.zip
linux环境下需要下面的依赖
目前优选方案已经测试过,可用的IP太少(169.159.197.0/24,162.159.198.1,162.159.199.1),暂时不值得去弄。如果有v6环境默认还是非常快的。
一种是登录zerotrust改账户连接协议
还有一种方法就是修改配置文件
Windows下给 mdm.xml 放到
C:\ProgramData\CloudflareLinux下给 mdm.xml 放到
/var/lib/cloudflare-warp然后用 warp-cli settings 命令查看连接协议已经动态切换到MASQUE
Windows自行去官网 https://1111-releases.cloudflareclient.com/win/latest 下载完安装
linux amd64环境下提取的二进制压缩包 warp-linux-amd64.zip
linux环境下需要下面的依赖
apt update && apt install desktop-file-utils gnupg2 libjansson4 libnftables1 libnspr4 libnss3 libnss3-tools nftables
目前优选方案已经测试过,可用的IP太少(169.159.197.0/24,162.159.198.1,162.159.199.1),暂时不值得去弄。如果有v6环境默认还是非常快的。
😱10❤4👍4💯2🔥1
CF中转IP
cfnat-20251210.zip
经过群友一段时间的使用和反馈,更新了一下 cfnat
ioutil.ReadFile 在 Go 1.16 之后被标记为过时,改用 os.ReadFile 来解决本地文件打开不能正常关闭问题
移除原有的-min 和 -max参数(功能有部分重复)
新增-delay参数来替代原有的min和max控制tcp超时
具体参数详见 https://t.me/CF_NAT/38840
ioutil.ReadFile 在 Go 1.16 之后被标记为过时,改用 os.ReadFile 来解决本地文件打开不能正常关闭问题
移除原有的-min 和 -max参数(功能有部分重复)
新增-delay参数来替代原有的min和max控制tcp超时
具体参数详见 https://t.me/CF_NAT/38840
👍2🔥2❤1