ngrok คือบริการ reverse tunnel ที่ให้ URL สาธารณะแบบ HTTPS กับแอปที่รันอยู่บน localhost หรือในเครือข่ายภายใน (อ่านว่า "เอ็น-กร็อก") โดยโปรแกรม agent บนเครื่องเป็นฝ่ายต่อออกไปหา cloud ของ ngrok จึงไม่ต้องเปิดพอร์ตหรือแก้ firewall ขาเข้า

ngrok เหมาะกับงานชั่วคราว เช่น ทดสอบ webhook (การที่ระบบภายนอกเรียก URL ของเราเมื่อเกิดเหตุการณ์) หรือเดโมงานให้ลูกค้าดู แต่ URL ที่ได้เปิดให้ทุกคนที่รู้ลิงก์เข้าได้ทันที ถ้าใช้ในองค์กรจึงควรใส่การยืนยันตัวตนทุกครั้ง และมีนโยบายว่าใครใช้ tunnel ได้ ด้วยบัญชีไหน

สรุปสั้น: ติดตั้ง agent ใส่ authtoken ด้วย ngrok config add-authtoken แล้วรัน ngrok http <port> ก่อนส่งลิงก์ให้ใคร ให้ใส่ OAuth, basic auth หรือจำกัด IP ผ่าน Traffic Policy ฝั่งทีม IT ควรกำหนดว่าใช้ได้เฉพาะบัญชีขององค์กร ซึ่ง ngrok เองแนะนำให้บล็อก DNS ของโดเมนที่ agent ใช้ต่อออก และใช้ custom connect URL สำหรับบัญชีที่อนุมัติ งาน production ควรย้ายไปรันบนเซิร์ฟเวอร์จริงหลัง reverse proxy ที่มี TLS หรือให้เข้าผ่าน VPN

ngrok คืออะไร

ngrok คือบริการที่รับทราฟฟิกจากอินเทอร์เน็ตแทนแอปของเรา แล้วส่งต่อเข้ามาทาง tunnel (ช่องทางเชื่อมต่อที่ห่อทราฟฟิกไว้ข้างใน) ที่โปรแกรม agent บนเครื่องเปิดค้างไว้ เอกสารของ ngrok นิยามตัวเองว่าเป็น "developer infrastructure that routes and secures traffic to your apps, APIs, and AI models, wherever they run"

บริการของ ngrok มีหลายส่วน ตั้งแต่ API gateway ไปจนถึงการเชื่อมเครือข่ายของลูกค้า แต่งานที่คนส่วนใหญ่ค้นหาคือการแชร์ localhost คือทำให้แอปที่รันบนเครื่องตัวเอง เช่น localhost:8080 มี URL ที่คนภายนอกเปิดได้ โดยไม่ต้อง deploy ขึ้นเซิร์ฟเวอร์

ชื่อ ngrok อ่านว่า "en-grok" ตามหน้าแบรนด์ของ ngrok เป็นสองพยางค์สั้นที่คล้องจองกับคำว่า rock ออกเสียงแบบไทยได้ใกล้เคียงว่า เอ็น-กร็อก และหน้าเดียวกันกำหนดให้เขียนด้วยตัวพิมพ์เล็กเสมอ แม้อยู่ต้นประโยค

ngrok ทำงานอย่างไร

agent ของ ngrok เป็นฝ่ายเปิดการเชื่อมต่อขาออก (outbound) ไปหา cloud ของ ngrok แล้วได้ URL สาธารณะกลับมา คำขอที่ส่งมาที่ URL นั้นจะวิ่งย้อนกลับมาตามการเชื่อมต่อเดิมจนถึงแอปบนเครื่อง ตามที่เอกสาร How Sharing Localhost Works อธิบาย

หน้าเอกสาร agent ระบุว่า agent ต่อออกไปที่เครือข่ายของ ngrok ด้วย TLS ทางพอร์ต 443 และทุกอย่างวิ่งใน TLS connection เดียว จึงไม่ต้องเปิดพอร์ตขาเข้า ผลที่ตามมามีสองข้อตามเอกสาร tunnels คือเครื่องของเราไม่รับการเชื่อมต่อขาเข้าเลย และ URL สาธารณะให้บริการผ่าน HTTPS ด้วย certificate ที่ ngrok ออกและต่ออายุให้ ส่วนคำขอที่ถูก Traffic Policy ปฏิเสธจะไม่ถึงแอปเลย ตามที่เอกสาร restrict-ips เขียนว่า "The upstream server is never reached"

