本地已安装某个应用服务,通过CF暴漏在公网
最终实现效果,通过xxx.heyaff.com来访问VPS上本地某Web服务
1、安装 cloudflared(Ubuntu)
1 | wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb |
2、登陆CF授权
cloudflared tunnel login
出现一个网址,用浏览器打开登陆CF,选择用哪个域名授权,OK后自动生成/root/.cloudflared/cert.pem和json文件
3、创建 Tunnel
cloudflared tunnel create xxx-tunnel
输出Tunnel UUID: xxxxxxxx-xxxx
4、修改配置文件(后续新增Web站点,直接从这里开始!!!)
1 | mkdir -p /etc/cloudflared |
最终文件(注意:前提是本地VPS已经启动了一个Web如31393端口)
1 | tunnel: xxxxxxxx-xxxx-xxxx |
5、绑定DNS
cloudflared tunnel route dns xxx-tunnel xxx.heyaff.com
自动在CF DNS控制台创建CNAME
6、启动Tunnel
cloudflared tunnel run xxx-tunnel
7、设置开机自启
1 | cloudflared service install |
已安装CF Tunnel,将SSH暴漏在公网
1、编辑config.yml添加SSH协议
1 | tunnel: UUID |
2、重启服务
1 | systemctl restart cloudflared |
3、创建DNS
可以继续复用VPS上已经创建好的tunnel,不用每个Web服务或者SSH协议都单独创建一个tunnel
1 | cloudflared tunnel route dns xxx-tunnel ssh.heyaff.com |
4、CF后台开启Web SSH
1 | Zero Trust → Networks → Tunnels名字 |
5、公网可直接访问ssh.heyaff.com
删除CF隧道
如果某个Web站点不想通过CF暴漏在公网,直接第4步骤删除配置中相关域名即可,然后重启CF服务,域名DNS解析可删可不删,不影响后面你想在其他机器上使用该域名,在其他机器上执行第5步骤就会自动更新DNS解析,不用去登陆CF后台手工操作。