oaifree反代问题,成功解决送红包!!!

我现在公司的网络屏蔽了“”new.oaifree.com“” 现在我在cloudflare新建一个wokrer将“”new.oaifree.com“” 进行反代,可以成功打开到网站,但问题来了,由于始皇的代码

export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    url.host = 'new.oaifree.com';
    return fetch(new Request(url, request))
  }
}

只反代了主站,我查看F12证实界面皮肤由crn.oaifree.com提供 其需要加载的界面皮肤 由于也被屏蔽了没有显示出来,导致如图所示。 请问怎样修改代码才能把全部网站反代到cloudflare的网站里。试过提问用chatgpt的代码,不是改了东西不能登录就是跟原来一样。可以的话麻烦把“shared.oaifree.com“ 反代代码里。

成功解决的老友发个 8.8元红包,谢谢!!!

5 个赞

shared不能反代的,这个不用想了。cdn被屏蔽这个有点棘手

1 个赞

嗯,shared 不解决也可以,主要是cdn这个。大佬要尝试一下吗

你看看是怎么屏蔽的,是无法解析ip还是连不上ip。
cmd运行 nslookup cdn.oaifree.com
和 ping cdn.oaifree.com
看一下

caddy反代时可以覆写明文

挂代理不行吗?

公司网络 不能用代理。

刚看了下,cdn.oaifree.com 应该也可以反代。不过用cf worker反代的话,会有大量的请求,worker的额度可能撑不住。

1 个赞

试过,不行…

问了一晚上。就是行不通才上论坛问。也问过 Claude

出个馊主意:把你的反代域名给 Neo,他配置一下就行 :clown_face:

1 个赞

ping不通。提示time out.

::希望大佬看到这个回复

我是想问你能不能解析到ip

解析不了的话大概率是dns问题,改一下dns就行了

如果能解析ip但是ping不通,才说明是被墙了,不过cf的cdn一般是不容易被墙的

公司网络,一切网络设置都不能修改。公司屏蔽了一切社交,聊天等等的网络。

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
    const url = new URL(request.url);
    
    // 根据请求的域名决定目标地址
    let targetUrl;

    if (url.hostname === 'mycustomdomain.com') {
        targetUrl = 'https://www.bbb.com' + url.pathname + url.search;
    } else if (url.hostname === 'cdn.mycustomdomain.com') {
        targetUrl = 'https://cdn.bbb.com' + url.pathname + url.search;
    } else {
        return new Response('Not Found', { status: 404 });
    }

    // 创建新的请求对象
    const modifiedRequest = new Request(targetUrl, {
        method: request.method,
        headers: request.headers,
        redirect: 'follow'
    });

    // 发起请求并获取响应
    const response = await fetch(modifiedRequest);

    // 克隆响应以便修改
    const newResponse = new Response(response.body, response);

    // 检查请求的域名并修改响应中的内容
    if (url.hostname === 'mycustomdomain.com') {
        const text = await response.text();

        // 将响应中的 cdn.bbb.com 替换为 cdn.mycustomdomain.com
        const modifiedText = text.replace(/cdn\.bbb\.com/g, 'cdn.mycustomdomain.com');

        // 返回修改后的响应
        return new Response(modifiedText, {
            headers: newResponse.headers,
            status: newResponse.status,
            statusText: newResponse.statusText
        });
    }

    // 对于 cdn.mycustomdomain.com 请求,添加 CORS 头部
    if (url.hostname === 'cdn.mycustomdomain.com') {
        newResponse.headers.set('Access-Control-Allow-Origin', '*'); // 根据需要修改
        newResponse.headers.set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
    }

    return newResponse;
}

看看调整以下相关域名行不行。主要想法是对 new 子域反代并修改响应内容的 cdn 子域到自定义 cdn 反代域名,这样指定 cdn 反代域名可以正确响应源 cdn。类似明文覆写。

不行,输入access token后没反应。有时改代码太多直接登录不上

cdn 资源可以访问了吗?控制台有什么错误吗?如果思路没问题,可以把覆写请求使用油猴脚本修改。这样 worker 只处理不同子域的反代。

我用本地电脑输入 access token 后没反应 你可以试试用你的 worker 试试.

公司电脑打开一样情况.

也就是代理两个域名呗,你把html的url全部替换成代理域名,再根据路径去判断要代理的哪个网站,代理请求就完事