CF 绕开备案

我们可以使用 CF Workers 来进行转发请求。

 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
addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const targetUrl = "http://xxx.xxx.xxx:9000";

  const url = new URL(request.url);
  const path = url.pathname + url.search;

  const destination = targetUrl + path;

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

  const response = await fetch(modifiedRequest);

  const modifiedResponse = new Response(response.body, response);

  return modifiedResponse;
}