cloudflare tunnel 折腾小记
  Md4wtSBSZlnU 2023年11月01日 297 0

https://blog.noname.cc/2023/01/02/20230102/

cloudflare 账号注册

https://www.cloudflare-cn.com/products/tunnel/

域名准备和配置

有两种方式:

  1. 在 cloudflare 自己购买域名, 比较贵
  2. 在其他平台的域名, 通过配置解析域名规则, 这样可以托管在 cloudflare

以阿里云为例, 在域名管理页面, 选择对应的域名,配置解析服务器为:

adaline.ns.cloudflare.com
nero.ns.cloudflare.com

cloudflare 配置

基本配置

  1. 本机下载和配置 cloudflare 工具 , 以 linux 为例子
# 直接将可执行文件下载到 bin 目录
sudo curl -L 'https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64' -o /usr/bin/cloudflared
# 增加执行权限

sudo chmod +x /usr/bin/cloudflared
  1. 登录
cloudflared tunnel login
# 将出现的一长串 URL 拷贝到浏览器, 并选择对应的域名
  1. 创建隧道
# 创建一个隧道, 名为 fedora
cloudflared tunnel create fedora
# 此时会出现一个 UID,后续配置文件中会用到,也可以执行 `ls ~/.cloudflared/` 查看
  1. 绑定域名和隧道的对应关系, 可以一个隧道绑定多个域名
# 绑定域名, 一个隧道可以同时接管多个子域名, 将多个域名都路由指定的隧道
cloudflared tunnel route dns fedora blog.xxx.cc
cloudflared tunnel route dns fedora ssh.xxx.cc
cloudflared tunnel route dns fedora rdp.xxx.cc
cloudflared tunnel route dns fedora vscode.xxx.cc
  1. 编辑配置文件
    在 .cloudflared 目录下,新建 config.yaml 文件
tunnel: bd7782ba-1f06-4613-b395-cc6c0b237de2
credentials-file: /home/feng/.cloudflared/bd7782ba-1f06-4613-b395-cc6c0b237de2.json
protocol: h2mux
ingress:
  - hostname: vscode.xxx.cc
    service: http://localhost:8080
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - hostname: blog.xxx.cc
    service: http://localhost:8081
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - hostname: fleet.xxx.cc
    service: http://localhost:8082
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - hostname: clash.xxx.cc
    service: http://localhost:7890
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - hostname: ssh.xxx.cc
    service: tcp://localhost:22
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - hostname: vnc.xxx.cc
    service: rdp://localhost:3389
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - service: http_status:404

SSH 登录配置

  1. 配置 ssh 的端口映射,url 改成 tcp 即可, 端口默认是 22
  - hostname: ssh.xxx.cc
    service: tcp://localhost:22
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  1. 客户端需要 cloudflared 工具配合使用.

修改 ~/.ssh/config 文件

Host ssh.xxx.cc
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
  1. 正常使用 ssh 命令登录即可
ssh xxx@ssh.xxx.cc

RDP 远程控制配置

  1. 配置 RDP 的端口映射, url 前缀改为 rdp, 默认端口是 3389
  - hostname: vnc.xxx.cc
    service: rdp://localhost:3389
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
  - service: http_status:404
  1. 使用 cloudflared 进行端口映射,将服务端的 3389 映射到本机的 3389 端口
cloudflared access rdp --hostname vnc.xxx.cc --url rdp://localhost:3389
  1. 使用 RDP 连接工具, 地址写为 localhost 即可

cloudflared 服务化配置

  1. 使用 cloudflared 创建服务
sudo cloudflared service install

安装完成之后,则可以使用 systemctl 命令进行服务控制

  1. 设置自启动
sudo systemctl enable cloudflared
  1. 查看服务状态
sudo systemctl status cloudflared
  1. 修改服务配置
    当注册为服务之后,相应的配置会 copy 到 /etc/cloudflared/config.yml, 如有后续的相关修改,直接修改这个文件即可。
sudo vim /etc/cloudflared/config.yml
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  VExS4Gg6g4KD   3天前   13   0   0 Linux
  VExS4Gg6g4KD   3天前   11   0   0 Linux
  VExS4Gg6g4KD   3天前   13   0   0 Linux
  X6z51Yzaj35p   3天前   10   0   0 Linux
  T0lscH4Qgx5j   8天前   20   0   0 Linux
  u05qsPMWcUGd   8天前   22   0   0 Linux
  VExS4Gg6g4KD   3天前   12   0   0 Linux
  iNBin04WVNys   3天前   10   0   0 Linux
  QP84hQv41ZIv   3天前   11   0   0 Linux