Skip to main content

Askboon

Tunnelling Services

Tunnelling Services เป็นบริการแบบหนึ่งซึ่งจะใช้ Tunnelling Protocol ในการทำให้เราสามารถ run web application ใดๆจากเครื่องคอมพิวเตอร์ของเราที่เป็น localhost ให้กับผู้ใช้งานบนอินเทอร์เน็ตทั่วไปเข้าถึงได้

Tunnelling Services ใช้ทำอะไร

ปกติเวลาที่เราพัฒนา Web Application ในเครื่องของเรานั้น เราก็จะสามารถเรียกดูได้แค่จากเครื่องของเราเท่านั้น ซึ่งส่วนใหญ่ก็จะเรียกด้วย locahost หรือ 127.0.0.1 แล้วตามด้วย port ต่างๆ แล้วแต่ว่าค่า default ของ port สำหรับเครื่องมือพัฒนาของเราว่าใช้เป็นค่าอะไร เช่น python/flask ใช้ localhost:5000 หรือ Hugo ใช้ localhost:1313 เป็นต้น ซึ่งปกติ web application ในเครื่องของเราจะไม่สามารถใช้งานจากอินเทอร์เน็ตได้ แต่ Tunnelling Protocol จะทำการเปิดช่องทางพิเศษในระบบเครือข่ายคอมพิวเตอร์เพื่อทำการส่งข้อมูลจากเครื่องของเราไปสู่อินเทอร์เน็ต ทำให้คนใช้งานจากอินเทอร์เน็ตสามารถมองเห็น application ต่างๆในเครื่องของเราได้ ซึ่งการใช้งานที่เห็นบ่อยๆก็มักจะเป็นการเปิดการทดสอบโปรแกรมที่เป็น web application ของเราให้คนอื่นทดสอบใช้งานจากอินเทอร์เน็ตได้นั่นเอง

บริการ Tunnelling Services ที่ว่านี้มีให้ใช้อยู่ในอินเทอร์เน็ต ซึ่งมีทั้งแบบเสียเงิน และฟรี ซึ่งบริการฟรีนั้นก็สามารถใช้งานได้ในระดับหนึ่ง แต่บางครั้งก็พบว่าบริการฟรีก็อาจจะหยุดทำงานเป็นช่วงๆได้ เราอาจจะต้องเลี่ยงไปใช้บริการทำนองเดียวกันของที่อื่นบ้าง แต่โดยทั่วไปก็สามารถตอบโจทย์ในการเปิด application จาก localhost ของเราให้คนอื่นทดลองใช้งานได้โดยไม่ต้องมีค่าใช้จ่ายเพิ่ม

Free Tunnelling Services

  1. ngrok ( https://ngrok.com/ )
  2. Serveo ( https://serveo.net/)
  3. Localtunnel ( https://localtunnel.github.io/www )
  4. localhost.run ( http://localhost.run/ )

ตัวอย่างการใช้งาน localhost.run

  1. สั่ง run web application บน localhost ของคุณ เช่น หาก run flask application ค่า default มักจะเป็น http://127.0.0.1:5000
  2. จากนั้น ให้เปิดโปรแกรม terminal (macOS) แล้วพิมพ์ “ssh -R 80:localhost:5000 ssh.localhost.run”
  3. โปรแกรมจะสุ่มสร้าง url ให้เราสามารถเข้าถึง localhost ของเราให้โดยอัตโนมัติ ทั้งแบบ http และ https

เพียงเท่านี้ คุณก็สามารถเปิด web application บน localhost ให้กับคนอื่นในอินเทอร์เน็ตได้เรียกใช้ได้แล้ว มันมีมุมเรื่องความปลอดภัย (Information Security) ที่ต้องคำนึงถึงด้วย ไว้มาเล่าในโพสต์ถัดๆไป