Ngrok ทำเครื่องเรา online ได้โครตง่าย ฟรีด้วย

DevOps Aug 02, 2019

เคยหรือไม่ที่พอเราเขียนโปรแกรมสักตัวในเครื่องแล้วอยากให้มันออนไลท์เลยเพื่อให้คนอื่นได้เข้ามาทดสอบ เช่น เขียน API อยู่ในเครื่อง แล้วอยากให้เพื่อนเราที่ทำหน้าเว็บต่อกับ API เราได้เลย โดยไม่ต้องรอ deploy ขึ้น server จริง

ปัญหาแบบนี้เกิดบ่อยมากในทีมผม ซึ่งในปกติเวลาน้องทำแอพพลิเคชั่น หรือฟังชั่นขึ้นมาสักตัว เพื่อให้น้องอีกคนที่ทำหน้าบ้านทดสอบเชื่อมระบบ พวกน้องก็ต้องให้ผมค่อยทำระบบ deploy ขึ้น server จริงให้ ผมว่ามันจะเสียเวลาที่ต้องรอผมทำให้

Ngrok คืออะไร

เป็นเครื่องมือที่ทำให้แอพพลิเคชั่นที่เราพัฒนาอยู่ในเครื่องสามารถ online ได้นั่นเอง

Ngrok diagram

ดาวโหลด Ngrok

สามารถโหลดได้ที่ https://ngrok.com/download สำหรับคนที่ใช้ Linux หรือ MacOSX เราจะได้ไฟล์ .zip ให้ทำการแตกไฟล์ไว้ที่ไหนก็ได้ เพื่อเรียกใช้งาน ยกตัวอย่างของผมใช้ Linux ก็จะวางไว้ ~/Download/

วิธีใช้งาน

ผมมีแอพพลิเคชั่นที่ทำด้วย Nodejs แล้วเรียกใช้งานดังนี้

$ node index.js 
Example app listening at http://:::8081
$  curl http://localhost:8081
Twin Synergy

ผมลองทดสอบด้วย curl มาที่ http://localhost:8081 จะได้คำว่า Twin synergy ออกมา คราวนี้ผมอยากให้แอพพลิเคชั่นตัวนี้ผม online เพื่อให้คนอื่นเรียกใช้งาน ก็ให้ใช้คำสั่ง

$ cd ~/Download/
$ chmod +x ngrok
$ ./ngrok http 8081
  • chmod +x คือการเพิ่มสิทธิ์ให้เราสามารถเรียกใช้งาน ngrok ได้ สั่งครั้งแรกครั้งเดียวพอ ครั้งต่อไปสามารถเรียกใช้งาน ngrok ได้เลย
  • ./ngrok เรียกใช้งาน ngrok
  • http 8081 เป็นการเชื่อมโย่งให้ http port 8081 บนเครื่องเราส่งออกไปเป็น url จริง

หลังจากเรียกแล้วจะแสดงผลแบบนี้

ngrok by @inconshreveable                                                                                                                                                                      
                                                                                                                                                                                                               
Session Status                online                                                                                                                                                                           
Session Expires               7 hours, 55 minutes                                                                                                                                                              
Update                        update available (version 2.3.34, Ctrl-U to update)                                                                                                                              
Version                       2.2.8                                                                                                                                                                            
Region                        United States (us)                                                                                                                                                               
Web Interface                 http://127.0.0.1:4040                                                                                                                                                            
Forwarding                    http://20fd198d.ngrok.io -> localhost:8081                                                                                                                                       
Forwarding                    https://20fd198d.ngrok.io -> localhost:8081                                                                                                                                      
                                                                                                                                                                                                               
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                                      
                              0       0       0.00    0.00    0.00    0.00 

เราจะได้ url ทั้งที่เป็น http กับ https มาสามารถเรียกใช้งานได้เลย!!!

ngrok online

เราก็เอา url ไปให้คนที่ต้องการให้ทดสอบได้เลย...

Arnon Kijlerdphon

IT manager & DevOps @Twin Synergy Co.,Ltd

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.