Cloudflare流量中转、Workers-VLESS、Zero Trust-WARP及Tunnels内网穿透等应用配置部署

 Cloudflare应该是业界 最有良心的企业吧,旗下有不少高质量的应用,而且免费。建议应急使用,切勿滥用

 首先注册 Cloudflare 账户

 一、 使用Cloudflare中转流量并优选IP

    对于支持WebSocket、gRPC协议的应用,如V2ray,Xray,Trojan-Go等,使用Cloudflare中转流量的优点是:不会暴露你服务器的真实IP,因此能防止IP被墙;能拯救被墙的IP;域名解析转移到Cloudflare,安全也稳定,但缺点是可能出现降速现象。

1、登录 Cloudflare 账户,在域名提供商网站上将域名解析服务器 Namesever 指向 Cloudflare 所提供的Namesevers地址,等待生效;

2、在Cloudflare 网站DNS板块中将域名的的A 记录指向VPS的 IP,确保云朵为橙色(Proxied);

3、在 SSL/TLS 版块中的 Overview 里,将加密模式调整为 Full 或 Full (strict);

4、在 SSL/TLS 版块中的 Edge Certificates 里,将 Minimum TLS Version 调整为 TLS 1.2,并在下方确保开启对 TLS 1.3 的支持;

5、在网络版块中启用WebSockets或gRPC;

6、在此处下载软件解压后运行,程序会自动查找适合你当地网络的IP。在客户端里将主机IP修改为上述优选的IP,其他依据实际填写。

7、(可选)在安全性版块中,WAF里设置防火墙规则。可以添加一条Action为Allow规则, Field选IP(填你自己的IP)或者Path(WebSocket服务的Path)。参考这里

二、在 Cloudflare Workers 部署 VLESS 节点

1、登录 Cloudflare 账户,转到“Workers & Pages”页面,点击“Create Application”按钮



2、点击“Create Worker”按钮



3、设置workers的名称,点击“Deploy”按钮


4、出现如下页面,点击“Configure Worker”按钮



5、点击“Quick Edit”按钮,修改代码




6、转到项目文件,点击复制按钮将文件内容全部复制,然后粘贴进workers中。然后用自己的UUID替换第7行默认的 UUID,然后点击“Save and deploy”按钮

7、在右侧的侧边栏中,转到“Preview”选项卡,然后点击打开新窗口按钮,可以看到伪装网站模样


8、在访问的域名后面加上 /UUID,可以得到关于 workers 节点的分享链接信息,导入至客户端即可

9、如需要绑定自己的域名,则转到该workers的Preview页面,点击“Triggers”,点击“Add Custom Domain”,输入你想要绑定的域名。说明:一级域名需要绑定在Cloudflare账号里面,与worker应用绑定的二级域名没有被占用,Workers会自动在DNS里加上解析记录





10、客户端配置

nekoray:


clash.meta:

  - name: "cf-worker"
    type: vless
    server: worker.mydomain.com
    port: 443
    uuid: uuid
    network: ws
    tls: true
    udp: false
    sni: worker.mydomain.com
    client-fingerprint: chrome    
    ws-opts:
      path: /?ed=2048
      headers:
        Host: worker.mydomain.com

三、配置Cloudflare Zero Trust账户

        WARP 是 Cloudflare 推出的一项虚拟私人网络(VPN)服务,它使用Cloudflare 的全球网络来保护你设备的所有互联网流量。它提供基于 WireGuard 协议的网络流量安全及加速服务,能够让你通过连接到 Cloudflare 的边缘节点实现隐私保护及链路优化

       1、登录 Cloudflare 账户,点击左下角的Zero Trust,点击输入组织名称(后面可以随意更改),点击 Next,选择第一个免费计划,下一步直接点击 Proceed to payment提交,有外币信用卡可以绑定支付0元,没有的话可以尝试点击Next,然后下一步点击Purchase支付即可,然后输入前面填写的团队名称点击Finish setup即可,如果页面没有跳转,再次直接点击左下角Zero Trust进去即可

       2、点击Settings菜单下的WARP Client


3、点击Manage进入下一步


4、点击Add a rule配置规则


5、按照以下配置,Value处请填写你的邮箱(例:abc@gmail.com,后缀为@gmail.com,多个邮箱可用回车分开),点击Save保存规则!


6、对于图形客户端WARP,到此处下载安装安装后,在设置-账号里面点击登录到Cloudflare Zero Trust。然后点击下一步接受进入登录界面,点击确认会打开浏览器,输入自己的邮箱发送验证码,打开邮箱输入收到的验证码,登录后点击打开客户端连接即可。


7、对于CLI客户端warp,在此处 找到对应版本的安装方法,如我的VPS是ubuntu-22.04,SSH登录,运行以下命令

curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
sudo apt-get update && sudo apt-get install cloudflare-warp

安装完成后,查看帮助信息

warp-cli -h

