本文主要解决以下问题
cloudflare tunnel 代理 tcp, rdp, ssh, smb 协议
cloudflare tunnel + mysql
cloudflare tunnel + ssh
暴露服务方
第一步:
打开 cloudflare tunnel dashboard,https://one.dash.cloudflare.com/
第二步:
创建tunnel,同一台设备只需要创建一个tunnel,无需重复创建
填写tunnel名称(设备名称)
找到对应的系统版本并在设备上执行命令,执行完后在最底部可以看到连接成功的信息
选择要代理的协议,和目标端口号
使用服务方
情况一
隧道协议选择了HTTP
或者HTTPS
,使用的时候直接用域名访问就行
情况二
隧道协议选择了TCP、SSH、RDP、SMB,使用的时候要做一些其他工作
安装工具
首先,要在使用方机器上安装cloudflared命令行工具,安装链接在这里:https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
Mac和Windows电脑安装比较简单,记录一下Linux安装方式:
以上每个链接点击去都是一个安装包,用curl下载到Linux服务器并安装,比如:
# 下载安装包
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
# 安装
dpkg -i cloudflared.deb
登录
cloudflared login
连接TCP
# 远程的tcp端口与本地的端口绑定,例如,数据库mysql
cloudflared access tcp --hostname mysql.wmwm.me --url localhost:3306
# 连接
mysql -h 127.0.0.1 -P 3306 -u your_user -p
连接SSH
# 远程22端口与本地15555端口绑定
cloudflared access tcp --hostname ssh.wmwm.me --url localhost:15555
# 连接
ssh -p 15555 root@localhost