Dernière activité 1728015792

通用转发代理,适合所有站点

LiuShen's Avatar LiuShen a révisé ce gist 1728015792. Aller à la révision

Aucun changement

LiuShen's Avatar LiuShen a révisé ce gist 1728015751. Aller à la révision

1 file changed, 250 insertions

worker.js(fichier créé)

@@ -0,0 +1,250 @@
1 + addEventListener('fetch', event => {
2 + event.respondWith(handleRequest(event.request))
3 + })
4 + const specialCases = {
5 + "*": {
6 + "Origin": "DELETE",
7 + "Referer": "DELETE"
8 + }
9 + }
10 + function handleSpecialCases(request) {
11 + const url = new URL(request.url);
12 + const rules = specialCases[url.hostname] || specialCases["*"];
13 + for (const [key, value] of Object.entries(rules)) {
14 + switch (value) {
15 + case "KEEP":
16 + break;
17 + case "DELETE":
18 + request.headers.delete(key);
19 + break;
20 + default:
21 + request.headers.set(key, value);
22 + break;
23 + }
24 + }
25 + }
26 + async function handleRequest(request) {
27 + const url = new URL(request.url);
28 + if (url.pathname === "/") {
29 + return new Response(`<!DOCTYPE html>
30 + <html lang="zh-CN">
31 +
32 + <head>
33 + <meta charset="UTF-8">
34 + <title>转发服务使用指南</title>
35 + <style>
36 + body {
37 + font-family: Arial, sans-serif;
38 + margin: 0;
39 + padding: 0;
40 + background: #f4f4f4;
41 + }
42 +
43 + .container {
44 + width: 80%;
45 + margin: auto;
46 + overflow: hidden;
47 + margin-bottom: 100px;
48 + }
49 +
50 + header {
51 + background: #333;
52 + color: #fff;
53 + padding: 20px;
54 + text-align: center;
55 + }
56 +
57 + section {
58 + padding: 20px;
59 + margin-bottom: 20px;
60 + }
61 +
62 + .example {
63 + background: #fff;
64 + padding: 20px;
65 + border-radius: 4px;
66 + margin-bottom: 20px;
67 + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
68 + }
69 +
70 + h2 {
71 + color: #333;
72 + border-bottom: 2px solid #ddd;
73 + padding-bottom: 10px;
74 + }
75 +
76 + code {
77 + background: #ddd;
78 + padding: 2px 6px;
79 + border-radius: 4px;
80 + display: inline-block;
81 + margin: 0 5px;
82 + }
83 +
84 + ul, ol {
85 + padding-left: 20px;
86 + }
87 +
88 + li {
89 + margin-bottom: 10px;
90 + }
91 +
92 + h3 {
93 + color: #666;
94 + }
95 +
96 + p {
97 + line-height: 1.6;
98 + }
99 +
100 + strong {
101 + color: #333;
102 + }
103 +
104 + footer {
105 + background: #333;
106 + color: #fff;
107 + text-align: center;
108 + padding: 10px 0;
109 + position: fixed;
110 + width: 100%;
111 + bottom: 0;
112 + }
113 + </style>
114 + </head>
115 +
116 + <body>
117 + <header>
118 + <h1>转发服务使用指南</h1>
119 + </header>
120 + <div class="container">
121 + <section>
122 + <h2>简介</h2>
123 + <p>本服务是一个轻量级的 https 请求转发代理,可以帮助您绕过某些网络限制,或者在开发过程中模拟 https 请求。该转发接口基于 Cloudflare 构建,以提供快速且安全的服务体验。</p>
124 + </section>
125 + <section>
126 + <h2>服务特点</h2>
127 + <p>该转发服务具有以下特点:</p>
128 + <ul>
129 + <li>支持 https 请求转发,保证数据传输的安全性。</li>
130 + <li>提供多个转发服务域名,满足不同的使用需求。</li>
131 + <li>支持一些常用服务的专门转发接口,提供更快速的访问体验。</li>
132 + <li>免费使用,无需注册或登录,即可直接使用。</li>
133 + </ul>
134 + </section>
135 + <section>
136 + <h2>公告</h2>
137 + <p>2024-06-01: 由于服务被不正确利用,原 <code>github.lius.me</code> 域名已被 Chrome 标注为风险网站,现经过封禁对应接口后,更换为全新子域名 <code>https://gh.lius.me</code></p>
138 + <p>2024-06-11: 由于个人需要,添加docker加速服务 <code>docker.lius.me</code></p>
139 + </section>
140 + <section>
141 + <h2>服务域名</h2>
142 + <p>我们提供了多个转发服务域名,您可以根据需要选择合适的服务域名:</p>
143 + <ul>
144 + <li><strong>通用转发服务:</strong><code>https://lius.me</code></li>
145 + <li><strong>Gravatar 转发服务:</strong><code>https://gravatar.lius.me</code></li>
146 + <li><strong>GitHub 转发服务:</strong><code>https://gh.lius.me</code></li>
147 + <li><strong>Docker 镜像加速服务:</strong><code>https://docker.lius.me</code></li>
148 + </ul>
149 + </section>
150 + <section>
151 + <h2>如何使用</h2>
152 + <p>使用转发服务非常简单,只需遵循以下步骤:</p>
153 + <ol>
154 + <li>确定您想要访问的目标 URL。</li>
155 + <li>根据您的需求选择相应的转发服务域名。</li>
156 + <li>在浏览器地址栏输入我们的转发服务 URL,并在其后附加目标 URL 的完整路径。</li>
157 + <li>按下回车键,我们的服务将自动将请求转发到目标 URL。</li>
158 + </ol>
159 + </section>
160 + <section>
161 + <h2>特定域名转发接口</h2>
162 + <p>我们为一些常用的服务提供了专门的转发接口,以优化访问速度和体验。</p>
163 + <section class="example">
164 + <h3>Gravatar 转发</h3>
165 + <p>如果您需要访问 Gravatar 的头像服务,可以使用以下转发接口:</p>
166 + <p><strong>转发服务域名:</strong><code>https://gravatar.lius.me</code></p>
167 + <p><strong>示例:</strong>要获取用户 <code>someuser</code> 的 Gravatar 头像,访问以下 URL:</p>
168 + <p><code>https://gravatar.lius.me/avatar/someuser?s=128</code></p>
169 + </section>
170 + <section class="example">
171 + <h3>GitHub 转发</h3>
172 + <p>如果您需要访问 GitHub 的 API 或资源,可以使用以下转发接口:</p>
173 + <p><strong>转发服务域名:</strong><code>https://gh.lius.me</code></p>
174 + <p><strong>示例:</strong>要访问用户 <code>someuser</code> 的 GitHub 仓库 <code>repo</code>,请访问:</p>
175 + <p><code>https://gh.lius.me/users/someuser/repos/repo</code></p>
176 + </section>
177 + <section class="example">
178 + <h3>Docker 镜像加速</h3>
179 + <p>如果您需要提升国内拉取 Docker 镜像的速度,可以使用以下转发接口:</p>
180 + <p><strong>转发服务域名:</strong><code>https://docker.lius.me</code></p>
181 + <p><strong>示例:</strong>要拉取镜像 <code>artalk/artalk-go:latest</code>,请使用以下命令:</p>
182 + <p><code>docker pull docker.lius.me/artalk/artalk-go:latest</code></p>
183 + </section>
184 + </section>
185 + <section>
186 + <h2>通用转发服务</h2>
187 + <p>对于不提供专门转发接口的网站,您可以继续使用我们的通用转发服务。</p>
188 + <section class="example">
189 + <h3>通用转发示例</h3>
190 + <p><strong>转发服务域名:</strong><code>https://lius.me</code></p>
191 + <p><strong>示例:</strong>要访问 <code>https://example.com/api/data</code>,请使用以下 URL:</p>
192 + <p><code>https://lius.me/https://example.com/api/data</code></p>
193 + </section>
194 + </section>
195 + <section>
196 + <h2>注意事项</h2>
197 + <p>在使用转发服务时,请仔细阅读并遵守以下条款:</p>
198 + <h3>遵守使用条款</h3>
199 + <p>您必须遵守目标网站的使用条款和条件。本服务仅作为请求转发的中介,并不对目标网站的内容或服务负责。</p>
200 + <h3>隐私和数据安全</h3>
201 + <p>保护您的个人隐私和数据安全至关重要。请不要通过本服务发送任何敏感或个人身份信息,除非您已经确认目标网站具有足够的安全措施。</p>
202 + <h3>版权和知识产权</h3>
203 + <p>您应确保在使用本服务转发内容时,不侵犯任何第三方的版权或知识产权。对于因违反版权或知识产权法律而导致的任何争议或法律责任,您应自行承担。</p>
204 + <h3>服务限制</h3>
205 + <p>本服务有可能会限制请求的数量、频率或大小。请合理使用服务,避免对服务或目标网站造成不必要的负担。</p>
206 + <h3>免责声明</h3>
207 + <p>本服务提供“按原样”的转发服务,不提供任何形式的保证。我们不对通过本服务转发的内容的准确性、可靠性或质量负责,也不对因使用本服务而可能遭受的任何损失或损害承担责任。</p>
208 + <h3>服务变更和中断</h3>
209 + <p>我们保留随时修改、更新或中断服务的权利,无需事先通知。我们不承担因服务变更或中断而造成的任何责任。</p>
210 + <h3>用户行为</h3>
211 + <p>您应确保在使用服务时遵守所有适用的法律和规定,不进行任何非法活动或恶意行为,包括但不限于网络攻击、数据爬取或任何形式的网络欺诈。</p>
212 + </section>
213 + <section>
214 + <h2>免责声明</h2>
215 + <p><strong>免责声明:</strong></p>
216 + <p>· 使用本转发服务时,您应自行承担风险。我们不保证服务的及时性、安全性、可用性或准确性。对于因使用或无法使用本服务而造成的任何直接、间接、特殊或后果性损害,我们不承担任何责任。</p>
217 + <p>· 我们不对通过本服务转发的内容承担责任,包括但不限于版权、商标或其他知识产权问题。您应确保您有权转发目标 URL 的内容,并且遵守所有适用的法律和规定。</p>
218 + <p>· 我们保留随时修改或中断服务的权利,无需事先通知。本服务不提供任何形式的保证或条件,无论是明示的还是暗示的。</p>
219 + <p>· 该服务不收取任何费用,使用开源代码创建,如果本服务侵犯了任何您的权利以及现有条款,请联系:01@liushen.fun,我们将立刻关闭该服务。</p>
220 + </section>
221 + </div>
222 + <footer>
223 + <p>&copy; 2024 转发服务. 保留所有权利.</p>
224 + <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
225 + <span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span><span id="busuanzi_container_site_uv"> | 本站访客数<span id="busuanzi_value_site_uv"></span>人次</span>
226 + </footer>
227 + </body>
228 +
229 + </html>
230 + `,{
231 + headers: {
232 + 'content-type': 'text/html;charset=UTF-8',
233 + },
234 + status: 200 // 确保状态码是200
235 + });
236 + };
237 + const actualUrlStr = url.pathname.replace("/", "") + url.search + url.hash;
238 + const actualUrl = new URL(actualUrlStr);
239 + const modifiedRequest = new Request(actualUrl, {
240 + headers: request.headers,
241 + method: request.method,
242 + body: request.body,
243 + redirect: 'follow'
244 + });
245 + handleSpecialCases(modifiedRequest);
246 + const response = await fetch(modifiedRequest);
247 + const modifiedResponse = new Response(response.body, response);
248 + modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');
249 + return modifiedResponse;
250 + }
Plus récent Plus ancien