介绍

官方描述如下:

Cloudflare Tunnel 是一款隧道软件,可以快速安全地加密应用程序到任何类型基础设施的流量,让您能够隐藏你的 web 服>务器 IP 地址,阻止直接攻击,从而专注于提供出色的应用程序。

借助cloudflare tunnel(以下简称cft)可以实现内网端口的映射,在某些情况下可以直接替代nginx

安装cft

# 添加源,<RELEASE>内填写版本代号(见下表)
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/ <RELEASE> main' | 
sudo tee /etc/apt/sources.list.d/cloudflare-main.list
# 添加GPG Key
sudo curl https://pkg.cloudflare.com/cloudflare-main.gpg -o /usr/share/keyrings/cloudflare-main.gpg
# 安装
apt update&&apt install cloudflared

配置cft

登录

首先需要登录cloudflare并指定你希望用于绑定cft的域名
(绑定后可以使用根域名或解析子域名)

cloudflared tunnel login

创建隧道

cloudflared tunnel create <隧道名称>

请删去“<>”

解析域名

解析的域名必须是没有过解析记录的

cloudflared tunnel route dns <隧道名称> <域名>

为隧道创建一个配置文件

~/.cloudflared/knat.yml下创建配置文件

cd ~/.cloudflared/knat.yml
vim example.yml

注:”example”是文件名请随意起
粘入以下内容

url: http://localhost:2233  #内网端口
tunnel: xxxxxxx-5b0e-xxxx-8034-xxxxxxx #创建隧道时输出的id
credentials-file: /root/.cloudflared/<创建隧道时输出的id>.json

启动隧道

cloudflared tunnel --config ~/.cloudflared/example.yml run

这样本地2233端口就映射到你绑定的域名上了

后台运行

安装screen

Ubuntu/Debian

apt-get -y install screen

CentOS/RedHat/Fedora

yum -y install screen 

创建新窗口

screen -S cft

在新窗口中运行上面的cft运行指令

要令窗口在后台运行先按ctrl+A再按ctrl+D

要重新打开该窗口,请用如下命令

screen -r cft

(cft只是一个自定义名称)

End

我将我的网盘通过这种方式映射到了nyapan.mouup.top,访问速度甚至有所提升,但是不同地区速度会有差异

cloudflared tunnel除了内网穿透其实还可以有其他用处,保护网站这就不必说了,仔细想想如果在一台国内的服务器上使用它,是不是可以解决某个令人头疼的无题呢?(doge)