解决workers反代被墙
由于cf workers的域名在国内被污染了,我们暂时无法访问我之前介绍的heroku的workers反代网址,导致节点无法使用,所以就有了本期教程
自定义域名
1.这一步你得需要一个域名,一个cf账号
2.登录你的cf账号,点进你的域名,点DNS选项,如图添加一个cname解析到workers的域名,不带https://,要开小云朵
3.然后,我们点击侧边栏的workers,如图操作
4.然后我们等待会,访问自定义的域名,能正常访问就代表成功了,此时你可以去替换你heroku的伪装域名了
cf pages
除了上面这种方法外,还有就是用cf pages反代了,这个你得需要一个github账号,但是不需要域名
1.我们打开github,新建一个仓库
2.新建一个文件
3.然后取名为_worker.js,选择一种模式,将下面的代码复制进去,注意替换自己的域名
一个账号使用1
2
3
4
5
6
7
8
9
10
11export default {
async fetch(request, env) {
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
url.hostname = 'exepmle.com'
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
单双日轮换1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18export default {
async fetch(request, env) {
const day1 = 'app0.example.com'
const day2 = 'app1.example.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);
},
};
五天轮换反代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
29export default {
async fetch(request, env) {
const day1 = 'app0.example.com'
const day2 = 'app1.example.com'
const day3 = 'app2.example.com'
const day4 = 'app3.example.com'
const day5 = 'app4.example.com'
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
let day = new Date().getDay() % 5;
if (day === 0) {
url.hostname = day1
} else if (day === 1) {
url.hostname = day2
} else if (day === 2) {
url.hostname = day3
} else if (day === 3) {
url.hostname = day4
} else if (day === 4) {
url.hostname = day5
} else {
url.hostname = day1
}
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
一周轮换反代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
35export default {
async fetch(request, env) {
const day1 = 'app0.example.com'
const day2 = 'app1.example.com'
const day3 = 'app2.example.com'
const day4 = 'app3.example.com'
const day5 = 'app4.example.com'
const day6 = 'app5.example.com'
const day7 = 'app6.example.com'
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
let day = new Date().getDay();
if (day === 0) {
url.hostname = day1
} else if (day === 1) {
url.hostname = day2
} else if (day === 2) {
url.hostname = day3
} else if (day === 3) {
url.hostname = day4
} else if (day === 4) {
url.hostname = day5
} else if (day === 5) {
url.hostname = day6
} else if (day === 6) {
url.hostname = day7
} else {
url.hostname = day1
}
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
保存文件
4.打开cf,点击侧边栏的pages,新建一个项目
5.链接自己的github账号,选择刚刚创建的项目,然后点击”Begin setup”
6.起完名字后点击“Save and Deploy”
7.等待部署完成,然后依旧是替换伪装域名
这样,你的workers就能在国内正常访问了