มีสองเรื่องที่ควรรู้ตั้งแต่ต้น เรื่องแรก เอกสาร tunnels เขียนไว้ตรง ๆ ว่า "Your URL is public as soon as it exists" ใครมีลิงก์ก็เปิดได้ จนกว่าจะใส่การยืนยันตัวตน และเมื่อหยุด agent แล้ว URL ก็ใช้ไม่ได้อีก เรื่องที่สอง สำหรับ endpoint แบบ HTTPS ngrok ถอดรหัส TLS ที่ cloud ของตัวเองเป็นค่าเริ่มต้น ตามเอกสาร terminate-tls ส่วน endpoint แบบ TLS จะไม่ถอดรหัสให้ เจ้าของบริการต้องถอดเองที่ปลายทาง

เอกสาร tunnels แบ่งสิ่งที่แชร์ได้เป็นสามแบบ:

ชนิด endpoint ของ ngrok ตามเอกสาร How Sharing Localhost Works
สิ่งที่แชร์คำสั่งตัวอย่าง
เว็บแอป, API หรือตัวรับ webhookngrok http 8080
ฐานข้อมูล, SSH, RDPngrok tcp 3389
บริการที่ใช้ TLS certificate ของตัวเองngrok tls 8443

แบบ tcp คือแบบที่ทีม IT ควรระวังที่สุด เพราะทำให้ฐานข้อมูลหรือ RDP ในเครือข่ายภายในมีทางเข้าจากอินเทอร์เน็ตได้ โดยไม่ผ่านการตั้งค่าของ firewall

ใช้ ngrok ทำอะไรได้บ้าง

งานที่เหมาะกับ ngrok คืองานที่ต้องการ URL สาธารณะชั่วคราวให้แอปที่ยังไม่ได้ deploy หน้าWhat is ngrok ยกตัวอย่างการแชร์แอปบนเครื่อง การทดสอบ webhook บนเครื่อง การรัน preview ใน CI ไปจนถึงการเปิด SSH และ RDP

  • เดโมงานให้ลูกค้าหรือทีมอื่นดู: เปิดแอปที่กำลังพัฒนาให้คนนอกเครือข่ายลองใช้ได้ทันที โดยไม่ต้องขึ้น staging
  • ทดสอบ webhook: บริการอย่าง payment gateway, LINE Messaging API หรือ GitHub ต้องเรียก URL สาธารณะแบบ HTTPS เมื่อมีเหตุการณ์ ระหว่างพัฒนาจึงใช้ URL ของ ngrok รับ webhook เข้ามาที่เครื่องนักพัฒนาได้
  • เข้าเครื่องที่อยู่หลัง NAT (การแปลงที่อยู่ IP ที่ router ทำ ทำให้เครื่องภายในไม่มี IP สาธารณะ): เช่น เครื่องทดสอบที่ไม่มี IP สาธารณะและแก้ router ไม่ได้

สำหรับ webhook ngrok มี action ชื่อ verify-webhook ที่ตรวจลายเซ็นของผู้ให้บริการบางรายก่อนส่งเข้าแอป เช่น GitHub, GitLab, Stripe และ Slack รายการ ณ วันที่ 2026-11-11 ไม่มี LINE ถ้าผู้ให้บริการที่ใช้ไม่อยู่ในรายการ ให้ตรวจลายเซ็นในโค้ดของแอปเองตามเอกสารของผู้ให้บริการนั้น

วิธีใช้ ngrok: ติดตั้ง ใส่ authtoken แล้วเปิด tunnel

ขั้นตอนตามquickstart ของ ngrok มีสามขั้น คือติดตั้ง agent เชื่อมกับบัญชีด้วย authtoken แล้วสั่งเปิด endpoint ให้พอร์ตของแอป ตัวอย่างข้างล่างตรวจกับเอกสาร ณ วันที่ 2026-11-11 คำสั่งของ agent เคยเปลี่ยนมาแล้ว ถ้ารุ่นที่ใช้ทำงานต่างไป ให้ยึดCLI reference

  1. ติดตั้ง agent: บน macOS ใช้ brew install ngrok บน Debian/Ubuntu ใช้ apt repository ของ ngrok และบน Windows ใช้ Microsoft Store ขั้นตอนของแต่ละช่องทางอยู่ที่ ngrok.com/download ตรวจว่าติดตั้งแล้วด้วย ngrok help
  2. เชื่อมกับบัญชี: สมัครบัญชี คัดลอก authtoken จาก dashboard แล้วรัน ngrok config add-authtoken ซึ่งบันทึก token ลงไฟล์ config บทความเก่าหลายแห่งยังใช้ ngrok authtoken ซึ่งไม่ใช่รูปแบบใน CLI reference ณ วันที่ตรวจ
  3. เปิด endpoint: รัน ngrok http ตามด้วยพอร์ตของแอป agent จะแสดง URL สำหรับส่งต่อ (forwarding URL) ในหน้าจอ terminal ทุกบัญชีได้ dev domain ฟรีที่ระบบเลือกให้ ส่วนการกำหนดโดเมนเองด้วย --url ใช้ได้ในแผนเสียเงิน
