เชื่อมระบบภายใน ง่ายๆ ด้วย Node-RED และ Cloudflare Tunnel

สวัสดีครับ

โปรแกรมเมอร์อย่างพวกเรานะครับ หลายๆทีเราก็มีระบบที่ทำไว้รันในเครื่อง หรือในเครือข่ายภายในของเรา เช่น พวก Node-RED ที่เราเอาไว้ทำ Automation เล็กๆ หรือระบบหลังบ้านอื่นๆนะครับ

แต่บางทีก็มีเหตุผลที่เราอยากให้ระบบพวกนี้ สามารถเข้าถึงได้จากภายนอกใช่ไหมครับ? ไม่ว่าจะจากลูกค้า จากทีมงานที่ทำงานนอกสถานที่ หรือแค่เพื่อนๆที่อยากลองเล่นดู

ปัญหาคือ การจะเปิด Port ใน Firewall หรือตั้งค่า VPN มันก็วุ่นวายใช่ไหมครับ? ผมมีทางออกง่ายๆ มาแนะนำครับ นั่นคือ Cloudflare Tunnel นะครับ

Cloudflare Tunnel จะช่วยให้เราเชื่อมต่อระบบภายในของเราออกไปข้างนอกได้อย่างปลอดภัย โดยที่เราไม่ต้องเปิด Port อะไรเลย เป็นการเชื่อมออกไปครับ ทำให้พวก Hacker เข้ามาได้ยากขึ้นเยอะเลย

มาดูกันเลยครับว่าทำยังไงบ้าง

ขั้นแรก ติดตั้ง Cloudflare Tunnel (cloudflared)

เราต้องติดตั้งโปรแกรม cloudflared ก่อนนะครับ ลองดูตามระบบปฏิบัติการของเพื่อนๆได้เลย

# สำหรับ Linux (Debian/Ubuntu) นะครับ
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

# สำหรับ Windows (PowerShell) ก็ประมาณนี้นะครับ
# Invoke-WebRequest -Uri https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.exe -OutFile cloudflared.exe

# จากนั้น Login เข้า Cloudflare นะครับ
cloudflared tunnel login

# แล้วก็สร้าง Tunnel ใหม่ ให้ชื่อว่า 'my-node-red-tunnel' นะครับ
cloudflared tunnel create my-node-red-tunnel

เมื่อสร้าง Tunnel เสร็จแล้ว เราจะได้ไฟล์ JSON ที่มี UUID ของ Tunnel เราเก็บไว้ในโฟลเดอร์ .cloudflared นะครับ

ขั้นที่สอง ตั้งค่า Tunnel ให้ Node-RED ของเรา

เราจะสร้างไฟล์ config.yml เพื่อบอก Cloudflare Tunnel ว่าให้เชื่อมโดเมนอะไร ไปที่ Node-RED ของเราที่รันอยู่พอร์ตไหนนะครับ

# config.yml
tunnel: my-node-red-tunnel
credentials-file: /root/.cloudflared/UUID.json # เปลี่ยน UUID ให้ตรงกับของเพื่อนๆนะครับ

ingress:
  - hostname: node-red.cii3.net # สมมุติว่าเราใช้โดเมนย่อยนี้ใน Cloudflare นะครับ
    service: http://localhost:1880 # Node-RED ปกติจะรันที่พอร์ต 1880 นะครับ
  - service: http_status:404 # กฎสุดท้าย ถ้าไม่มีอะไรตรง ให้ตอบ 404 นะครับ

จากนั้น เราก็แค่เพิ่ม DNS Record ใน Cloudflare Dashboard ของโดเมน cii3.net นะครับ ให้ชี้ไปที่ Tunnel ของเรา โดยใช้ประเภท CNAME และค่าเป็น UUID.cfargotunnel.com นะครับ

ขั้นที่สาม รัน Tunnel และเข้าถึง Node-RED ของเรา

ตอนนี้ก็ถึงเวลาเปิด Tunnel แล้วครับ

# รัน Tunnel ของเรานะครับ
cloudflared tunnel run my-node-red-tunnel

# ส่วน Node-RED ก็รันตามปกติเลยครับ
# node-red

เท่านี้ เพื่อนๆก็สามารถเข้าถึง Node-RED ของเราได้จาก https://node-red.cii3.net แล้วนะครับ โดยไม่ต้องเปิด Port อะไรเลย

เรื่องความปลอดภัย (Best Practice)

