一、简介
前段时间在我的威联通NAS上搭建了个小笔记,由于没有固定IP,只能使用花生壳动态域名,域名比较难记。

http://**t.oicp.net:65530
http://**t.oicp.net:65530/vip.html #首页及资源访问

二、需求
1、使用Cloudflare免费的Workers,当访问 https://note.*.workers.dev/vip.html 时,能够“跳转"到家里的目标资源,并且隐藏 源URL;

2、绑定自己的域名,并且使用CF CDN (如有ICP备案,用腾讯云CDN更省事,回源地址直接填写花生壳的域名和端口,不用这么折腾);

3、动态IP更新完成后,仍能正常访问。

三、实现

  1. 隐形跳转
    在Cloudflare Workers 中使用代理(即反向代理),通过代理请求并将响应返回给用户,用户只能看到 https://note.*.workers.dev/,但实际上它是在请求另一个服务器上的资源。
  2. 文件访问的透明代理
    在 Workers 中使用 fetch() 来转发请求并返回文件内容。

这样,虽然用户访问的是 https://note..workers.dev/vip.html,但实际上从 http://*t.oicp.net:65530/vip.html 拉取并展示内容。

3、完整代码示例
以下是实现上述功能的代码:

addEventListener('fetch', event => {

event.respondWith(handleRequest(event.request))

})

async function handleRequest(request) {

// 目标服务器的基础URL

const targetOrigin = 'http://**t.oicp.net:65530';

// 获取原始请求的路径和查询字符串

const { pathname, search } = new URL(request.url);

// 构建目标URL

const targetUrl = new URL(pathname + search, targetOrigin);

// 复制原始请求的方法、头信息等,并修改为目标URL发起请求

const response = await fetch(targetUrl.href, request);

// 返回响应给客户端

return new Response(response.body, response);

}

使用Cloudflare Workers 反代花生壳动态域名 达到在家建站的目的
绑定自己的域名后,就能实现所需功能了:

使用Cloudflare Workers 反代花生壳动态域名 达到在家建站的目的
解释:
隐形跳转: 用户访问 https://note..workers.dev/vip.html 时,Workers 会将请求转发到 http://*t.oicp.net:65530/vip.html,并将响应返回给用户,地址栏不会暴露源 URL。

文件代理: 在 targetUrl 中动态构造目标网站的 URL(包括路径和查询字符串),然后用 fetch() 请求目标 URL 的内容。

无自动重定向: 使用 redirect: 'manual' 可以避免如果目标页面存在重定向时,自动跳转到目标地址,从而保持原始的 URL。

注意事项:
如果目标站点启用了 CORS(跨域资源共享),需要在响应中添加适当的 CORS 头来避免浏览器的安全限制。

你也可以根据需要设置缓存头、Cookie 或其他请求头信息,以便更好地处理用户请求。

有什么副使用,目前还未知,最大的优点就是完全免费,此代码许多是AI写的,如有不懂直接问AI。

最后修改:2025 年 04 月 01 日
如果觉得我的文章对你有用,请随意赞赏