brew install ngrok
ngrok config add-authtoken <token>
ngrok http 8080

ไฟล์ config อยู่คนละที่ตามระบบปฏิบัติการ ngrok config check บอกตำแหน่งไฟล์ และ ngrok config edit เปิดไฟล์ให้แก้ ถ้าติดตั้งผ่าน package manager อย่าง brew หรือ apt ให้อัปเดตผ่าน package manager นั้น ไม่ใช่ ngrok update ตามที่ CLI reference แนะนำ

บนเซิร์ฟเวอร์ agent รันเป็น service ของระบบปฏิบัติการได้ด้วยคำสั่ง ngrok service ซึ่งCLI reference ระบุว่ารองรับ Windows, macOS และ Linux รับคำสั่งย่อย install, uninstall, start, stop และ restart และตอน install ต้องระบุ --config เพื่อบอกตำแหน่งไฟล์ config ทำได้ก็จริง แต่ tunnel ที่เปิดค้างบนเซิร์ฟเวอร์คือสัญญาณว่างานนั้นไม่ชั่วคราวแล้ว และควรพิจารณาย้ายไปหลัง reverse proxy ที่มี TLS ตามหัวข้อเมื่อไรควรย้ายไปเซิร์ฟเวอร์จริง

ดูคำขอที่วิ่งผ่าน tunnel ที่ localhost:4040

ขณะ agent ทำงาน เปิด http://localhost:4040 บนเครื่องเดียวกันเพื่อดูหน้าweb inspection interface ซึ่งแสดงเวลา ระยะเวลา IP ต้นทาง header, query parameter, payload ของคำขอ และ body ของคำตอบ ใช้ได้กับ endpoint แบบ HTTP เท่านั้น และกดส่งคำขอซ้ำ (replay) ได้ เหมาะกับการดีบัก webhook เพราะไม่ต้องรอให้ผู้ให้บริการส่งมาใหม่

เอกสารเดียวกันเตือนว่าคำขอที่ replay จากหน้านี้ไม่ผ่าน policy ของ Cloud Endpoint เพราะ policy เหล่านั้นทำงานก่อนคำขอถึง agent ส่วนเอกสาร config ระบุว่าหน้านี้และ agent API ฟังที่ 127.0.0.1:4040 เป็นค่าเริ่มต้น (web_addr) จึงเปิดได้จากเครื่องนั้นเท่านั้น ถ้าไม่เปลี่ยนค่านี้

ใส่การยืนยันตัวตนให้ URL ด้วย Traffic Policy

วิธีที่ ngrok แนะนำในการจำกัดคนเข้า URL คือ Traffic Policy ซึ่งเป็นไฟล์ YAML หรือ JSON ที่บอก ngrok ว่าต้องทำอะไรกับคำขอก่อนส่งเข้าแอป โดยไม่ต้องแก้โค้ดของแอป หน้า Authentication ระบุวิธีที่รองรับไว้สี่แบบ คือ OAuth (Google, GitHub, Microsoft และรายอื่น), OpenID Connect, SAML (ยังอยู่ในช่วง early access) และ Basic Auth

flag แบบเดิมของคำสั่ง ngrok http อย่าง --basic-auth, --oauth และ --cidr-allow ถูกระบุใน CLI reference ว่า deprecated พร้อมข้อความ "use traffic policy instead" (ส่วน --cidr-allow ของ ngrok tcp ยังไม่ deprecated) และchangelog ของ agent รุ่น 3.36.0 (2026-02-03) บันทึกว่า flag ที่ Traffic Policy มาแทนถูก deprecated ยังใช้ได้แต่จะไม่แสดงใน --help และขึ้นคำเตือน บทความหรือสคริปต์ที่ยังใช้ flag เหล่านี้ควรย้ายไปใช้ไฟล์ policy

Basic auth: ตั้งรหัสผ่านก่อนส่งลิงก์

action basic-auth ให้ผู้เข้าต้องใส่ชื่อผู้ใช้และรหัสผ่าน คำขอที่ไม่ผ่านจะได้ 401 Unauthorized ตั้งได้สูงสุด 10 คู่ และรหัสผ่านต้องยาว 8 ถึง 128 ตัวอักษร ตัวอย่างไฟล์ policy ที่ย่อจากเอกสาร:

on_http_request:
  - actions:
      - type: basic-auth
        config:
          credentials:
            - "demo:change-this-pass"

