0)最新 Cloudflare Page域名还没被SNI阻断,利用此项目可利用CF Pages反代。(无需自定义域名)
1)5月8日晚,CloudFlare Workers 的业务域名 Workers.dev 被防火长城 DNS 污染、SNI阻断。
2)CloudFlare Workers,可自定义workers域名,教程已更新至博客ifts.ml
;经过添加自定义域名,更换Host和SNI后已可正常使用。
3)接入点可以直接使用我的自选IP域名uicdn.cf
,每30分钟更新一次。
- 支持VMess和VLESS两种协议
- 支持自定义websocket路径
- 伪装首页(3D元素周期表)
- HTML5测速
- 使用v2ray最新版构建
请求/
,返回3D元素周期表
请求/speedtest/
,html5-speedtest测速页面
请求/test/
,文件下载速度测试
请求/ray
(可配置)v2ray websocket路径
名称 | 值 | 说明 |
---|---|---|
PROTOCOL | vmess vless(可选) |
协议:nginx+vmess+ws+tls或是nginx+vless+ws+tls |
UUID | uuid在线生成器 | 用户主ID |
WS_PATH | 默认为/daochen6 |
路径,请勿使用/speedtest ,/ ,/test 等已经被占用的请求路径 |
heorku可以绑卡(应用一直在线,不扣费),绑定域名,套cf,uptimerobot 定时访问防止休眠(只监控CF Workers反代地址好了,不然几个账户一起监控没几天就把时间耗完了)
CloudFlare Workers单账户反代代码
addEventListener(
"fetch",event => {
let url=new URL(event.request.url);
url.hostname="appname.herokuapp.com";
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)
CloudFlare Workers单双日轮换反代代码
const SingleDay = 'app0.herokuapp.com'
const DoubleDay = 'app1.herokuapp.com'
addEventListener(
"fetch",event => {
let nd = new Date();
if (nd.getDate()%2) {
host = SingleDay
} else {
host = DoubleDay
}
let url=new URL(event.request.url);
url.hostname=host;
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)
CloudFlare Workers每五天轮换一遍式反代代码
const Day0 = 'app0.herokuapp.com'
const Day1 = 'app1.herokuapp.com'
const Day2 = 'app2.herokuapp.com'
const Day3 = 'app3.herokuapp.com'
const Day4 = 'app4.herokuapp.com'
addEventListener(
"fetch",event => {
let nd = new Date();
let day = nd.getDate() % 5;
if (day === 0) {
host = Day0
} else if (day === 1) {
host = Day1
} else if (day === 2) {
host = Day2
} else if (day === 3){
host = Day3
} else if (day === 4){
host = Day4
} else {
host = Day1
}
let url=new URL(event.request.url);
url.hostname=host;
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)
CloudFlare Workers一周轮换反代代码
const Day0 = 'app0.herokuapp.com'
const Day1 = 'app1.herokuapp.com'
const Day2 = 'app2.herokuapp.com'
const Day3 = 'app3.herokuapp.com'
const Day4 = 'app4.herokuapp.com'
const Day5 = 'app5.herokuapp.com'
const Day6 = 'app6.herokuapp.com'
addEventListener(
"fetch",event => {
let nd = new Date();
let day = nd.getDay();
if (day === 0) {
host = Day0
} else if (day === 1) {
host = Day1
} else if (day === 2) {
host = Day2
} else if (day === 3){
host = Day3
} else if (day === 4) {
host = Day4
} else if (day === 5) {
host = Day5
} else if (day === 6) {
host = Day6
} else {
host = Day1
}
let url=new URL(event.request.url);
url.hostname=host;
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)
CloudFlare Pages单账户反代代码
export default {
async fetch(request, env) {
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
url.hostname = 'app0.herokuapp.com'
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
CloudFlare Pages单双日轮换反代代码
export default {
async fetch(request, env) {
const day1 = 'app0.herokuapp.com'
const day2 = 'app1.herokuapp.com'
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
let day = new Date()
if (day.getDay() % 2) {
url.hostname = day1
} else {
url.hostname = day2
}
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
- name: "yourName"
type: vmess
server: yourName.workers.dev
port: 443
uuid: yourUuid
alterId: 0
cipher: auto
udp: true
tls: true
#skip-cert-verify: true
servername: yourName.workers.dev
network: ws
ws-path: /daochen6