Last active 1728015792

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

Revision 8f070aaa3d0012f89c3e83539770d055dfb58519

worker.js Raw
1addEventListener('fetch', event => {
2 event.respondWith(handleRequest(event.request))
3})
4const specialCases = {
5 "*": {
6 "Origin": "DELETE",
7 "Referer": "DELETE"
8 }
9}
10function 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}
26async 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}