จากนั้นสั่ง agent ให้ใช้ไฟล์นี้ด้วย flag --traffic-policy-file ซึ่ง CLI reference ระบุว่ารับ path ของไฟล์ policy แบบ YAML หรือ JSON

ngrok http 8080 \
  --traffic-policy-file policy.yml

basic auth เหมาะกับเดโมสั้น ๆ ที่ส่งลิงก์ให้คนไม่กี่คน รหัสผ่านที่ส่งต่อกันไปมาควรเปลี่ยนทุกครั้งที่เปิด tunnel รอบใหม่

OAuth: ให้เข้าได้เฉพาะอีเมลขององค์กร

action oauth ให้ผู้เข้าล็อกอินผ่าน identity provider ก่อน และใช้ expression ปฏิเสธคนที่อีเมลไม่ได้ลงท้ายด้วยโดเมนขององค์กรได้ ตัวอย่างในหน้า Authentication ใช้ OAuth app ของ Google ที่ ngrok เป็นเจ้าของ และเอกสารแนะนำให้ใช้ OAuth app ขององค์กรเองเมื่อนำไปใช้จริง

จำกัด IP และ mTLS

action restrict-ips อนุญาตหรือปฏิเสธตาม IP ต้นทาง โดยกำหนดเป็นรายการ CIDR (ช่วง IP) และหน้า Network Security แสดงการใช้ร่วมกับ OAuth ใน endpoint เดียว หน้าเดียวกันระบุว่ารองรับ mutual TLS (mTLS) ซึ่งให้เข้าได้เฉพาะ client ที่มี certificate ที่ถูกต้อง

หน้าเอกสารของ action เหล่านี้ไม่ได้ระบุว่าใช้ได้ในแผนใด ก่อนวางเป็นมาตรฐานขององค์กร ให้ตรวจกับหน้า pricing และทดสอบกับบัญชีที่จะใช้จริง

ความเสี่ยงเมื่อใช้ ngrok ในองค์กรอยู่ตรงไหน

ตัว ngrok ไม่ใช่ช่องโหว่ การเชื่อมต่อเข้ารหัสและมีการควบคุมสิทธิ์ให้เลือกใช้ ความเสี่ยงอยู่ที่ tunnel เปิดทางเข้าใหม่ที่ทีมเครือข่ายมองไม่เห็น และการตั้งค่าขึ้นอยู่กับคนที่เปิด tunnel

  • URL สาธารณะทันทีที่สร้าง: ถ้าไม่ใส่ policy ใครมีลิงก์ก็เข้าได้ ข้อนี้ใช้กับเครื่องมือ tunnel ทั่วไป ไม่ใช่เฉพาะ ngrok เอกสารของ Cloudflare ก็เตือนแบบเดียวกันว่าถ้าไม่มี Access application แอปที่เผยแพร่ผ่าน tunnel จะเข้าได้จากทุกคนบนอินเทอร์เน็ต
  • ข้ามกฎ firewall ขาเข้า: คู่มือ firewall ของ ngrok อธิบายว่า firewall มักอนุญาตการเชื่อมต่อขาออก ซึ่งเป็นสิ่งที่ agent ใช้สร้าง session นักพัฒนาจึงเปิดบริการภายใน รวมถึงฐานข้อมูลหรือ RDP ผ่าน ngrok tcp ได้โดยไม่ต้องขอเปิดพอร์ตจากทีมเครือข่าย
  • ข้อมูลผ่านบริการของบุคคลที่สาม: endpoint แบบ HTTPS ถูกถอดรหัสที่ cloud ของ ngrok ตามที่กล่าวข้างต้น
  • log บน dashboard: Traffic Inspector เก็บเฉพาะ metadata ของคำขอเป็นค่าเริ่มต้น ถ้าผู้ดูแลบัญชีเปิด Full Capture ระบบจะเก็บ URL เต็มรวมค่า query ค่าของทุก header และ body ของคำขอและคำตอบ (body สูงสุด 10KB ค่า header สูงสุด 1KB) เอกสารเตือนเองว่าสมาชิกในทีมอาจเห็นข้อมูลอ่อนไหว
  • เงื่อนไขการจัดการข้อมูล: FAQ ของ ngrok อ้างไปที่ Terms of Service และ Data Processing Agreement
  • tunnel ที่ไม่มีใครรู้: tunnel ที่นักพัฒนาเปิดค้างไว้ ใช้บัญชีส่วนตัว หรือเปิดโดยผู้ขายระบบ เป็นทางเข้าที่ไม่มีเจ้าของในทะเบียนของ IT

