mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
955 字
3 分钟
使用CF Workers 优选反代 EMBY 傻瓜级教程
2026-02-10
浏览量 0 · 访客 0

使用CF Workers 优选反代 EMBY 傻瓜级教程#

本教程转载自 https://telegra.ph/CF-Workers-Reverse-Proxy-01-17

NOTE

本教程提供了一种通过Cloudflare Workers实现EMBY服务器优选反代的方法,可以有效提升访问速度。

前期准备#

TIP

在开始之前,请确保你已经准备好了以下物品:

  1. CloudFLare账号
  2. 托管在Cloudflare上面的域名
WARNING

同一个反代建议不要给很多人用,否则流量过大可能违反CF的政策导致被封号。建议小范围自用。

没有域名的可以看这篇,白嫖一个: https://zhuanlan.zhihu.com/p/1932505765198926962

第一步: 部署代码#

首先打开Cloudflare面板,在左侧菜单找到 Workers 和 Pages,点击 创建应用程序,模板选Hello word 开始新建一个Worker。

CF Workers创建界面

点击 编辑代码,将原有的代码全部删除,粘贴以下代码。

WARNING

粘贴后,请务必修改代码顶部的 target 这一行,填入你自己想要反代的Emby服务器地址和端口。

const myConfig = {
target: "https://你的emby地址:端口号",
enableCors: true,
};
export default {
async fetch(req, env, ctx) {
const u = new URL(req.url);
const t = new URL(myConfig.target);
u.protocol = t.protocol;
u.hostname = t.hostname;
u.port = t.port;
const h = new Headers(req.headers);
h.set("Host", t.hostname);
if (h.has("Referer")) h.set("Referer", myConfig.target);
if (h.has("Origin")) h.set("Origin", myConfig.target);
const r = new Request(u.toString(), {
method: req.method,
headers: h,
body: req.body,
redirect: "follow",
});
try {
const res = await fetch(r);
const rh = new Headers(res.headers);
if (myConfig.enableCors) {
rh.set("Access-Control-Allow-Origin", "*");
rh.set(
"Access-Control-Allow-Methods",
"GET,POST,PUT,PATCH,DELETE,OPTIONS",
);
rh.set("Access-Control-Allow-Headers", "*");
}
return new Response(res.body, {
status: res.status,
statusText: res.statusText,
headers: rh,
});
} catch (err) {
return new Response(err.message, { status: 502 });
}
},
};

点击右上角的 部署 (Deploy) 按钮保存。

TIP

可以去找在线Javascript混淆加密处理一下防止被CF特征识别。

第二步: 域名CNAME优选#

打开你托管在Cloudflare的域名管理页面,进入 DNS 记录。

添加一条 CNAME 记录:

  • 名称: 填写你想要的前缀(例如 emby)
  • 目标: 填写一个优选域名
WARNING

务必关闭 “代理状态”

优选域名可以在这里选: https://cf.090227.xyz/

DNS记录设置

第三步: 配置路由#

这是最关键的一步,让你的域名流量经过刚才创建的Worker。

  1. 在你的域名管理页面左侧菜单栏,点击 Workers 路由 (Workers Routes)。

Workers路由设置

  1. 点击 添加路由。

路由一栏输入:

第二步添加记录的名称.你的域名/*

例如: emby.你的域名.com/*

WARNING

注意!!! 一定要带上/*

添加路由设置

Worker 一栏选择你第一步创建的那个Worker,然后点击保存。

NOTE

本教程的优选域名方式也可以用于其它功能的workers,反代代码也可以用于emby服务器以外的网站,想要个性化的功能可以让AI帮你写代码

结束#

现在打开你在DNS设置的那个域名(例如 https://emby.你的域名.com),应该就可以直接访问你的Emby了,并且走的是优选线路。

TIP

补充: 反代需要使用国内dns解析,否则可能连不上,如果你有同时使用代理软件,请自行添加规则,把你自己的域名走直连,并且DNS要用国内的

TIP

补充: 在播放器上,服务器端口可以不填(默认443),也可以填443、2053、2083、2087、2096、8443

使用其它端口也许可以在晚高峰提升速度(我不确定)。本方式搭建的反代,使用hills的可以直接在它的服务器线路中添加

进阶#

NOTE

如果你有多个Emby服务器,想要通过同一个优选域名访问(例如用 /server1 访问第一台,/server2 访问第二台),懒得每个服务器都开一个workers, 可以使用下面的代码。

操作方法#

将Worker中的代码全部替换为以下内容,并修改顶部的配置区域。

const mapCfg = {
paths: {
"/server1": "https://你的第一台emby地址:端口",
"/server2": "https://你的第二台emby地址:端口",
},
main: "https://你的默认emby地址:端口",
cors: true,
};
export default {
async fetch(req, env, ctx) {
const rawUrl = new URL(req.url);
let target = mapCfg.main;
let prefix = "";
for (const key in mapCfg.paths) {
if (rawUrl.pathname.startsWith(key)) {
target = mapCfg.paths[key];
prefix = key;
break;
}
}
let cleanPath = rawUrl.pathname;
if (prefix) {
cleanPath = cleanPath.replace(prefix, "");
if (cleanPath === "" || !cleanPath.startsWith("/")) {
cleanPath = "/" + cleanPath;
}
}
const tUrl = new URL(target);
const finalUrl = new URL(cleanPath + rawUrl.search, tUrl);
const h = new Headers(req.headers);
h.set("Host", tUrl.host);
if (h.has("Referer")) h.set("Referer", target);
if (h.has("Origin")) h.set("Origin", target);
const newReq = new Request(finalUrl.toString(), {
method: req.method,
headers: h,
body: req.body,
redirect: "follow",
});
try {
const res = await fetch(newReq);
const resH = new Headers(res.headers);
if (mapCfg.cors) {
resH.set("Access-Control-Allow-Origin", "*");
resH.set(
"Access-Control-Allow-Methods",
"GET, POST, PUT, PATCH, DELETE, OPTIONS",
);
resH.set("Access-Control-Allow-Headers", "*");
}
return new Response(res.body, {
status: res.status,
statusText: res.statusText,
headers: resH,
});
} catch (err) {
return new Response(err.message, { status: 502 });
}
},
};

使用说明#

  1. 修改 paths 中的内容,左边是路径前缀,右边是对应的服务器地址。
  2. 修改 main 中的地址,这是直接访问域名(不带前缀)时连接的默认服务器。
  3. 在Emby客户端填入地址时:
    • 访问默认服务器填: https://emby.你的域名.com
    • 访问其他服务器填: https://emby.你的域名.com/server1 (对应代码里设置的前缀)
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

使用CF Workers 优选反代 EMBY 傻瓜级教程
https://blog.030666.xyz/posts/cf-workers-reverse-proxy/
作者
祈雪
发布于
2026-02-10
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时