Wednesday, March 5, 2014

How to Forward Ports to a Virtual Machine and Use It as a Server

  • ประเด็นมีอยู่ว่า มี server อยู่ 1 ตัว เป็น debian 6 อืม
  • อยากใช้ sql server 2005 มันลงบน debian ไม่ได้หว่า สอบถามเจ้าหน้าที่ ที่ทำงานเกี่ยวกับเรื่องนี้โดยตรง เค้าบอกว่า ยังไงมันก็ลงไม่ได้เนื่องจาก มันทำมาสำหรับ windows platform
  • ทำไงล่ะทีนี้ อืมงั้นก็ลงมัน บน Windows แล้วรัน Windows แบบ VM แล้วกันโดยใช้ VBox เป็นตัวช่วย และ forward port น่าจะได้ เพราะ นานแหละ เคยเห็นว่ามันทำได้ แต่เสียเวลา ตั้งค่านานหน่อย
  • คำเตือน คิดว่าเครื่อง server เรา cpu แรงพอประมาณ ram เยอะหน่อย อย่างน้อง 8 GB น่าจะรันไหวนะ VM เนี๋ย
Solved
  • สเตปแรกคือ เราจะต้องติดตั้ง Virtualbox สำหรับ Linux เราก่อนเลือกตัวติดตั้งของ vbox ให้ตรงรุ่นกับ OS เรา 32 bit หรือ 64 bit ก็เลือกให้มันเข้ากันนะครับ
  • จะโหลดด้วยวิธีใดก็แล้วแต่สะดวก CLI หรือ GUI แล้วแต่ท่าน
  • เพิ่มเติม การติดตั้งและรัน VBox บน Linux ถ้าเรา remote ด้วย VNC ได้ จะทำการติดตั้งและรันได้ง่ายมากเลย
  • แต่ถ้าติดปัญหาเรื่อง security ก็ไปใช้ Remote VNC via SSH Tunelling ก็ทำได้เช่นกัน
  • สเตปต่อมาคือ ติดตั้ง Guest OS ให้เรียบร้อย ให้แรมเยอะๆ หน่อยน่าจะเข้าท่า
  • จากนั้น ตั้งค่าของ Guest OS ซะหน่อยโดยคลิกขวาที่ Guest OS ไปที่ Settings
  • เลือกไปที่ Network โดยที่ Attached to: ให้เลือกเป็น NAT 
  • และขยาย Advanced ออกจะพบปุ่ม Port Forwarding คลิกมันซะ
  • ตัวอย่าง
  • Name => SQL Server 
  • Protocol => TCP 
  • Host Port => 1433
  • Guest Port => 1433
  • Host IP และ Guest IP => ไม่ใส่ก็ได้
  • คลิกที่ OK ซะ เป็นอันเสร็จพิธี
  • จากนั้นเราก็รัน Guest OS เรา และ Remote SQL Server เข้ามาโดยใส่ domain name หรือ ip ได้เลย
  • สุดท้าย ถ้าทำแล้ว Remote ไม่ได้ โปรดตรวจสอบ Firewall บน เครื่อง Host และ Guest ทั้งสองเครื่องเลย
  • หรือ ถ้ามี anti malware ก็ตรวจสอบ firewall ของตัวนี้ด้วยเผื่อมี
  • เพียงเท่านี้ Linux Server ก็จะรัน SQL Server ได้แล้ว และมันยังรัน ASP , ASP.NET ได้อีกด้วยนะ
เพิ่มเติม
  • การทำ forward port ด้วย vbox เห็นในอ้างอิงที่ stackoverflow เค้าบอกว่า
  • a linux/unix OS won't let a process listen on ports < 1024 unless they're run as root. You could run VirtualBox as root
  • เครื่องเราไม่เข้าข่ายหว่า ถึง Host เราจะเป็น Debian แต่เราจะใช้ 1433 มัน ไม่เข้าเงื่อนไข < 1024 
  • ลอง forward จาก 81 ไป 1433 ทั้งที่รัน vbox แบบ root กับไม่ใช่ root มันก็ remote ไม่ได้เลยหว่า อืมงั้นแนะนำ ใช้ service ใหน ควรใช้หมายเลขพอร์ต ให้ตรงกันระหว่าง Host และ Guest แต่ใน อ้างอิง เค้า ใช้หมายเลขพอร์ตต่างกันได้ แต่หมายเลข ใกล้ well know port มากอยู่นะ
อ้างอิง
  • http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/
  • https://blogs.oracle.com/johngraves/entry/virtualbox_port_forward
  • http://stackoverflow.com/questions/11388657/port-forwarding-from-host-port-80-to-virtualbox-port-80-doesnt-work

No comments:

Post a Comment

Popular Posts