เครื่องมือ tunnel ถูกนำไปใช้ในการโจมตีด้วย เพราะทราฟฟิกดูเหมือน HTTPS ขาออกทั่วไป MITRE ATT&CK (S0508) บันทึก ngrok ว่าเป็น "legitimate reverse proxy tool" ที่ผู้โจมตีเคยนำไปใช้ ในเทคนิคอย่าง Protocol Tunneling (T1572) และ Exfiltration Over Web Service (T1567)

ประกาศ AA22-320A ของ CISA (เผยแพร่ 16 พฤศจิกายน 2022 แก้ไข 25 พฤศจิกายน 2022) รายงานเหตุในเครือข่ายหน่วยงานรัฐบาลกลางสหรัฐฯ ที่ผู้โจมตีใช้ ngrok ส่งต่อ RDP และสั่งการเครื่อง โดยในเครือข่ายภายในมองเห็นเพียงการเชื่อมต่อ HTTPS ขาออกพอร์ต 443 ไปที่ tunnel.us.ngrok[.]com

ข้อสรุปที่ใช้งานได้คือ การพบ ngrok บนเครื่องไม่ได้แปลว่าถูกโจมตี แต่ agent ที่ไม่มีใครรับว่าเป็นเจ้าของควรถูกตรวจเหมือนเหตุผิดปกติ และในทางกลับกัน ลิงก์ที่เป็นโดเมนของ ngrok ก็ไม่ได้รับรองว่าหน้านั้นปลอดภัย FAQ ของ ngrok อธิบายว่าชื่อโดเมนบอกแค่ว่าเครือข่ายไหนส่งหน้านั้นมา ไม่ได้บอกว่าใครสร้าง

ทีม IT ควบคุมการใช้ tunnel ในองค์กรอย่างไร

เริ่มจากนโยบายเครื่องมือที่อนุญาต แล้วจึงใช้การบล็อกบังคับนโยบายนั้น การบล็อกอย่างเดียวมักไม่พอ บล็อกของ ngrok (3 พฤษภาคม 2022) ให้ความเห็นว่าถ้าบล็อกโดยไม่ให้ทางเลือก ทีมจะหาเครื่องมืออื่นที่ปลอดภัยน้อยกว่าและซ่อนการใช้ให้มิดขึ้น ข้อนี้เป็นมุมมองของผู้ขาย แต่เป็นเหตุผลที่ควรมีทางที่อนุมัติให้ใช้ ควบคู่กับการบล็อก

เขียนนโยบายให้ชัด

  • เครื่องมือ tunnel ตัวใดที่อนุญาต และใช้ได้กับบัญชีขององค์กรเท่านั้น
  • ทุก endpoint ต้องมีการยืนยันตัวตนหรือจำกัด IP ห้ามเปิด URL โล่ง
  • เปิดได้นานแค่ไหน ใครอนุมัติ และห้ามใช้กับข้อมูลประเภทใด เช่น ข้อมูลส่วนบุคคลของลูกค้าหรือระบบ production
  • แบบ tcp สำหรับฐานข้อมูลหรือ RDP ต้องขออนุมัติเป็นกรณี หรือห้ามใช้

บล็อกบัญชีที่ไม่ใช่ขององค์กร

คู่มือ Securing your tunnels ของ ngrok ระบุว่าผู้ดูแลระบบส่วนใหญ่ต้องการบล็อกบัญชี ngrok ที่ไม่ใช่ขององค์กร และวิธีที่เร็วที่สุดคือบล็อกการ lookup DNS ของโดเมนที่ agent ใช้ต่อเข้า cloud ของ ngrok รายการในคู่มือ ณ วันที่ 2026-11-11 มีดังนี้:

  • connect.ngrok-agent.com และแบบแยกภูมิภาค connect.us.ngrok-agent.com โดยภูมิภาคคือ us, eu, ap, au, sa, jp และ in
  • tunnel.ngrok.com และแบบแยกภูมิภาค tunnel.us.ngrok.com ด้วยภูมิภาคชุดเดียวกัน

องค์กรที่ต้องการใช้ ngrok อย่างเป็นทางการ ตั้ง custom connect URL ให้บัญชีขององค์กร แล้วกำหนด connect_url ในไฟล์ config ของ agent ที่อนุมัติ เอกสาร connect URL ระบุทั้งรูปแบบนี้ คือบล็อก connect URL ค่าเริ่มต้นในเครือข่ายองค์กรแล้วอนุญาตเฉพาะ URL ของตัวเอง และระบุว่า custom connect URL มีในแผน Pay-as-you-go

