一、虚拟机配置

1.操作系统为CentOS7.9

2.CPU规格

选择2处理器数量*2处理器内核

i1

3.虚拟机内存为2GB,模拟普通服务器

2

4.网络选择桥接网络,NAT公网IP无法访问

3

5.磁盘大小设置40GB

4

6.软件选择带GUI的服务器,时区设置为上海

5

7.编辑网络

6

宿主机IP在Windows界面下,win+r输入cmd打开终端,然后输入ipconfig查询

编辑虚拟机桥接网络的时候,必须注意的一点就是虚拟机的IP要与查询出来的虚拟机IP网段一样,子网掩码与网关也要一样,DNS服务器填写网关地址

二、配置服务器环境

1.安装宝塔面板

浏览器输入宝塔面板,选择Linux操作系统——CentOS7.9的安装脚本,复制,到虚拟机中执行

1
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

7

浏览器登录

2.设置宝塔面板

1.进入面板将宝塔面板的入口改为/btadmin

8

2.修改账号及密码

9

3.添加测试站点

10

11

12

13

3.安装cloudflared

1)安装yum-utils

1
yum install yum-utils -y

2)添加cloudflared.repo到config-manager

1
yum-config-manager --add-repo https://pkg.cloudflare.com/cloudflared-ascii.repo

3)安装cloudflared

1
yum install cloudflared -y

4.登录cloudflared

Linux中登录cloudflared

1
cloudflared tunnel login

这时弹出一个链接,使用虚拟机自带浏览器打开,登录成功后关闭再次打开,就会出现一个授权页面,然后选择用来做内网穿透的域名授权即可

成功后会生成证书,放置于~/.cloudflared/cert.pem中

14

15

5.建立隧道

建立一个名为web1的隧道

1
2
#cloudflared tunnel create <隧道名称>#     示例
cloudflared tunnel create web1

成功后会提示相关凭证已放置于 ~/.cloudflared/.json中

使用命令查看

1
cloudflared tunnel list

16

隧道名称:web1

隧道ID:2fb3636f-ab2e-429f-8b92-562d3290ae12

6.新建Tunnel对应的DNS记录

1
2
#cloudflared tunnel route dns <隧道名称> <域名>#       示例
cloudflared tunnel route dns 2fb3636f-ab2e-429f-8b92-562d3290ae12 qhuaishop.top

成功后创建CNAME记录将域名指向隧道,回到cloudflare网站,点击域名,点击左边的DNS,能看到一条新的CNAME的DNS记录,此时证明解析成功

17

18

7.新建站点配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
vim ~/.cloudflared/config.yml
#内容示例
tunnel: <隧道id>
credentials-file: /root/.cloudflared/<隧道id>.json
protocol: http2
originRequest:
connectTimeout: 30s
noTLSVerify: false

ingress:
- hostname: <域名>
service: http://localhost:85
- hostname: <域名>
service: ssh://localhost:80
- service: http_status:404

#配置内容
tunnel: 2fb3636f-ab2e-429f-8b92-562d3290ae12
credentials-file: /root/.cloudflared/2fb3636f-ab2e-429f-8b92-562d3290ae12.json
protocol: http2
originRequest:
connectTimeout: 30s
noTLSVerify: false

ingress:
- hostname: qhuaishop.top
service: http://localhost:85
- hostname: www.qhuaishop.top
service: http://localhost:80
- service: http_status:404

8.启动cloudflared并且让cloudflare自启动

修改systemd文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
vim /etc/systemd/system/cloudflared.service
#写入以下内容-示例
[Unit]
Description=cloudflared
After=network.target

[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --loglevel debug --transport-loglevel warn --config /root/.cloudflared/config.yml tunnel run <隧道id>
RestartSec=5s

[Install]
WantedBy=multi-user.target

#实际内容
Description=cloudflared
After=network.target

[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --loglevel debug --transport-loglevel warn --config /root/.cloudflared/config.yml tunnel run 2fb3636f-ab2e-429f-8b92-562d3290ae12
RestartSec=5s

[Install]
WantedBy=multi-user.target

启动cloudflared

1
2
3
systemctl stop cloudflared
systemctl start cloudflared
systemctl enable cloudflared --now

9.测试能否运行

输入以下命令启动Tunnel

1
2
#cloudflared tunnel --config ~/.cloudflared/config.yml run <tunnel-id>
cloudflared tunnel --config ~/.cloudflared/config.yml run 2fb3636f-ab2e-429f-8b92-562d3290ae12