warp-cli register 用于免费用户注册,warp-cli  teams-enroll 用于Team用户注册,warp-cli delete删除现有注册

在chrome浏览器里面打开 https://[teams-id].cloudflareaccess.com/warp 这个链接,会要求你登陆自己的Team,登陆成功后会打开这样一个页面


快捷键Ctrl+Shift+I打开开发者工具,把 href 单引号内的内容复制出来 com.cloudflare.warp://...    替换下面命令中的herf


  然后在服务器上执行
warp-cli teams-enroll-token href

如果没什么问题,服务器上的 Warp 就部署好了

查看账号信息

warp-cli  account

连接服务器

warp-cli  connect

注意:WARP默认是全局的,会接管VPS所有流量,连接成功后,SSH无法直接使用。解决办法之一是按照下述第五点的方法,配置cloudflare SSH tunnel,配置成功后,可通过浏览器SSH登录到VPS。

   还有一种方法是,执行warp-cli  connect命令之前,在cloudflare网站-zero trust-settings-warp client处编辑profile settings



Service mode默认的Gateway with WARP 修改为Proxy mode,点击save profile。WARP将使用代理模式,默认端口40000。可以配合xray/v2ray进行分流设置,解锁一些应用,参考这里

也可以不修改Service mode,保持默认的Gateway with WARP,而是修改Split Tunnels,将你本地电脑的IP加入Exclude IPs and domains列表,这个列表里的IP或域名的流量就不会经过WARP,这样从这个IP就可正常SSH登录到你的VPS。



加入想要排除的IP或域名,点击Save destination后,列表会立即下发给安装了WARP的客户端。

下面是几个常用命令

warp-cli  status
warp-cli  settings
warp-cli enable-always-on


四、Tunnels内网穿透配置(以群晖为例)

1、登录 Cloudflare 账户,依次点击左下角的Zero Trust-Access-Tunnels,页面中点击+Create a tunnel,输入tunnels name


点击save tunnel,会弹出各种环境下connector的安装指南


2、这里以docker安装为例。SSH登录到群晖后台(当然也可以网页登录群晖,在container manager里配置),运行以下命令

sudo docker run  --net=host --name=cloudflared  --restart=unless-stopped -d  cloudflare/cloudflared:latest tunnel --no-autoupdate run --token yNmE4MjZiZTk0M2Y3MGYzNDA5ODIyODhkMjAwNTMiLCJ0IjoiMGIxZTk4MWUtOWQ4ZS003LWFkNTktM2ZmMDRjZjEzZDI0IiwicyI6IlpqlNRE15WdFlXTm1OQzAwT1dVMExXSTBZelF0TVdNMk16Vm1Oekl6TVdJrhtj9

说明:此命令与官方的主要不同之处在于加入了参数 --net=host,默认情况下docker是以bridge方式连接,但经测试,bridge方式存在问题。另外,将 token后面的一长串字符串换成你自己的。

安装完成后,查看运行情况

sudo docker ps -a

3、正常运行的话,回到cloudflare网站,可以看到Connectors的连接状态


再点击next


开始添加子域名,参照前述二.9点。Path 留空, Type 处建议使用 HTTP,因为 Cloudflare 会自动为你提供 HTTPS,URL填写 localhost:5000

点击Save tunnelCloudflare会自动下发配置到群辉docker中的tunnel connector里。这点很重要,若想更改服务协议及端口以访问其他的应用,直接在cloudflare网站tunnel里修改即可生效。

群晖的web访问端口在群晖-控制面板-登录门户里查看


注意不要勾选自动重定向http至https。

在cloudfalre网站里Tunnels菜单下看到刚建立的tunnel name,status是否为HEALTHY


可以登录群晖,在container manager 里查看容器cloudflared的日志


在浏览器里输入第3步里设置的子域名,即可访问群晖的登录页面

五、cloudflare不仅可以用来内网穿透web应用,,也可以用来访问SSH,VNC,RDP等(当然这些被访问的机器里要安装相应的服务端程序)。如可以为自己的VPS(当然也可以为群晖)建立一个name为ssh的tunnel,从浏览器通过SSH登录你的VPS。步骤同前一样,只是在第3步设置域名及协议时进行修改


但此时还不能直接从浏览器访问

依次点击左下角的Zero Trust-Access-Applications,点击Add an application,选择Self-hosted,设置name,及subdomain


点击next


rules设置参考前述三.5点。
点击next




最后,点击
Add application完成配置


在浏览器访问配置的域名,出现如下验证画面


     输入前面你配置的email,在email找到验证码,即可SSH到你的VPS。



评论

热门博文

Xray安装配置VLESS-XTLS-Vision及VLESS-XTLS-uTLS-REALITY

在VPS上轻松搭建L2TP/IPSec图文教程(通吃各种架构的VPS,包括KVM,OpenVZ等)

V2Ray安装配置VMESS-TLS及VMESS-TLS-WS