เนื่องจากใช้ ngrok url ของเราจะเปลี่ยนไปเรื่อยๆ ไม่สามารถใช้ตัวเดิมได้ blog นี้จะมาลองติดตั้งใช้งาน cloudflare tunnel, cloudflared
กัน url ที่ได้เราสามารถเลือกได้ โดยการกำหนด CNAME ของ domain ที่เราเป็นเจ้าของ
cloudflared
ใช้งานได้ฟรี แต่จะต้องสมัครใช้บริการ/มี cloudflare account ก่อน ซึ่งนั้นก็หมายความว่าต้องเป็นเจ้าของ domain name ซักชื่อนึงก่อน
free domain name ให้ไปสร้างจาก freenom.com (ถ้าเขาเปิดรับสมัครอีกก็จัดมาได้เลย) หรือจะไปซื้อ domain ราคาถูก (1usd) กับ namecheap.com ก็ได้
วิธีติดตั้ง cloudflared cli ดูได้จาก ที่นี่
- Download และติดตั้ง download command line ที่ใช้สำหรับ OS ของเรามาก่อน ใน blog นี้จะใช้ Window OS
- เมื่อได้ cloudflared.exe มาแล้ว เพื่อให้สะดวกเรียกใช้งานให้ copy ไปไว้ใน folder c:\Windows
- Authen กับ cloudflare website
ใช้คำสั่ง
❯ cloudflared tunnel login
A browser window should have opened at the following URL:
https://dash.cloudflare.com/argotunnel?callback=https%3A%2F%2Flogin.cloudflareaccess.org%2FPDfB2KMNF7CYWz7WPZptB61-42HJVosYhPheXCmWN1E%3D
If the browser failed to open, please visit the URL above directly in your browser.
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
C:\Users\sir\.cloudflared\cert.pem
มันจะเปิดหน้า cloudflare ให้เรา login และเลือก domain ที่เราต้องการทำ tunnel ไปหา เมื่อเลือกใน browser เรียบร้อยแล้ว เราจะได้ไฟล์ cert.pem
- สร้าง tunnel
❯ cloudflared.exe tunnel create ssga
Tunnel credentials written to C:\Users\sir\.cloudflared\10fd719b-c00c-4b40-9481-7f14416bca83.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.
Created tunnel ssga with id 10fd719b-c00c-4b40-9481-7f14416bca83
- สร้างไฟล์ config.yml
tunnel: 10fd719b-c00c-4b40-9481-7f14416bca83
credentials-file: C:\Users\sir\.cloudflared\10fd719b-c00c-4b40-9481-7f14416bca83.json
tunnel ใช้ค่า hash ที่ได้จาก create command (ตรง Created tunnel ssga with id)
- สร้าง route และ CNAME ชื่อ subdomain ที่จะใช้เรียกแล้ววิ่งมาที่เครื่องเรา/เครื่องที่เปิด cloudflared tunnel
❯ cloudflared.exe tunnel route dns ssga regid-bpi
2021-09-10T04:21:01Z INF Added CNAME regid-bpi.softsquare.ga which will route to this tunnel tunnelID=10fd719b-c14c-4b40-9481-7f14416bca83
คำสั่ง cloudflared.exe tunnel route dns ssga regid-bpi
regid-bpi คือชื่อ subdomain ที่จะใช้ เวลาเรียกใช้จะเป็น regid-bpi.softsquare.ga
- เริ่มใช้งาน tunnel
cloudflared.exe tunnel --config C:\Users\sir.cloudflared\ga-config.yml run --url http://localhost:80 ssga
--config
ระบุไฟล์ config
--url
ตัว url ของ app/service ที่อยู่ในเครื่องเรา
ตัวอย่าง
❯ cloudflared.exe tunnel --config C:\Users\sir\.cloudflared\ga-config.yml run --url http://localhost:80 ssga
INF Starting tunnel tunnelID=10fd719b-c00c-4b40-9481-7f14416bca83
INF Version 2021.8.7
...
INF cloudflared will not automatically update on Windows systems.
INF Generated Connector ID: efd29585-1a25-46d3-90cc-6a349fc3c7d6
INF Initial protocol http2
INF Starting metrics server on 127.0.0.1:50398/metrics
INF cloudflared does not support loading the system root certificate pool on Windows. Please use --origin-ca-pool <PATH> to specify the path to the certificate pool
...