แต่ปัญหาคือมันยอมให้ traffic request ออกด้านนอกได้ แต่มันไม่ยอมให้ traffic request จากด้านนอกเข้ามานี่สิ (คือยอมให้เราเข้าเวบด้านนอกได้ แต่ถ้าเราอยากจะ access ไปที่ web server ที่เราตั้งเอาไว้ใน guest จะยังทำไม่ได้)
วิธีแก้อย่างง่ายๆ คือ ใช้ VBoxManage ในการทำ Port Forwarding ของเครื่อง Host เพื่อไปยังเครื่อง Guest
เริ่มจาก ปิดตัว VirtualBox ซะก่อน (จะแค่สั่ง pause แล้ว save state ก็ได้)
ในเครื่อง Host เข้า Command Line (Cmd)
ถ้าไ่ม่ได้ตั้งค่า path ของ VirtualBox ให้ cd ไปที่ VirtualBox ที่เราลงไว้ เช่น C:\Program Files\innotek VirtualBox
แ้ล้วสั่งคำสั่งต่อไปนี้
1. ตั้งว่าจะใช้โปรโตคอลอะไร
VBoxManage setextradata "yourguestosname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP
2. ตั้งว่าจะให้ไปเข้า Port อะไรของเครื่อง Guest
VBoxManage setextradata "yourguestosname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
3. ตั้งว่าจะใช้ port อะไรของเครื่อง Host
VBoxManage setextradata "yourguestosname" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 8888
โดย yourguestosname ให้แทนด้วยชื่อ Guest OS ที่ได้ตั้งเอาไว้ เช่นของผมตั้งไว้ว่า GUESTWIN
ส่วนคำว่า http ก็สามารถแทนด้วยชื่อ application อื่นๆที่ต้องการ เช่น ftp
แล้วก็หมายเลขก็ตาม app ที่เราให้บริการ
พอเซตค่าเสร็จก็เปิดให้ VirtualBox ทำงานก็จะพร้อมทำงานได้
จากตัวอย่างคือผมจะเข้า web server ของเครื่ือง Guest ที่เปิด port 80 เอาไว้ โดยสามารถพิมพ์ URL ใน browser ของเครื่อง host คือ http://localhost:8888/index.html เป็นต้น
ระบบที่ผมใช้ทดลอง
Host: Windows XP SP2
Guest: Windows Server 2003 SP2
VirtualBox: Version 1.5.6
2 ความคิดเห็น:
พี่คับ รบกวนถามหน่อยคับ คือผม set network เป็น Bridged adapter,MAC Bridge Miniport เวลาทดลอง ping จากเครื่องหลักไปยัง virtualbox มันต้องพิม ping hostname ดอท อะไรแล้วอ่าคับ
ผมว่าถ้าจะให้ง่ายกว่านั้นแค่ตั้งค่า network เป็น Bridged adapter ก็จบแล้วละครับผลที่ได้เหมือนกันเลยไม่ยุ่งยากด้วย
แสดงความคิดเห็น