注册cloudflare账号

如果你有了请直接看下一篇

Cloudflare官网

注册然后Cloudflare会给你发邮件,验证即可

域名迁入Cloudflare

1.修改DNS

  • 注意!修改DNS服务器需要大概30分钟才可同步,最长48小时

1.阿里云

以我在阿里云注册的域名为例

阿里云控制台

  • 搜索域名并进入域名控制台

image-20211213191811269


  • 点击要转出的域名

image-20211213191916186


  • 修改DNS

image-20211213192008945


image-20211213192320536


2.Namesilo

  • 登录控制台

Namesilo控制台

  • 点击域名管理

image-20211213193548630


  • 点击要修改的域名

image-20211213193922544

image-20211213194054048


  • 修改dns

image-20211213194520709


2.刷新DNS缓存

你可以执行命令来刷新DNS缓存

  • CMD快捷键:Windows键+R>输入cmd:打开命令提示符
ipconfig /flushdns

等到DNS已经成功迁入Cloudflare后你以后DNS就不用登录阿里云了,直接在Cloudflare管理DNS解析

阿里云就是一个域名注册商

下载程序

Github官方下载

其他版本

1.创建一个文件夹

下载完后创建一个文件夹存放所有文件

把下载好后的exe程序改名为

cloudflared.exe

记得勾选开启拓展名

image-20211214233220758


2.身份认证

下载完后你应该得到了一个cloudflare的exe程序

将这个程序移动到刚才创建的文件夹(C:cloudflared)

注意,你放在C盘需要管理员权限

你可以使用Windows键+X打开cmd(管理员)

image-20211214231442887

默认的cmd管理员是在C:\Windows\System32不是在cloudflared的这个目录下

然后到你放cloudflared.exe的文件目录

  • 切换目录命令
cd <目录>
  • 示例
cd C:\cloudflared

image-20211214231937356

1.安装cloudflare服务

cloudflared.exe service install

image-20211215012201557


2.身份认证命令

  • powershell
.\cloudflared.exe tunnel login
  • cmd
cloudflared.exe tunnel login

  • 认证

输入完命令后会跳转到浏览器, 如果你没有登录的话会先让你登录然后你可以复制链接到浏览器打开, 如果你是在Linux的话你可以把这个链接复制到Windows或者Android打开

image-20211213203018112

  • 选择域名认证

image-20211213201647753

授权后(cert.pem)证书会下载

若没有下载,请看

C:\Users\<用户>\.cloudflared

这个目录下,会有cert.pem证书文件

把这个证书文件(cert.pem)放到第一步 #1.创建一个文件夹的目录下

注意:这个证书文件非常重要和SSL是一样的,请保管好不要泄露

现在你的文件夹里应该有两个文件

  • cloudflare.exe
  • cert.pem

没有请检查以上步骤有没有做错

3.创建隧道

  • 创建隧道
cloudflared.exe tunnel create <隧道名称>
  • 例子:新建一个名为web的隧道
cloudflared.exe tunnel create web

image-20211214235224747

将隧道json文件复制到第一步创建的文件目录下,保存隧道UUID

如果你忘记了这个隧道的UUID你可以使用命令

  • 列出此账号的所有隧道
Cloudflare.exe tunnel list
  • 删除隧道
Cloudflare.exe tunnel delete <UUID或隧道名字>

现在文件夹里有这3个文件

  • cloudflare.exe
  • cert.pem
  • 235162f6-0d05-46ea-8025-6cd063a91a7b.json #这个是随机的不会一样

4.创建一个配置文件

自带的记事本会有编码问题,请选择一个好的编辑器,推荐VScode

创建一个yaml文件,名字随意,不可以用中文!这里以config.yaml为例子

内容如下#号为注释不会被执行

tunnel: <隧道UUID或者隧道名称>
credentials-file: <隧道UUID文件路径>.json
# 如果你在你的起源服务器中使用自签名的证书,请取消以下两行的注释
# originRequest:
# noTLSVerify: true
ingress:
  - hostname: <域名>
    service: <协议>://<ip>:<端口>
  - hostname: <域名>
    service: <协议>://<ip>:<端口>
  - service: http_status:404
