Tranquility logo
  • 關於 
  • 首頁 
  • 關鍵字 
  1.   文章
  1. 首頁
  2. 文章
  3. 使用 Cloudflare Tunnel 建立可遠端 SSH 存取的 Synology NAS

使用 Cloudflare Tunnel 建立可遠端 SSH 存取的 Synology NAS

發佈於 2025年5月13日  (最後修改於 2025年5月31日) • 2 分鐘 閱讀 • 675 字
Cloudflare   Zero Trust   Tunnel   NAS   Ssh   Synology  
Cloudflare   Zero Trust   Tunnel   NAS   Ssh   Synology  
分享至
Tranquility
連結 已複製到剪貼板

本頁目錄
💡 背景與目的   🧱 系統環境與條件   🚀 Cloudflare Tunnel 安裝與啟動   1. 在 Cloudflare 建立 Tunnel   2. 建立後,Cloudflare 提供的 Docker 指令如下:   🔐 啟用 Private Network 讓 SSH 可存取   1. 安裝 cloudflared CLI 工具   2. 設定 Tunnel 憑證與設定檔   🌐 在 Zero Trust 宣告內網與權限   1. Private Network 設定   2. 建立 SSH Access Application   🧪 測試連線   在家中電腦執行:   ✅ 結語  

💡 背景與目的  

公司放置了一台 Synology NAS,僅能透過行動 5G 路由器上網,無法對外開 port。希望能遠端從家中電腦或筆電以 SSH 操作這台 NAS,同時預留未來存取 Docker 上的其他服務(如 Metabase、HAPI-FHIR)。

🧱 系統環境與條件  

  • Synology NAS 安裝 DSM 7.2.2
  • NAS 可透過 SSH 操作與 Docker 部署
  • 網路環境:5G 行動網路,無法開放連接埠
  • Cloudflare 帳號與已驗證的自訂網域 myn8n.dpdns.org

🚀 Cloudflare Tunnel 安裝與啟動  

1. 在 Cloudflare 建立 Tunnel  

  • Tunnel 名稱:Betelgeuse
  • 綁定子網域:ssh.myn8n.dpdns.org

2. 建立後,Cloudflare 提供的 Docker 指令如下:  

docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  cloudflare/cloudflared:latest tunnel \
  --no-autoupdate run \
  --token <你的_Tunnel_Token>

✅ 容器啟動後即自動連線 Cloudflare 並掛載於 ssh.myn8n.dpdns.org


🔐 啟用 Private Network 讓 SSH 可存取  

1. 安裝 cloudflared CLI 工具  

在任一 Linux/MacOS 上:

curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
./cloudflared login

2. 設定 Tunnel 憑證與設定檔  

mkdir -p /volume1/docker/cloudflared
mv ~/.cloudflared/cert.pem /volume1/docker/cloudflared/
mv ~/.cloudflared/<UUID>.json /volume1/docker/cloudflared/

新增 /volume1/docker/cloudflared/config.yml:

tunnel: <UUID>
credentials-file: /etc/cloudflared/<UUID>.json

ingress:
  - hostname: ssh.myn8n.dpdns.org
    service: ssh://192.168.1.13:22
  - service: http_status:404

🌐 在 Zero Trust 宣告內網與權限  

1. Private Network 設定  

至 Cloudflare Zero Trust > Tunnels > Betelgeuse > Private Network:

新增內網 CIDR:192.168.1.0/24

2. 建立 SSH Access Application  

Cloudflare Zero Trust > Access > Applications > Add Application

  • Type: Self-hosted
  • Subdomain: ssh
  • Domain: myn8n.dpdns.org
  • Type: SSH
  • 設定 Policy 為允許特定帳號登入

🧪 測試連線  

在家中電腦執行:  

cloudflared access ssh --hostname ssh.myn8n.dpdns.org

系統會開啟瀏覽器要求登入 Cloudflare 驗證,成功後建立 SSH Proxy。

也可以手動執行:

ssh -o ProxyCommand="cloudflared access ssh --hostname %h" admin@ssh.myn8n.dpdns.org

✅ 結語  

本篇展示如何在不開 port 的情況下,透過 Cloudflare Tunnel 安全存取內網 NAS。未來可進一步新增如 Metabase 等 Docker 應用,並用相同 Tunnel 提供外部安全服務入口。

 Nextcloud AIO 全文檢索 Elasticsearch 故障排除筆記:從 cURL error 52 到 OutOfMemoryError
用 Docker 在 Xeon 上部署 Ollama,整合 n8n 與繁體中文語言處理 
本頁目錄:
💡 背景與目的   🧱 系統環境與條件   🚀 Cloudflare Tunnel 安裝與啟動   1. 在 Cloudflare 建立 Tunnel   2. 建立後,Cloudflare 提供的 Docker 指令如下:   🔐 啟用 Private Network 讓 SSH 可存取   1. 安裝 cloudflared CLI 工具   2. 設定 Tunnel 憑證與設定檔   🌐 在 Zero Trust 宣告內網與權限   1. Private Network 設定   2. 建立 SSH Access Application   🧪 測試連線   在家中電腦執行:   ✅ 結語  
與我同行

生活是經驗與觀點的交融。露營、單車、游泳與評論,追蹤我,發掘更多可能!

     
Copyright © 2024 Wolfgang Yu. | 由 Hinode 提供支持。
Tranquility
程式碼 已複製到剪貼板