Cloudflare内网穿透如何配置?

内网穿透是帮助用户将本地服务暴露到互联网的一种方式,使得外部用户能够通过公共网络访问内部资源。使用Cloudflare进行内网穿透,可以实现更高的安全性、性能优化和更简便的配置。

Cloudflare

一、什么是Cloudflare内网穿透?

Cloudflare内网穿透是一种利用Cloudflare的服务,通过其隧道功能(Cloudflare Tunnel,原Argo Tunnel)将内网中的服务安全地暴露到公网的解决方案。与传统的端口映射或NAT相比,Cloudflare内网穿透具有以下优势:

  • 无需公网IP:即使本地网络没有公网IP,也可以将服务暴露到互联网。
  • 高安全性:数据传输经过Cloudflare的全球网络,支持HTTPS加密。
  • 简化配置:避免繁琐的防火墙配置和端口转发。

二、准备工作

在开始配置前,需要准备以下资源和工具:

  1. Cloudflare账户:注册一个Cloudflare账户并添加自己的域名到Cloudflare。
  2. 本地服务器:运行目标服务的内网设备,可以是Windows、Linux、或macOS系统。
  3. Cloudflare Tunnel客户端:Cloudflare提供了名为cloudflared的工具,用于建立隧道。

三、详细配置步骤

I. 将域名接入Cloudflare

如果尚未将域名接入Cloudflare,可以按照以下步骤操作:

  1. 登录Cloudflare账户,点击“添加站点”。
  2. 输入你的域名,并选择一个合适的计划(免费计划即可)。
  3. 按照Cloudflare的指引更改域名的DNS服务器为Cloudflare提供的DNS服务器地址。
  4. 等待DNS解析生效。

免费计划

合适的计划

II. 安装Cloudflare Tunnel客户端

cloudflared 是Cloudflare Tunnel的客户端工具,用于本地建立隧道。以下是安装步骤:

  • Windows

    1. 下载 cloudflared Windows版本:下载链接
    2. cloudflared.exe 放到一个可执行路径,例如 C:\Program Files\Cloudflared
    3. 打开命令提示符并验证安装:
      cloudflared --version
  • Linux

    1. 使用包管理器安装:

      sudo apt update
      sudo apt install cloudflared
    2. 验证安装:

      cloudflared --version
  • macOS

    1. 使用Homebrew安装:
      brew install cloudflared
    2. 验证安装:
      cloudflared --version

III. 创建Cloudflare Tunnel

  1. 登录Cloudflare账户,进入“Zero Trust”控制台。

  2. 在左侧菜单中选择 Access > Tunnels,点击“创建隧道”。

  3. 为隧道命名,例如 my-tunnel

  4. 系统会生成一个命令,用于认证本地客户端和Cloudflare账户,例如:

    cloudflared login

    运行该命令并完成认证。

  5. 在本地运行以下命令以创建隧道:

    cloudflared tunnel create my-tunnel

    系统会生成隧道的ID和认证密钥,请妥善保存。

    Cloudflare Tunnel

IV. 配置Tunnel路由

  1. 将隧道与域名关联。例如,将本地服务暴露为 https://subdomain.yourdomain.com
    cloudflared tunnel route dns my-tunnel subdomain.yourdomain.com

Tunnel路由

  1. 编辑 cloudflared 配置文件(路径通常为 /etc/cloudflared/config.ymlC:\ProgramData\cloudflared\config.yml),内容如下:
    tunnel: my-tunnel
    credentials-file: /path/to/credentials.json
    ingress:
     - hostname: subdomain.yourdomain.com
       service: http://localhost:8000
     - service: http_status:404
    • hostname:外部访问的域名。
    • service:本地服务的地址,例如 http://localhost:8000

V. 启动并测试隧道

  1. 启动隧道:
    cloudflared tunnel run my-tunnel
  2. 打开浏览器访问 https://subdomain.yourdomain.com,验证服务是否正常运行。

VI. 设置隧道为后台服务(可选)

为了在系统启动时自动运行隧道,可以设置 cloudflared 为服务:

  • Linux
    sudo cloudflared service install
    sudo systemctl start cloudflared
  • Windows:使用 `Task Scheduler` 创建任务,运行 `cloudflared tunnel run my-tunnel`。

四、常见问题及解决方案

I. 域名解析错误

  • 检查Cloudflare控制台中的DNS记录,确保域名解析到Cloudflare。

II. 服务无法访问

  • 确认本地服务正在运行,且监听的地址与配置一致。
  • 检查防火墙是否允许流量通过。

III. 隧道连接不稳定

  • 确保网络稳定,必要时更换网络环境。
  • 检查 `cloudflared` 日志以获取详细错误信息:
     cloudflared tunnel run my-tunnel --loglevel debug

五、总结

通过Cloudflare内网穿透,可以轻松地将本地服务安全地暴露到互联网,无需复杂的网络配置,同时享受Cloudflare提供的性能和安全加持。

4.2/5 - (4 votes)

资源教程cloudflare

Posted by 老杰克