สำหรับเรื่องความปลอดภัยนะครับ เพื่อนๆสามารถเพิ่ม Cloudflare Access เข้าไปได้เลย คือกำหนดว่าใครจะเข้าถึงได้บ้าง อันนี้จำเป็นมากนะครับ ถ้าเป็นระบบจริงจัง

ไปที่ Cloudflare Dashboard > Access > Applications นะครับ แล้วก็สร้าง Policy สำหรับโดเมนที่เราใช้

เลือกได้ว่าจะให้ใครเข้าได้บ้าง เช่น ต้องเป็นอีเมลล์จากโดเมนที่เราอนุญาต หรือ ใช้ Identity Provider อื่นๆได้เลยครับ

แบบนี้ไม่ต้องห่วงเรื่อง Security Log ด้วยครับ เพราะ Cloudflare จัดการให้หมดเลย ผมว่าอันนี้ดีมากๆเลยครับ

อยากให้ Node-RED คุยกับระบบอื่น?

ถ้าเพื่อนๆ อยากให้ Node-RED คุยกับระบบอื่น หรือรับข้อมูลจากอุปกรณ์ IoT นะครับ ลองดูพวก Message Broker อย่าง MQTT หรือ Kafka นะครับ จะช่วยให้ระบบเรายืดหยุ่นขึ้นเยอะเลยครับ เป็น Best Practice ในการเชื่อมต่อระบบให้คุยกันได้ง่ายๆเลยนะ

หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆนะครับ ลองเอาไปปรับใช้กับระบบของตัวเองดูได้เลยครับ

อ้างอิง: - Cloudflare Tunnel Documentation - Node-RED Official Website - MQTT Protocol

Read more

อินเตอร์ พบ อตาลันต้า: วิเคราะห์บอล เซเรีย อา 2025/26 พร้อมลิ้งก์ดูบอลสด

อินเตอร์ พบ อตาลันต้า: วิเคราะห์บอล เซเรีย อา 2025/26 พร้อมลิ้งก์ดูบอลสด

เจาะลึก อินเตอร์ มิลาน พบ อตาลันต้า ศึก กัลโช่ เซเรีย อา 2025/26! วิเคราะห์ฟอร์ม สถิติ ตัวผู้เล่นที่คาด พร้อมลิ้งก์ดูบอลสดคืนวันเสาร์นี้

By ทีมงาน devdog
ในหลวง ร.10 ทรงเปิดประชุมรัฐสภา ขอให้ "ยึดถือความถูกต้องและประโยชน์สุขของประชาชนเป็นเป้าหมายสูงสุด"

ในหลวง ร.10 ทรงเปิดประชุมรัฐสภา ขอให้ "ยึดถือความถูกต้องและประโยชน์สุขของประชาชนเป็นเป้าหมายสูงสุด"

พระบาทสมเด็จพระเจ้าอยู่หัวฯ เสด็จฯ เปิดประชุมรัฐสภา พระราชทานพระราชดำรัสชี้ สส.และ สว. ยึดความถูกต้องและประโยชน์สุขของปวงชนเป็นเป้าหมายสูงสุด ในฐานะผู้แทนราษฎร

By ทีมงาน devdog
One Piece Live Action: ถอดรหัสความสำเร็จและอนาคตที่สดใสของซีรีส์คนแสดงแห่งยุค!

One Piece Live Action: ถอดรหัสความสำเร็จและอนาคตที่สดใสของซีรีส์คนแสดงแห่งยุค!

ค้นพบความสำเร็จของ One Piece Live Action ซีรีส์คนแสดงจาก Netflix ที่ทำลายคำสาปอนิเมะ! สรุปใจความสำคัญจากข่าวจริง เตรียมผจญภัยซีซัน 2 และ 3 กับกลุ่มหมวกฟาง.

By ทีมงาน devdog
ในหลวง พระราชทานพระราชดำรัสเปิดประชุมรัฐสภา: ยึดมั่นความถูกต้อง เพื่อประโยชน์สุขปวงชนชาวไทย

ในหลวง พระราชทานพระราชดำรัสเปิดประชุมรัฐสภา: ยึดมั่นความถูกต้อง เพื่อประโยชน์สุขปวงชนชาวไทย

ในหลวงและพระราชินีเสด็จฯ เปิดประชุมรัฐสภาปี 2569 ทรงมีพระราชดำรัสให้ สส. ยึดถือความถูกต้องและประโยชน์สุขของประชาชนเป็นเป้าหมายสูงสุด.

By ทีมงาน devdog