Cloudflare配置tunnel实现内网穿透

本文最后更新于:2024年8月14日 中午

Cloudflare配置tunnel实现内网穿透

Cloudflare Tunnel内网穿透SSH

​ Cloudflare Tunnel既可以使用网页浏览器访问,也可以使用客户端直接发起访问,这里使用网页浏览器访问作为示例,下面教程开始。

创建Tunnel

  • 从Cloudflare首页中,进入Zero Trust。

    image-20240813180721138

  • 进入Networks->Tunnels,创建一个tunnel

    image-20240813181234149

  • tunnel类型选择cloudflared即可。

  • tunnel名字随便起一个即可。

  • 保存tunnel。

  • 创建完成后,在需要穿透的机器上安装cloudflared,根据下面的操作一步步完成即可,这里不再赘述。

    image-20240813181506368

  • 成功后会在Connectors内部显示上线设备。

    image-20240813182529429

  • 下一步后,在Public hostnames添加新的Public hostnames

    image-20240813184319592

  • 域名和路由按需填写,我直接使用terminal子域名;类型选择ssh,后面url填ssh链接及端口即可,一般为127.0.0.1:22,这里填10.0.0.5:22单纯是局域网地址为10.0.0.5

    image-20240813184559865

  • 保存即可,此时状态应该为绿色的健康。

    image-20240813184229558

    实际上,除了ssh其他类型的内网服务也可以用过此种方式搭建ttunnel。

    如果是针对http服务,到此时已经可以使用上面配置的域名和路由访问了,但是为了安全考虑,还需要设置Application认证。

创建Application

  • Access->Applications创建一个新的应用

image-20240813182817314

  • 选择Self-hosted,名字随便起,Session Duration是会话超时时间,也可以随意设置,下面的域名要与刚才Tunnel Public Hostname一致,下面配置均默认直接NEXT。

  • 添加策略,添加访问控制策略Policy name任意,Action选择Allow,Configure rules选择Emails填入自己账号的邮箱,只有允许自己的邮箱登录,如果需要使用其他的认证方式,如 GitHub/Google SSO 等,可以在 Cloudflare 控制台 -> Zero Trust -> Settings -> Authentication -> Login Methods 中添加。

    image-20240813201134042

    image-20240813201248984

  • 拉到最下面Additional settingsBrowser rendering选择SSH,

    image-20240813202620808

  • 剩下的一律默认即可。

  • 完成后打开之前配置的域名就跳转到cloudflare zerotrust的登录界面了,输入邮箱接验证码登录,然后就可以使用密码或者证书登录到ssh了。

    image-20240813201513726

参考教程

Connect with SSH through Cloudflare Tunnel


Cloudflare配置tunnel实现内网穿透
https://genioco.github.io/2024/08/14/misc/Cloudflare配置tunnel实现内网穿透/
作者
BadWolf
发布于
2024年8月14日
许可协议