logfile:  C:\Cloudflared\cloudflared.log

示例

tunnel: 235162f6-0d05-46ea-8025-6cd063a91a7b
credentials-file: C:\cloudflared\235162f6-0d05-46ea-8025-6cd063a91a7b.json
# 如果你在你的起源服务器中使用自签名的证书,请取消以下两行的注释
# originRequest:
# noTLSVerify: true
ingress:
- hostname: argo.goojoe.cc #------需要穿透的域名
  service: http://127.0.0.1:80   #转发本机的80端口到隧道公网
- hostname: mc.goojoe.cc         #需要穿透的域名可以多个
  service: tcp://127.0.0.1:25565 #这一行为mc,tcp协议开服端口
- service: http_status:404
logfile:  C:\Cloudflared\cloudflared.log #这一行为log日志

多个域名只需要复制

- hostname: <域名>
  service: <协议>://<ip>:<端口>

到ingress:下方即可,注意格式不能错,不要多缩进了

你可能会疑问,多个端口是不是要改,这个是不用的,你可以用宝塔面板来开放管理端口

现在的文件夹

  • cloudflare.exe
  • cert.pem
  • 235162f6-0d05-46ea-8025-6cd063a91a7b.json #这个是随机的不会一样
  • config.yaml

5.配置DNS

  • 命令行
cloudflared tunnel route dns <隧道UUID 或 隧道名称> <域名记录名>

创建一个指向隧道的DNS CNAME记录主机名

  • 示例
cloudflared tunnel route dns web argo

这样cloudflare会自动配置好DNS记录

  • cloudflare控制面板

除了命令行,你也可以到cloudflare的控制面板来手动添加记录

image-20211215002737369

<隧道UUID>.cfargotunnel.com

注意了这里目标必须为隧道UUID

6.运行隧道

  • 运行隧道
cloudflared.exe tunnel --config <yaml配置文件路径> run
  • 示例
cloudflared.exe tunnel --config C:\cloudflared\config.yaml run

然后将这个cmd窗口最小化,后面会讲如何作为服务运行

7.安装web服务

如果你装了IIS管理并且配置好了网站那么现在外网是可以访问的

但是IIS我不会用,所以我选择Windows版宝塔用Nginx作为web服务

注意,宝塔需要在Windows server系统安装,一般来说我们日常用的不是server应该装不上也不推荐,建议虚拟机练手

  • 安装宝塔

官网下载

image-20211215004031228

  • 解压并打开BtSoft.exe

image-20211215004215620

推荐开机自启动

等待一段时间

| Loading......

完成后打开并阅读服务条款,然后去bt.cn注册一个账号

image-20211215005030972

这些东西分别是

  • Nginx ------------web服务器,必装
  • mysql ------------数据库,网站都会用到,必装
  • php --------------网站也会用到,必装
  • fliezilla -----------FTP服务,可选
  • phpmyadmin 管理数据库的,也是必装除非你会命令行....
  • 装完后添加一个站点

image-20211215005556320

现在你可以访问你的网站了

image-20211215011058864

如果不能访问

  • 排查config.yaml配置文件缩进,域名,端口有没有错误
  • 查看config.yaml配置文件是不是UTF-8格式

8.作为系统服务运行

Windows+R输入regedit打开注册表

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices

找到cloudflared

image-20211215012652319

image-20211215012725745

如果没有你可以输入

cloudflared.exe service install

来安装服务

  • 编辑imagepath
<cloudflared.exe文件位置绝对路径> --config=<yaml配置文件绝对路径> tunnel run
  • 示例
C:\cloudflared\cloudflared.exe --config=C:\cloudflared\config.yaml tunnel run

完成后把之前运行的cmd窗口关掉

Ctrl+Alt+Delete打开任务管理器

image-20211215013553709

然后看看你的网站还能否正常运行,可以的话就成功了,重启也会自启动的