ตั้งค่าบัญชีขององค์กร

  • ให้ agent แต่ละชุดใช้ authtoken ของตัวเอง เพื่อแยกความเสียหายเมื่อ token หลุด และตั้ง ACL (รายการสิทธิ์) ของ authtoken ให้สร้างได้เฉพาะ endpoint ที่จำเป็น ตามคู่มือ Securing your tunnels
  • พิจารณาจำกัด IP ที่เริ่ม session ของ agent ได้ ตามคำแนะนำในคู่มือเดียวกัน
  • ปิด Full Capture ไว้ถ้าไม่จำเป็น และจำกัดคนที่เห็น dashboard ฟีเจอร์อย่าง SSO (ล็อกอินครั้งเดียว) และ RBAC (สิทธิ์ตามบทบาท) อยู่ในส่วนเสริมแบบเสียเงินตามหน้า pricing

ตรวจหาการใช้งาน

ดู log ของ DNS และ firewall ขาออกว่ามีเครื่องใด lookup โดเมนในรายการข้างบน ถ้าองค์กรรวม log เหล่านี้ไว้ในระบบ SIEM (ระบบรวมและวิเคราะห์ log ด้านความปลอดภัย) อย่าง Wazuh อยู่แล้ว ก็ค้นย้อนหลังและตั้งการแจ้งเตือนจากที่เดียวได้ คู่มือ firewall ของ ngrok ยังระบุว่า ngrok อาจถูกบล็อกบน firewall ของ Fortinet ถ้าองค์กรใช้ FortiGate ให้ตรวจว่า policy ที่ใช้อยู่บล็อกหรืออนุญาตอยู่แล้วหรือไม่ก่อนเพิ่มกฎ

เมื่อพบ ngrok บนเครื่องโดยไม่รู้ที่มา

FAQ ของ ngrok ระบุว่าการพบ ngrok ไม่ได้บอกว่าการใช้งานนั้นได้รับอนุญาตหรือไม่ และให้ตรวจสามขั้น:

  1. หา process: ดูว่ารันด้วยบัญชีใดและมี argument อะไร ผู้โจมตีบางรายเปลี่ยนชื่อไฟล์ จึงควรหา process ที่มี argument แบบ ngrok อย่าง http, tcp หรือ --authtoken ด้วย
  2. หา config: รัน ngrok config check เพื่อดูตำแหน่งไฟล์ และตรวจ service definition ถ้า agent รันเป็น service ไฟล์ config และ argument บอกว่าเปิดบริการใดออกไป และ authtoken บอกว่าต่อเข้าบัญชีใด
  3. ถามเจ้าของ: นำผู้รัน process, path ของไฟล์ และบริการที่เปิดไปถามทีม IT หรือผู้ขายที่ติดตั้ง

ถ้าไม่มีใครรับ FAQ แนะนำให้หยุด service เก็บไฟล์และ config ไว้ให้ทีมความปลอดภัย แล้วแจ้ง ngrok ที่ abuse@ngrok.com พร้อม URL ของ endpoint และ authtoken FAQ เดียวกันอธิบายการตรวจว่าไฟล์เป็นของแท้: บน Windows และ macOS ไฟล์ของ ngrok มีลายเซ็นของ ngrok, Inc. (รุ่นเก่าอาจเป็น ngrok LLC) ส่วนบน Linux ให้เทียบค่า SHA256 ของไฟล์ archive กับที่ ngrok เผยแพร่

ทางเลือกอื่นนอกจาก ngrok เทียบกันอย่างไร

เครื่องมือแต่ละตัวต่างกันที่สองเรื่องหลัก คือใครเข้าถึงบริการได้ และทราฟฟิกผ่านเครื่องของใคร ตารางนี้สรุปจากเอกสารของผู้พัฒนาแต่ละราย

