สวัสดีชาว Developer ทุกคน ช่วงนี้เดือนมีนาคม 2563 มีการระบาดของเชื้อ Covid-19 ทำให้บริษัท Tech Company ต่างๆได้มีการปรับเปลี่ยนให้พนักงานทำงานที่บ้าน ซึ่งในหลายบริษัทมีการ setup software ให้มีการแยก Environment ต่างๆ เช่น Dev, Staging, UAT, Prod และมีการใช้งาน CI/CD ในรูปแบบที่เป็น local network ที่เข้าถึงได้เฉพาะเครื่องที่อยู่ในวงแลนของบริษัทเท่านั้น ทำให้เมื่อต้องทำงานที่บ้านจะพบปัญหาไม่สามารถนำไปทดสอบใน Environment ที่ได้ setup ไว้ได้ ซึ่งทำให้บริษัทต้องเสียงบไปเปิด cloud เพื่อ setup environment ไว้สำหรับทดสอบเพิ่มอีก ซึ่งอาจจะมีปัญหาในเรื่อง security เพิ่มเข้าให้ดูแลอีก
วันนี้ผมจึงขอเสนอทางเลือกหนึ่ง คือ การทำให้เครื่องที่บ้านเชื่อมต่อกับ network ของบริษัทเสมือนว่านั่งทำงานบนเครื่องที่บริษัทด้วย OpenVPN และที่สำคัญคือ ฟรี!!!!
สิ่งที่ต้องมี
- Docker
- Ubuntu หรือ OS อะไรก็ได้ที่ลง Docker ได้
- DDNS
- Router
เนื่องด้วยมีเวลาในการเตรียมการ setup OpenVPN Server ที่จำกัด จึงเลือกใช้ OpenVPN Server docker image เพื่อประหยัดเวลาในการ setup
ติดตั้ง OpenVPN Server ขั้นตอนดังนี้
- เครื่องสำหรับ OpenVPN Serverในรอบนี้ผมเลือก OS Ubuntu เพราะว่ามีอยู่แล้ว จากนั้นทำการ fix static ip ให้กับเครื่องเพื่อป้องกัน ip เปลี่ยน
- สมัคร DNS Host (A) ที่ noip ฟรี ใช้สำหรับทำ DDNS ให้กับ OpenVPN Server
- ตั้งค่า DDNS router ให้อัพเดท ip ที่ไปที่ noip
อ่านที่นี่เพิ่มเติม https://swiftlet.co.th/ddns-setting-on-router/ - forward port router ที่ไป ip เครื่องที่จะใช้รัน OpenVPN Server ไปที่ port 1194
- ติดตั้ง Docker ดูขั้นตอนจาก https://docs.docker.com/install/
- รันคำสั่งที่ terminal เพื่อเตรียม volume สำหรับเก็บ passphase และ key
- จากนั้นจะได้ file .ovpn มาเป็นอันเสร็จสิ้น
มาทดสอบด้วยการ OpenVPN Client
วิธีใช้งานจริงจะใช้ OpenVPN Client เชื่อมต่อไปที่ OpenVPN Server ที่ได้ setup ไว้
https://openvpn.net/vpn-client/
- Connect OpenVPN สำหรับ Ubuntu/Linux จากนั้นรอสักครู่ (ส่วน Mac กับ Windows กด import file ovpn ผ่าน GUI ได้เลย)
openvpn3 session-start --config ${MY_CONFIGURATION_FILE}
เพียงเท่านี้ก็จะทำให้เครื่องที่บ้านนั้นเสมือนว่าต่อสายแลนที่บริษัทเป็นอันเสร็จสิ้น
บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน ตามความต้องการ!
เราเป็นผู้นำในด้านการให้บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน และโซลูชันด้านไอที แบบครบวงจร (Full-stack) ตั้งแต่การให้คำปรึกษาไปจนถึงการ Maintenace ระบบ เรามีความตั้งใจที่จะเปลี่ยนให้ นวัตกรรม และไอเดีย ระดับโลกของคุณให้กลายเป็นซอฟต์แวร์ที่มีคุณภาพ โดยที่บริษัทรับพัฒนาซอฟต์แวร์ เขียนโปรแกรม และ แอปพลิเคชัน ตามความต้องการทางธุรกิจคุณได้ ทุกรูปแบบ ทุกประเภท ทุกความต้องการทางธุรกิจ หากคุณมีไอเดียดีๆ ที่ต้องการพัฒนา Software หรือ พัฒนา Application สามารถปรึกษาเราได้ที่นี่!