翼度科技»论坛 云主机 LINUX 查看内容

cloudflare tunnel 折腾小记

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
cloudflare 账号注册
  1. https://www.cloudflare-cn.com/products/tunnel/
复制代码
域名准备和配置

有两种方式:

  • 在 cloudflare 自己购买域名, 比较贵
  • 在其他平台的域名, 通过配置解析域名规则, 这样可以托管在 cloudflare
以阿里云为, 在域名管理页面, 选择对应的域名,配置解析服务器为:
  1. adaline.ns.cloudflare.com
  2. nero.ns.cloudflare.com
复制代码
cloudflare 配置

基本配置


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

  • 登录
  1. cloudflared tunnel login
  2. # 将出现的一长串 URL 拷贝到浏览器, 并选择对应的域名
复制代码

  • 创建隧道
  1. # 创建一个隧道, 名为 fedora
  2. cloudflared tunnel create fedora
  3. # 此时会出现一个 UID,后续配置文件中会用到,也可以执行 `ls ~/.cloudflared/` 查看
复制代码

  • 绑定域名和隧道的对应关系, 可以一个隧道绑定多个域名
  1. # 绑定域名, 一个隧道可以同时接管多个子域名, 将多个域名都路由指定的隧道
  2. cloudflared tunnel route dns fedora blog.xxx.cc
  3. cloudflared tunnel route dns fedora ssh.xxx.cc
  4. cloudflared tunnel route dns fedora rdp.xxx.cc
  5. cloudflared tunnel route dns fedora vscode.xxx.cc
复制代码

  • 编辑配置文件
    在 .cloudflared 目录下,新建 config.yaml 文件
  1. tunnel: bd7782ba-1f06-4613-b395-cc6c0b237de2
  2. credentials-file: /home/feng/.cloudflared/bd7782ba-1f06-4613-b395-cc6c0b237de2.json
  3. protocol: h2mux
  4. ingress:
  5.   - hostname: vscode.xxx.cc
  6.     service: http://localhost:8080
  7.     originRequest:
  8.        disableChunkedEncoding: false
  9.        noTLSVerify: false
  10.   - hostname: blog.xxx.cc
  11.     service: http://localhost:8081
  12.     originRequest:
  13.        disableChunkedEncoding: false
  14.        noTLSVerify: false
  15.   - hostname: fleet.xxx.cc
  16.     service: http://localhost:8082
  17.     originRequest:
  18.        disableChunkedEncoding: false
  19.        noTLSVerify: false
  20.   - hostname: clash.xxx.cc
  21.     service: http://localhost:7890
  22.     originRequest:
  23.        disableChunkedEncoding: false
  24.        noTLSVerify: false
  25.   - hostname: ssh.xxx.cc
  26.     service: tcp://localhost:22
  27.     originRequest:
  28.        disableChunkedEncoding: false
  29.        noTLSVerify: false
  30.   - hostname: vnc.xxx.cc
  31.     service: rdp://localhost:3389
  32.     originRequest:
  33.        disableChunkedEncoding: false
  34.        noTLSVerify: false
  35.   - service: http_status:404
复制代码
SSH 登录配置


  • 配置 ssh 的端口映射,url 改成 tcp 即可, 端口默认是 22
  1.   - hostname: ssh.xxx.cc
  2.     service: tcp://localhost:22
  3.     originRequest:
  4.        disableChunkedEncoding: false
  5.        noTLSVerify: false
复制代码

  • 客户端需要 cloudflared 工具配合使用.
修改 ~/.ssh/config 文件
  1. Host ssh.xxx.cc
  2. ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
复制代码

  • 正常使用 ssh 命令登录即可
  1. ssh xxx@ssh.xxx.cc
复制代码
RDP 远程控制配置


  • 配置 RDP 的端口映射, url 前缀改为 rdp, 默认端口是 3389
  1.   - hostname: vnc.xxx.cc
  2.     service: rdp://localhost:3389
  3.     originRequest:
  4.        disableChunkedEncoding: false
  5.        noTLSVerify: false
  6.   - service: http_status:404
复制代码

  • 使用 cloudflared 进行端口映射,将服务端的 3389 映射到本机的 3389 端口
  1. cloudflared access rdp --hostname vnc.xxx.cc --url rdp://localhost:3389
复制代码

  • 使用 RDP 连接工具, 地址写为 localhost 即可
cloudflared 服务化配置


  • 使用 cloudflared 创建服务
  1. sudo cloudflared service install
复制代码
安装完成之后,则可以使用 systemctl 命令进行服务控制

  • 设置自启动
  1. sudo systemctl enable cloudflared
复制代码

  • 查看服务状态
  1. sudo systemctl status cloudflared
复制代码

  • 修改服务配置
    当注册为服务之后,相应的配置会 copy 到 /etc/cloudflared/config.yml, 如有后续的相关修改,直接修改这个文件即可。
  1. sudo vim /etc/cloudflared/config.yml
复制代码
来源:https://www.cnblogs.com/0x12345678/p/17032013.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具