请相信有彩虹 发表于 2023-1-7 00:09:02

cloudflare tunnel 折腾小记

cloudflare 账号注册

https://www.cloudflare-cn.com/products/tunnel/域名准备和配置

有两种方式:

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

基本配置


[*]本机下载和配置 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
[*]登录
cloudflared tunnel login
# 将出现的一长串 URL 拷贝到浏览器, 并选择对应的域名
[*]创建隧道
# 创建一个隧道, 名为 fedora
cloudflared tunnel create fedora
# 此时会出现一个 UID,后续配置文件中会用到,也可以执行 `ls ~/.cloudflared/` 查看
[*]绑定域名和隧道的对应关系, 可以一个隧道绑定多个域名
# 绑定域名, 一个隧道可以同时接管多个子域名, 将多个域名都路由指定的隧道
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
[*]编辑配置文件
在 .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:404SSH 登录配置


[*]配置 ssh 的端口映射,url 改成 tcp 即可, 端口默认是 22
- hostname: ssh.xxx.cc
    service: tcp://localhost:22
    originRequest:
       disableChunkedEncoding: false
       noTLSVerify: false
[*]客户端需要 cloudflared 工具配合使用.
修改 ~/.ssh/config 文件
Host ssh.xxx.cc
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
[*]正常使用 ssh 命令登录即可
ssh xxx@ssh.xxx.ccRDP 远程控制配置


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


[*]使用 cloudflared 创建服务
sudo cloudflared service install安装完成之后,则可以使用 systemctl 命令进行服务控制

[*]设置自启动
sudo systemctl enable cloudflared
[*]查看服务状态
sudo systemctl status cloudflared
[*]修改服务配置
当注册为服务之后,相应的配置会 copy 到 /etc/cloudflared/config.yml, 如有后续的相关修改,直接修改这个文件即可。
sudo vim /etc/cloudflared/config.yml
来源:https://www.cnblogs.com/0x12345678/p/17032013.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: cloudflare tunnel 折腾小记