如何用奇怪的方式浏览被墙的网站Cloudflare

10月17日 · 2019年
檸檬君

相信很多设计尸和程序猿有时查资料有可能需要浏览一些被墙的网站。那么浏览境外的网站时就需要用到科学上网了。今天柠檬就教各位如何不是用 Cloudflare Workers 达到反向代理或利用 Cloudflare 免费CDN达到预览效果

第一步注册帐号

网站https://www.cloudflare.com

点击sign up

填个邮箱密码然后邮接收确认邮件即可完成注册

方法一 Workers-Proxy工人代理

Cloudflare Workers方式,每天每个账号有10万次免费请求,不过不用担心注册那么简单大家想到什么呢?(小声说:临时邮箱..)

  • 优点每个账号每天有10W次免费请求(浏览网页绝对够用)
  • 不需要自备域名
  • CDN线路比较新,浏览速度快

创建 Workers 机器人设置域名

点击右侧workers,创建一个机器人项目

三级域名可以自己随便写

域名前缀可以根据自己喜好来写,不可以二次修改三思后行~,想好后点击set up。然后选择免费方案

创建机器人

创建一个

点击 Create a Worker 创建一个项目

点击右上方想名称修改一下域名,如果对域名没要求可以不改,域名前缀最好不要有”_”或”-“否则可能会走TLS 1.3 协议导致部分浏览器无法打开

然后我们去到开源站复制大佬的脚本

https://github.com/Siujoeng-Lau/Workers-Proxy

https://github.com/Dandelionss/CloudFlare-Workers

// List of domains bind to your WorkersProxy. 所有绑定到这个worker的域名
const domain_list = ['https://cdn.reverse-proxy.live/', '这里需要填写你的项目域名']

// Website you intended to retrieve for users.要加速的网站.
const upstream = 'http://google.com'

// Website you intended to retrieve for users using mobile devices.要给手机用户加速的网站. (可以填成和上面一样的)
const upstream_mobile = 'http://google.com'

// Countries and regions where you wish to suspend your service.要屏蔽的地区
const blocked_region = [ 'KP', 'SY', 'PK', 'CU']

// IP addresses which you wish to block from using your service.要屏蔽的ip
const blocked_ip_address = ['0.0.0.0', '10.0.0.0']

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

async function fetchAndApply(request) {

    const region = request.headers.get('cf-ipcountry').toUpperCase();
    const ip_address = request.headers.get('cf-connecting-ip');
    const user_agent = request.headers.get('user-agent');
    let response = null;
    let url = request.url;

    if (await device_status(user_agent)){
        upstream_domain = upstream
    } else {
        upstream_domain = upstream_mobile
    }

    for(let domain of domain_list) {
        url = url.replace(domain, upstream_domain)
    };

    if (blocked_region.includes(region)) {
        response = new Response('Access denied: WorkersProxy is not available in your region yet.', {
            status: 403
        });
    } else if(blocked_ip_address.includes(ip_address)){
        response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', {
            status: 403
        });
    } else{
        let method = request.method;
        let headers = request.headers;
        response = fetch(url, {
            method: method,
            headers: headers
        })
    }
    return response;
}

async function device_status (userAgentInfo) {
    var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
    var flag = true;
    for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}
  
addEventListener("fetch", event => {
  let url = new URL(event.request.url);
  url.hostname = "www.google.com"; //改成你想反代的网站

  let request = new Request(url, event.request);
  event.respondWith(
    fetch(request, {
      headers: {
        'Referer': 'https://www.cloudflare.com/', //referer头,不必修改
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' //
      }
    })
  );
});

两个版本代码,第一个功能多一点,第二个功能少一点,任选其一,下面我就拿第一个来做示范,因为第一个速度会快一些而且稳定

设置参考

设置完成后点击右下角保存

然后我们可以打开这个链接测试下

https://dr.vczdbt26574.workers.dev/ ,目标加速 https://dribbble.com

当然如果你有自己域名也可以配置上去

方法二域名cdn加速

将dns设置到Cloudflare

将dns设置到Cloudflare dns 服务器去,然后用CNAME将要加速的网页填到解析去

然后点击 Add Record 即可

以及设置好的加速 Workers

http://dr.vczdbt26574.workers.dev/,目标加速 https://dribbble.com

https://wiki.dyf62976.workers.dev 目标加速维基百科wikipedia.org

https://google.dyf62976.workers.dev 目标加速 google.com

https://github.dyf62976.workers.dev 目标加速 https://github.com/

https://behance.bhndvl51302.workers.dev/ 目标加速 https://www.behance.net/





版权声明:

本站文章如未注明,均为原创,转载需注明出处并保留原文链接:转载自 柠檬极客 | lemongeek

本文标题:如何用奇怪的方式浏览被墙的网站Cloudflare

本文链接:https://lemongeek.com/708.html



0 条回应
验证码
输入运算符及数字使等式成立
{{comment.validate_num1}} = {{comment.validate_num2}}
点赞 确定
退出登录?
取消 确定