เปรียบเทียบเครื่องมือ tunnel (ตรวจ ณ 2026-11-11)
เครื่องมือใครเข้าได้ข้อควรรู้
ngrok
ผ่าน cloud ของ ngrok
ทุกคนที่มีลิงก์ จนกว่าจะใส่ Traffic PolicyHTTPS ถอดรหัสที่ cloud ของ ngrok; มี OAuth, basic auth, จำกัด IP, mTLS
Cloudflare Tunnel
ผ่านเครือข่ายของ Cloudflare
ทุกคน ถ้าไม่มี Cloudflare Accesscloudflared ต่อแบบขาออกอย่างเดียว
Cloudflare Quick Tunnel
ผ่านเครือข่ายของ Cloudflare
ทุกคนที่มีลิงก์ ถ้าไม่ใส่ --allowed-mail (ยืนยันตัวด้วยอีเมล)ไม่ต้องมีบัญชี ใช้ทดสอบและพัฒนาเท่านั้น
Tailscale Serve
ผ่าน tailnet ขององค์กร
เฉพาะอุปกรณ์ใน tailnet ตาม access ruleไม่มี URL สาธารณะ
Tailscale Funnel
ผ่าน relay ของ Tailscale
ทุกคนบนอินเทอร์เน็ตbeta; พอร์ต 443/8443/10000 เท่านั้น; relay ของ Tailscale ถอดรหัสข้อมูลไม่ได้
frp
ผ่านเซิร์ฟเวอร์ของเราเอง
ตามที่ตั้งบนเซิร์ฟเวอร์ของเราTLS เปิดเป็นค่าเริ่มต้น แต่ต้องตั้ง CA เพื่อตรวจ certificate
SSH reverse tunnel (ssh -R)
ผ่านเซิร์ฟเวอร์ SSH ของเราเอง
เฉพาะเครื่องเซิร์ฟเวอร์เอง เป็นค่าเริ่มต้นต้องเปิด GatewayPorts ถ้าจะให้เครื่องอื่นเข้า
Reverse proxy + TLS หรือ VPN
ผ่านโครงสร้างขององค์กรเอง
ตามที่องค์กรออกแบบดูแลเซิร์ฟเวอร์ certificate และ firewall เอง แต่ควบคุมและตรวจสอบได้ครบ

Cloudflare Tunnel จำกัดผู้ใช้ด้วย Access policy ส่วน Cloudflare Quick Tunnel เปลี่ยนชื่อโฮสต์ทุกครั้งที่เปิด Tailscale Funnel ต้องเปิด HTTPS certificate, MagicDNS และ attribute funnel ใน policy ของ tailnet ก่อนใช้ frp ยืนยันตัว frpc กับ frps ด้วย token เป็นค่าเริ่มต้น และเปิด TLS เป็นค่าเริ่มต้นตั้งแต่ v0.50.0 ส่วน ssh -R ผูกพอร์ตฝั่งเซิร์ฟเวอร์กับ loopback เป็นค่าเริ่มต้น

frp และ SSH reverse tunnel ไม่ส่งทราฟฟิกผ่านผู้ให้บริการภายนอก แต่องค์กรต้องดูแลเซิร์ฟเวอร์ที่รับทราฟฟิกเอง ทั้งการ patch การยืนยันตัวตน และ log

เมื่อไรควรใช้ tunnel และเมื่อไรควรย้ายไปเซิร์ฟเวอร์จริงหรือ VPN

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

เลือกเครื่องมือตามสถานการณ์
สถานการณ์ทางที่เหมาะเหตุผล
ทดสอบ webhook บนเครื่องนักพัฒนาngrok หรือ tunnel ที่องค์กรอนุมัติ พร้อม auth หรือการตรวจลายเซ็น และปิดเมื่อเสร็จผู้ให้บริการต้องเรียก URL สาธารณะ และงานจบในไม่กี่ชั่วโมง
เดโมให้ลูกค้าดูtunnel ที่มี OAuth, basic auth หรือจำกัด IPคนดูอยู่นอกเครือข่าย แต่ไม่ควรเปิดให้ทุกคน
เฉพาะพนักงานต้องเข้าVPN ขององค์กร หรือ Tailscale Serveไม่ต้องมี URL สาธารณะเลย
ห้ามทราฟฟิกผ่านผู้ให้บริการภายนอกfrp หรือ ssh -R บนเซิร์ฟเวอร์ขององค์กรทราฟฟิกอยู่ในเครื่องที่องค์กรควบคุม
บริการ productionเซิร์ฟเวอร์จริงหลัง reverse proxy ที่มี TLS พร้อม monitoring และ logต้องการความต่อเนื่อง การตรวจสอบย้อนหลัง และเจ้าของที่ชัดเจน

สัญญาณว่าควรเลิกใช้ tunnel: ลิงก์ถูกใช้ต่อหลังเดโมจบ มีผู้ใช้ประจำ มีข้อมูลจริงของลูกค้าวิ่งผ่าน มีคนถามเรื่อง uptime หรือต้องเก็บ log ไว้ตรวจสอบ เมื่อถึงจุดนี้ งานที่ต้องทำคือวางเซิร์ฟเวอร์ reverse proxy, certificate และ firewall ให้ถูกต้อง ไม่ใช่หา tunnel ที่ดีกว่า

ข้อมูลที่เปลี่ยนบ่อย

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

