From 5b4bc5d8c71cc141e1ca7be2bc1d267b2900220a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E6=AE=87?= <197728340@qq.com> Date: Tue, 10 Dec 2024 10:57:25 +0800 Subject: [PATCH] Site updated: 2024-12-10 10:57:23 --- 2024/11/29/CloudFlareReverseProxy/index.html | 2 +- 2024/11/29/hello-world/index.html | 2 +- .../index.html" | 2 +- .../CloudFlareIntranetPenetration/index.html | 8 +++--- 2024/12/09/1PanelFail2ban/index.html | 2 +- 404.html | 2 +- about/index.html | 6 ++-- archives/2024/11/index.html | 4 +-- archives/2024/12/index.html | 4 +-- archives/2024/index.html | 4 +-- archives/index.html | 4 +-- categories/index.html | 6 ++-- gallery/index.html | 6 ++-- index.html | 8 +++--- link/index.html | 6 ++-- music/index.html | 6 ++-- search.xml | 28 +++++++++---------- shuoshuo/index.html | 6 ++-- tags/1panel/index.html | 4 +-- tags/CloudFlare/index.html | 4 +-- tags/index.html | 6 ++-- tags/npm/index.html | 4 +-- "tags/\344\273\243\347\220\206/index.html" | 4 +-- .../index.html" | 4 +-- 24 files changed, 66 insertions(+), 66 deletions(-) diff --git a/2024/11/29/CloudFlareReverseProxy/index.html b/2024/11/29/CloudFlareReverseProxy/index.html index 0474bff..cb19ec2 100644 --- a/2024/11/29/CloudFlareReverseProxy/index.html +++ b/2024/11/29/CloudFlareReverseProxy/index.html @@ -263,7 +263,7 @@

指定反代

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});

// 域名映射表
const domainMappings = {
"/steam-store": "https://store.steampowered.com",
"/steam-api": "https://api.steampowered.com"
};

const specialCases = {
"*": {
"Origin": "DELETE",
"Referer": "DELETE"
}
};
//IP白名单
const allowedIPs = [
// IPv4 示例
'123.123.123.123',
// IPv6 示例
'2001:0db8:85a3:0000:0000:8a2e:0370:7334'
];

function handleSpecialCases(request) {
const rules = specialCases["*"];
for (const [key, value] of Object.entries(rules)) {
switch (value) {
case "KEEP":
break;
case "DELETE":
request.headers.delete(key);
break;
default:
request.headers.set(key, value);
break;
}
}
}

// 获取用户 IP 地址
function getUserIP(request) {
return request.headers.get('CF-Connecting-IP') || request.headers.get('X-Forwarded-For') || request.connection.remoteAddress;
}

async function handleRequest(request) {
const url = new URL(request.url);

const userIP = getUserIP(request);

// 检查 IP 是否在白名单内
if (!allowedIPs.includes(userIP)) {
return new Response(`
<html>
<head>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f9f9f9;
}
h1 {
font-family: Arial, sans-serif;
color: #333;
text-align: center;
}
</style>
</head>
<body>
<h1>Caused by playing Genshin Impact</h1>
</body>
</html>
`, {
headers: { "Content-Type": "text/html" }
});
}

// 如果是访问根目录就返回一个HTML
if (url.pathname === "/") {
return new Response(`
<html>
<head>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f9f9f9;
}
h1 {
font-family: Arial, sans-serif;
color: #333;
text-align: center;
}
</style>
</head>
<body>
<h1>Why don't you play Genshin Impact?</h1>
</body>
</html>
`, {
headers: { "Content-Type": "text/html" }
});
}

const basePath = Object.keys(domainMappings).find(path => url.pathname.startsWith(path));
if (!basePath) {
return new Response("Path not found in domain mappings", { status: 404 });
}

const targetBase = domainMappings[basePath];
const targetPath = url.pathname.slice(basePath.length) + url.search + url.hash;

const targetUrl = new URL(targetPath, targetBase);

const modifiedRequest = new Request(targetUrl, {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});

handleSpecialCases(modifiedRequest);

// 发送请求
const response = await fetch(modifiedRequest);
const modifiedResponse = new Response(response.body, response);

modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');

return modifiedResponse;
}
-

文章作者: MapleLeaf
文章链接: http://mapleleaf.icu/2024/11/29/CloudFlareReverseProxy/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MapleLeaf
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
-

CloudFlare免费内网穿透

CloudFlare免费内网穿透

准备

赞助
  • wechat
    wechat
  • alipay
    alipay

评论
公告
An epitaph is short, and so is life.
赞助

评论
avatar
MapleLeaf
Follow Me
公告
An epitaph is short, and so is life.
最新文章
-

评论
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
-
文章总览 - 2
2024
使用CloudFlare搭建反向代理
使用CloudFlare搭建反向代理
Hello World
Hello World
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file +
文章总览 - 2
2024
使用CloudFlare搭建反向代理
使用CloudFlare搭建反向代理
Hello World
Hello World
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/archives/2024/12/index.html b/archives/2024/12/index.html index a8b371c..50bdb62 100644 --- a/archives/2024/12/index.html +++ b/archives/2024/12/index.html @@ -54,7 +54,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-12-10 10:49:52' + postUpdate: '2024-12-10 10:57:21' } -
文章总览 - 3
2024
使用1Panel阻止SSH爆破
使用1Panel阻止SSH爆破
CloudFlare免费内网穿透
CloudFlare免费内网穿透
npm,pnpm,yarn换源
npm,pnpm,yarn换源
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file +
文章总览 - 3
2024
使用1Panel阻止SSH爆破
使用1Panel阻止SSH爆破
CloudFlare免费内网穿透
CloudFlare免费内网穿透
npm,pnpm,yarn换源
npm,pnpm,yarn换源
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html index bdeed68..f7594f8 100644 --- a/archives/2024/index.html +++ b/archives/2024/index.html @@ -54,7 +54,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-12-10 10:49:52' + postUpdate: '2024-12-10 10:57:21' } -
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file +
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 95c1a24..38ebef9 100644 --- a/archives/index.html +++ b/archives/index.html @@ -54,7 +54,7 @@ isHome: false, isHighlightShrink: false, isToc: false, - postUpdate: '2024-12-10 10:49:52' + postUpdate: '2024-12-10 10:57:21' } -
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file +
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 740f62c..980cee0 100644 --- a/categories/index.html +++ b/categories/index.html @@ -3,12 +3,12 @@ - + - -

评论
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
-

评论
公告
An epitaph is short, and so is life.
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
3.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
-
使用1Panel阻止SSH爆破