ตั้งค่า Synology NAS กับ Cloudflare tunnel

ปกติแล้ว synology nas มันจะมี service ที่ให้เชื่อมต่อจากภายนอกผ่านตัว quick connect อยู่แล้ว แต่ข้อเสียของมันช้ามาก เวลา download ไฟลฺ์ ทางแก้จะมีหลายแบบตั้งแต่

  1. การทำ Forword Port ใช้กับ thddns
  2. cloudflare tunnel จากที่ลอง research เหมือนจะมีข้อจำกัดเรื่องการการ upload นะ แต่ผมไม่ได้ซีเรียสอะไรอยู่แล้ว เอามา download + stream มากกว่า

สิ่งที่ต้องเตรียม

  • domain name อันนี้ผมสมัครของ cloudflare
  • synology nas ที่ setup อะไรเรียบร้อยแล้ว ที่สำคัญ
    - ติดตั้ง package Container Manager (docker) ให้เรียบร้อยครับ
    - Fixed IP NAS

หลังจากมีของพร้อมแล้ว มาตั้งค่ากันครับ

สมัครใช้งาน Cloudflare ZeroTrust

ถ้าดูจาก doc ของ Cloudflare การจะเปิด Cloudflare Tunnel ต้องเปิดตัว Cloudflare ZeroTrust ก่อน สำหรับใครที่มีแล้วข้ามไปเลยนะ ถ้าใครไม่มีตามขั้นตอนเลยครับ

จริงมีจุดที่สนใจน่าจะเรื่องของการจ่ายเงินครับ อย่าลืมเลือก Free Plan

Create Cloudflare Tunnel

ในส่วนของ Cloudflare ZeroTrust ให้เข้ามาในส่วน Cloudflare Zero Trust > Tunnel > Add a Tunnel

ที่นี้มันมีทางเลือก 2 แบบ Cloudflared กับ WARP Connector (ของใหม่ เหมือนจะ By Pass Limit 100 MB ได้ แต่ผมยังไม่ได้ลอง)

ตั้งชื่อ tunnel

มันมีการเชื่อมต่อหลายแบบเลย เลือก docker มันจะ default คำสั่งมาให้

รูปแบบคำสั่งจะประมาณนี้ ปกติเราเอาคำสั่งไปรันเลย แต่ไหนใช้ของ Synology แล้วก็ไปทำในขั้นตอนถัดไปเลย

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token [-CLOUDFLARE_GENERATE_TOKEN-]

ติดตั้ง Container ของ Cloudflare Tunnel โดยเข้าที่ Container Manager > Registry หา Container จาก cloudflare/cloudflared ตามขั้นตอนเลย

จากนั้นเข้าไป Image > เลือก Container cloudflare/cloudflared จากนั้นกด Run เลย

ตอนนี้ระบบพามา Wizard การกำหนดค่าของ Container ส่วนแรก

  • ตั้งชื่อ Container
  • กำหนด Resource Limit ๆไว้ที่ 256 mb ตามรูปเลย แต่แอบคิดว่าให้มากไปเหมือนกัน 55
  • กำหนด Auto Restart
  • จากนั้นกด Next

เลือกลงมาด้านล่างสุด มีส่วนสำคัญที่ต้องกำหนด ให้เลื่อนลงมาเกือบล่างสุด

  • Network - ให้เลือกเป็น Host
  • Execution Command ใส่ตามนี้เลยครับ
-- OLD
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token [-CLOUDFLARE_GENERATE_TOKEN-]

-- PASTE IN CONTAINER MANAGER
tunnel --no-autoupdate run --token [-CLOUDFLARE_GENERATE_TOKEN-]

หน้าสรุปประมาณนี้ครับ อย่าลืมเลือก Check Box Run This Container แล้วกด Done

รอ Container Start ที่นี่กลับไปในส่วนของ Tunnel แล้ว พบว่ามัน Connect แล้วครับ

Map FQDN (Domain) with Cloudflare Tunnel

ปกติแล้วเวลาเข้า NAS มันจะ Error แบบนี้

เราจะมา Map Domain ของเรา โดยเข้าไปที่ Cloudfare Tunnel ที่เราเพิ่งสร้าง Edit Configuration > Public Hostname > Add Public Hostname จากนั้นตั้งค่า

  • Subdomain / Domain ผมกำหนดเป็น nas.mydomain.com
  • Service ผมกำหนดเป็น Type https และ url เป็น ip ที่เราเข้า nas
    ** อย่าลืมเลือก No TLS Verity ด้วยนะ แต่ถ้าเรามี Cert อยู่แล้ว เอามาใช้ได้นะ จะได้ไม่ต้องติ๊กออก

จริงตอนแรกผมลองแบบ http แต่เจอ error 400 bad request ได้ เลยย้ายไปใช้ของ https + แก้ port

จากนั้นลองทดสอบเข้า nas ผ่าน nas.mydomain.com พบว่าใช้ได้ แล้วถ้าไปดูใน dashboard จะพบว่ามันมี Traffic ไหลเข้ามาแล้ว

Tips

สำหรับใครที่ใช้ DS File ของ Synology ให้เติม :443 ต่อท้าย url ด้วย เช่น nas.mydomain.com:443 เข้าไปใช้งาน

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.