สถานะ ณ 2026-11-11: ข้อมูลของ ngrok และเครื่องมือที่เกี่ยวข้อง
เรื่องสถานะแหล่ง
รุ่นของ ngrok agentสาย 3.x รุ่นใหม่สุดใน changelog คือ 3.39.13 (2026-10-22)Agent changelog
คำสั่งเชื่อมบัญชีngrok config add-authtokenCLI reference
flag --basic-auth, --oauth, --cidr-allow ของ ngrok httpdeprecated ให้ใช้ Traffic Policy (--traffic-policy-file)CLI reference, changelog 3.36.0
หน้าตรวจคำขอบนเครื่อง127.0.0.1:4040 เฉพาะ endpoint แบบ HTTPWeb inspection interface
โดเมนที่ agent ใช้ต่อออกconnect.ngrok-agent.com, tunnel.ngrok.com และแบบแยกภูมิภาคSecuring your tunnels
แผน Freeมี และ endpoint HTTP/S แสดงหน้าคั่นngrok pricing
endpoint แบบ TCPแผน Free ต้องเพิ่มวิธีชำระเงินก่อนใช้CLI reference
Custom connect URLมีในแผน Pay-as-you-goConnect URL
Tailscale Funnelbeta ใช้ได้เฉพาะพอร์ต 443, 8443, 10000Tailscale Funnel
Cloudflare Quick Tunnelสำหรับทดสอบและพัฒนา ไม่ต้องมีบัญชีQuick Tunnels

UNIXDEV ช่วยวางทางเข้าระบบให้ถูกที่

UNIXDEV ไม่ได้ขายหรือดูแลบริการ ngrok, Cloudflare หรือ Tailscale งานของเราคือส่วนที่องค์กรต้องทำเองเมื่อเลิกพึ่ง tunnel:

ถ้าทีมพบว่ามีบริการภายในที่เปิดผ่าน tunnel อยู่แล้ว ขั้นแรกที่แนะนำคือทำรายการว่ามีอะไรเปิดอยู่ ใครเป็นเจ้าของ และควรย้ายไปทางไหน

แหล่งอ้างอิงและอ่านต่อ

ตรวจข้อมูล ณ วันที่ 2026-11-11

วิธีจัดทำ: อ้างอิงจากเอกสารต้นทางข้างต้น ตรวจโดยทีม UNIXDEV

คำถามที่พบบ่อย

ngrok คืออะไร อ่านว่าอะไร?

ngrok คือบริการ reverse tunnel ที่ให้ URL สาธารณะกับแอปบนเครื่องโดยไม่ต้องเปิดพอร์ตขาเข้า อ่านว่า en-grok (เอ็น-กร็อก) ตามหน้าแบรนด์ของ ngrok ตัว ngrok เองเป็นทั้งโปรแกรม agent ที่ติดตั้งบนเครื่องและบริการ cloud ที่รับทราฟฟิก จึงต้องมีบัญชีและ authtoken ก่อนใช้

ngrok ใช้ฟรีได้ไหม?

ได้ ณ วันที่ 2026-11-11 หน้า pricing ของ ngrok มีแผน Free และระบุว่า endpoint แบบ HTTP/S ของแผนนี้จะแสดงหน้าคั่น (interstitial page) ก่อนเข้าแอป ส่วนขีดจำกัดและค่าบริการของแต่ละแผนเปลี่ยนได้ ให้ดูที่ ngrok.com/pricing ก่อนตัดสินใจ ฟีเจอร์ด้านการกำกับดูแลบางรายการ เช่น custom connect URL อยู่ในแผนเสียเงิน

ใช้ ngrok ในองค์กรปลอดภัยไหม?

ngrok เป็นเครื่องมือของนักพัฒนาที่เข้ารหัสการเชื่อมต่อ แต่ URL ที่ได้เปิดให้ทุกคนที่รู้ลิงก์เข้าได้ทันที ทราฟฟิกผ่านบริการของบุคคลที่สาม และ tunnel ข้ามการตรวจของ firewall ขาเข้า จะปลอดภัยพอหรือไม่จึงขึ้นกับการตั้งค่าและนโยบาย อย่างน้อยควรใส่ OAuth หรือ basic auth ใช้บัญชีขององค์กร ปิด tunnel เมื่อเลิกใช้ และไม่ส่งข้อมูลจริงของลูกค้าผ่าน tunnel ที่ไม่ได้รับอนุมัติ

นอกจาก ngrok มีทางเลือกอะไรบ้าง?

ถ้าต้องการ URL สาธารณะแบบเดียวกัน มี Cloudflare Tunnel และ Tailscale Funnel ถ้าต้องการให้เฉพาะคนในทีมเข้า ใช้ Tailscale Serve หรือ VPN ขององค์กร ถ้าไม่ต้องการให้ทราฟฟิกผ่านผู้ให้บริการภายนอก ใช้ frp หรือ SSH reverse tunnel บนเซิร์ฟเวอร์ของตัวเอง ส่วนระบบ production ควรรันบนเซิร์ฟเวอร์จริงหลัง reverse proxy ที่มี TLS