导语
在日常开发或运维中,我们常常需要将本地服务或内网应用暴露到公网访问(例如远程调试、家庭NAS服务等)。但传统的内网穿透方案要么需要复杂的端口映射,要么面临安全风险。Cloudflare Tunnel 作为一款安全可靠的内网穿透工具,通过隧道代理实现无需公网IP即可访问内网服务。本文将通过 cf-tunnels.sh 脚本,帮助你快速完成 Cloudflare Tunnel 的安装、管理和删除,让内网穿透变得简单高效。
1. 准备工作
在开始之前,请确保你的环境满足以下条件,否则可能会导致脚本执行失败:
- Cloudflare 账号与域名:你需要拥有一个 Cloudflare 账号(点击注册),并在 Cloudflare 控制台添加了需要穿透的域名(例如
example.com)。 - Linux 服务器:脚本仅支持 Linux 操作系统,确保你的服务器运行的是 Ubuntu、CentOS 等主流 Linux 发行版。
- SSH 访问与权限:你需要通过 SSH 登录服务器,并且拥有
sudo权限(用于安装软件和修改系统配置)。
提示:如果你的域名还未添加到 Cloudflare,需先在 Cloudflare 控制台完成域名添加,并确保 DNS 记录已正确配置(例如 A 记录指向服务器 IP)。
2. 下载并安装脚本
2.1 下载脚本文件
首先,通过 curl 命令从 GitHub 仓库下载 cf-tunnels.sh 脚本文件(脚本由第三方维护,确保来源可信):
# 从项目仓库下载脚本
curl -O https://raw.githubusercontent.com/jiuerkeji/cloudflare-tunnels/main/cf-tunnels.sh
2.2 添加执行权限
下载完成后,需要为脚本添加可执行权限,否则无法直接运行:
# 赋予脚本执行权限
sudo chmod +x cf-tunnels.sh
3. 运行脚本与操作选择
运行脚本后,会进入交互式菜单,提供三种核心操作选项。执行以下命令启动脚本:
sudo ./cf-tunnels.sh
执行后,你将看到如下菜单:
请选择操作:
1. 安装 Cloudflare 内网穿透
2. 选择性删除 Cloudflare 隧道
3. 完全删除 cloudflared
接下来,我们将详细讲解每个选项的使用方法。
4. 详细操作指南
4.1 安装 Cloudflare 内网穿透(选项 1)
选择 1 进入隧道安装流程,这是最常用的场景(将本地服务通过隧道暴露到公网)。安装过程需要你提供以下关键信息:
4.1.1 输入隧道配置参数
- 隧道名称:自定义隧道的标识名称(例如
my-web-server),仅用于区分不同隧道。 - 域名:输入你在 Cloudflare 已添加的域名(例如
example.com),确保该域名已完成 DNS 配置。 - 本地服务端口:输入本地服务的监听端口(默认值为
80,通常对应 HTTP 服务;若你的服务使用443或其他端口,可自定义修改)。
4.1.2 脚本执行流程
脚本会自动完成以下操作:
1. 下载并安装 cloudflared:Cloudflare 官方客户端,负责隧道通信。
2. Cloudflare 授权:通过浏览器或 CLI 完成 Cloudflare 账号登录(首次使用需验证)。
3. 创建隧道与域名绑定:在 Cloudflare 中创建隧道,并将指定域名指向该隧道。
4. 配置系统服务:将隧道注册为系统服务,确保服务器重启后自动启动。
完成后,隧道将自动启动并运行,你可以通过绑定的域名直接访问内网服务。
4.2 选择性删除 Cloudflare 隧道(选项 2)
选择 2 可管理已创建的隧道,适用于不再需要某个隧道的场景。执行后,脚本会列出所有已创建的隧道(包含隧道 ID 和名称),例如:
当前存在的隧道列表:
1. ID: abc123, 名称: my-web-server, 状态: 运行中
2. ID: def456, 名称: home-nas, 状态: 已停止
你只需输入要删除的隧道 ID 或名称,脚本会执行以下步骤:
1. 终止该隧道的运行进程。
2. 删除隧道的配置信息。
3. 注意:隧道删除后,必须手动登录 Cloudflare 控制台,删除与该隧道绑定的 DNS 记录(脚本会提示此操作),否则域名将无法正常解析。
4.3 完全删除 cloudflared(选项 3)
选择 3 用于彻底卸载 cloudflared 及其相关文件,适用于完全放弃 Cloudflare Tunnel 服务的场景。执行后,脚本会:
1. 停止并禁用 cloudflared 系统服务。
2. 删除可执行文件、配置文件、日志文件及缓存数据。
3. 清理残留的隧道配置(若有)。
执行完成后,服务器上将不再存在任何与 Cloudflare Tunnel 相关的文件和服务。
5. 注意事项
- 手动删除 DNS 记录:删除隧道后,务必登录 Cloudflare 控制台(域名管理页),删除与隧道绑定的 DNS 记录(通常是 A 记录或 CNAME 记录),否则域名可能仍指向已删除的隧道。
- 定期维护隧道:若长期使用多个隧道,建议定期通过脚本或 Cloudflare 控制台检查状态,避免废弃隧道占用资源。
- 保持
cloudflared更新:如需继续使用 Cloudflare Tunnel,可通过脚本的更新选项(若有)或手动下载最新版cloudflared,确保功能和安全性。
小结
通过 cf-tunnels.sh 脚本,我们可以高效完成 Cloudflare Tunnel 的全生命周期管理:
- 安装:只需三步输入参数,自动完成隧道配置与服务部署;
- 删除:支持选择性删除隧道或彻底卸载客户端,避免残留;
- 关键提示:删除隧道后需手动清理 DNS 记录,确保服务完全移除。
借助 Cloudflare Tunnel 的安全优势(基于 HTTPS 加密、无需暴露公网 IP),配合脚本的简化操作,你可以轻松实现内网服务的公网访问。
评论