cloudflare 賬號註冊 https://www.cloudflare-cn.com/products/tunnel/ 功能變數名稱準備和配置 有兩種方式: 在 cloudflare 自己購買功能變數名稱, 比較貴 在其他平臺的功能變數名稱, 通過配置解析功能變數名稱規則, 這樣可以托管在 cloudflare 以阿裡雲為, ...
cloudflare 賬號註冊
https://www.cloudflare-cn.com/products/tunnel/
功能變數名稱準備和配置
有兩種方式:
- 在 cloudflare 自己購買功能變數名稱, 比較貴
- 在其他平臺的功能變數名稱, 通過配置解析功能變數名稱規則, 這樣可以托管在 cloudflare
以阿裡雲為, 在功能變數名稱管理頁面, 選擇對應的功能變數名稱,配置解析伺服器為:
adaline.ns.cloudflare.com
nero.ns.cloudflare.com
cloudflare 配置
基本配置
- 本機下載和配置 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:404
SSH 登錄配置
- 配置 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 [email protected]
RDP 遠程式控制制配置
- 配置 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