VirtualBox SSH from Host to Guest OS (Linux)

สวัสดีครับ วันนี้ผมจะพูดถึง โปรแกรม VM ตัวนึงบน OS X หลังจากที่ผมลง Mountain Lion
ไปแบบ clean ก็ต้องมาลงโปรแกรมกันใหม่ ทั้งหมด VirtualBox นับว่าเป็นโปรแกรมตัวนึง
ที่ใช้ทำ VM ได้ดีมาก หลากหลาย และที่สำคัญคือฟรีด้วยครับ ..

หลายๆ คนมักเจอปัญหาว่า ว่าไม่สามารถ set ค่า Network แบบ Bridge ได้ เพราะว่า
ในวง Network ไม่สามารถรับ DHCP ได้หลาย IP หรือติดปัญหาเรื่อง การ Authen ต่างๆ
การทำ NAT กระหว่าง Host OS กับ Guest OS จึงเป็นทางเลือกที่ดี เพราะว่า Guest OS
เองจะได้ออก internet ได้ด้วย ทำให้ทำงานได้สะดวกขึ้น แต่คราวนี้ ค่า default ของตัว
NAT บน VirtualBox เองไม่ได้ทำให้ Host OS ที่แจก IP ไปให้ Guest OS ในวง 10
เช่น Host OS IP= 10.0.2.2, Guest OS IP=10.0.2.15 สามารถเข้าไปที่ Guest OS
โดยตรงได้ ซึ่งอันนี้ ผมก็ไม่แน่ใจเหมือนกัน ว่าจริงๆ มันมีวิธีทำได้ หรือวิธีอื่นๆ ที่ดีกว่า
นี้เหรือเปล่า เพราะถ้าเลือกเพิ่มอีก Adapter นึง แล้วเลือก Host-only Adapter ก็น่าจะได้
แต่วิธีนี้ อาจจะต้อง set static IP ระหว่าง Host และ Guest กันเอง ..

วันนี้ ผมจะมาพูดถึง Port Forwarding บน VirtualBox กันครับ การทำง่ายๆ มาก
แค่เข้าไปคลิก add rule เพิ่มเข้ามาใหม่ อย่างกรณีนี้ ผมใช้คำสั่ง ifconfig -a
เพื่อนจะดูว่า Guest OS ผมได้แจก IP อะไรมา จะได้เอามาสร้าง rule ได้ถูกต้อง


ผมก็จะได้ IP 10.0.2.15 มา ต่อจากนั้น ผมก็จะทำการ add rule เกี่ยวกับ Port Forwarding เข้าไป


จากรูปผมเลือ Protocol=TCP, Host IP=127.0.0.1, Host Port=2222 ส่วน Guest IP ก็คือ IP ที่
Guest OS ได้จากการ NAT และ Guest Port ก็คือ ssh port 22 ที่เราต้องการ

จากนั้นที่เครื่อง Host OS ผมเป็น Terminal ขึ้นมา แล้วทำการ ssh ด้วยคำสั่งต่อไปนี้
ssh 127.0.0.1 -p 2222 -l ton
เท่านี้ ผมก็จะสามารถติดต่อกับเครื่อง Guest OS ที่เป็น Linux Debian ใน VirtualBox ได้แล้ว


ผมเองก็ไม่ได้เชี่ยวชาญอะไรเกี่ยวกับพวก VM แต่ใช้จำลองการทำงานต่างๆ บ้าง เป็นครั้งคราว
แต่ถ้าเพื่อนๆ มีปัญหาอะไร สามารถแลกเปลี่ยนความรู้กันได้ครับ 🙂