Ngrok expose localhost to internet


Ngrok ทำให้ใครก็ได้ ก็สามารถเข้าใช้งาน website หรือ application ที่กำลังทำงานอยู่บนเครื่อง localhost ได้โดยเข้าถึงได้จาก online หรือก็คือทำ localhost ให้เป็น public ip ได้
เนื้อหา
Ngrok คืออะไร
ngrok คือเครื่องมือตัวนึงที่ช่วยให้เรานำ web หรือ application ของเราสามารถเข้าถึงได้ผ่าน internet และมันทำง่ายมาก
ในตอนที่เราเขียนโปรแกรม เราจะเขียนในเครื่องของตัวเอง(localhost) คนที่สามารถเข้าถึงก็มีแค่ใน network เดียวกัน เช่น เครื่องเรา ip 192.168.1.2 แล้วเราเขียนโปรแกรมขึ้นมาโดยใช้ localhost:3000 ถ้าเครื่องอื่นที่อยู่ใน network เดียวกันจะเข้ามาก็สามารถเข้าผ่าน ip 192.168.1.2:3000 ได้
network เดียวกันในที่นี้หมายถึงใช้ wifi ตัวเดียวกันหรือในเครือข่าย lan เดียวกัน ถ้าอยู่ใน network เดียวกันก็สามารถเชื่อมต่อถึงกันได้ ประมาณว่าเล่นเกมในวง lan เดียวกัน
ทีนี้ปัญหาก็คือ มันเข้าได้แค่ใน lan ไงถ้าอยู่คนละสถานที่กันก็ดูไม่ได้ละเพราะอยู่คนละ network ทีนี้ถ้าเราอยากจะให้คนอื่นเข้ามาดู web ของเราได้จาก internet เราสามารถใช้ ngrok มาช่วยได้โดยที่ทาง Ngrok จะทำการสุ่มสร้าง URL ขึ้นมาให้เราใช้เป็นตัวแทนของ 192.168.1.2:3000 และ URL นี้จะเปลี่ยนไปทุกครั้งเมื่อมีการปิดหรือเปิดใช้งาน Ngrok
ติดตั้ง
ไปโหลดได้ที่ https://ngrok.com/download ใช้ได้ทั้งใน Mac OS, Windowns, Linux, Docker
ตั้งค่า
หลังจากติดตั้งแล้วก็ตั้งค่า ngrok
ngrok config add-authtoken <token>
token ต้องลงทะเบียน(Sign up) กับทางเว็บ ngrok ก่อนแล้ว เข้าสู่ระบบ(Login) จะแสดง token ทางหน้าเว็บ
ใช้งานด้วยคำสั่ง
ngrok http 3000
เราเอาตรง Forwarding c689-1-46-27-30.ap.ngrok.io ไปเปิดใน browser ได้เลย จะเหมือนกับเราเปิด localhost:3000
3000 คือ port ของ web เราที่ run ใน localhost:3000
พอมีการใช้ ngrok เขามี traffic บอกเราด้วย