You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure VM通过Cloudflare隧道隐藏公网访问的技术咨询

用Cloudflare Tunnel隐藏Azure VM公网访问的实现步骤

前提准备

  • 拥有Cloudflare账号,且已将用于访问网站的域名(或子域名)托管至Cloudflare
  • Azure VM可正常访问互联网(用于安装Cloudflare Tunnel客户端)
  • VM上的网站服务正常运行(比如监听80/443端口)

步骤1:创建Cloudflare Tunnel

  1. 登录Cloudflare控制台,进入Zero Trust板块(免费版即可满足需求,无需付费升级)
  2. 左侧导航栏选择Access > Tunnels,点击Create a tunnel
  3. 为隧道命名(例如azure-vm-web-tunnel),点击Save tunnel

步骤2:在Azure VM上安装Cloudflare Tunnel客户端(cloudflared)

Windows VM操作

  1. 打开管理员权限的PowerShell,执行命令下载客户端安装包:
    Invoke-WebRequest -Uri https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi -OutFile cloudflared.msi
    
  2. 运行下载好的MSI文件完成安装,然后验证安装状态:
    cloudflared --version
    
  3. 返回Cloudflare控制台的隧道创建页面,复制对应Windows系统的授权命令(格式类似cloudflared service install <TOKEN>),在PowerShell中执行,完成客户端与隧道的绑定

Linux VM操作(以Ubuntu为例)

  1. 打开终端,执行命令下载并安装客户端:
    curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared.deb
    sudo apt-get install -f
    
  2. 验证安装状态:
    cloudflared --version
    
  3. 复制控制台提供的Linux授权命令(格式类似cloudflared service install <TOKEN>)执行,完成客户端与隧道的绑定

步骤3:配置隧道路由规则

  1. 隧道创建完成后,进入Public Hostname标签页,点击Add a public hostname
  2. 在Hostname字段填入你要用来访问网站的域名(例如web.yourdomain.com)
  3. Service区域选择HTTP,输入VM内部的服务地址和端口(比如localhost:80,如果网站监听本地80端口;若为其他端口则对应修改)
  4. 按需配置TLS设置(默认已开启HTTPS访问),点击Save hostname

步骤4:移除Azure VM的公网访问

  1. 登录Azure门户,找到目标VM,进入网络板块
  2. 找到VM绑定的公共IP地址,点击该资源后选择解除关联,可直接删除该公共IP(或保留但确保无NSG规则允许公网访问)
  3. 检查VM的网络安全组(NSG),删除所有允许80/443等网站端口的公网入站规则;若需远程管理VM,仅保留VNet内部或特定可信IP的访问规则(如SSH/RDP),或直接禁用公网远程访问

验证效果

  • 使用浏览器访问配置好的Cloudflare域名(例如web.yourdomain.com),确认网站可正常加载
  • 尝试访问VM原公网IP(若已删除则跳过),确认无法访问,即公网访问已被成功隐藏

内容的提问来源于stack exchange,提问作者André Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:10:02