เรียกใช้ VirtualBox ในพื้นหลังโดยไม่มีหน้าต่างหรือไม่


106

ฉันสงสัยว่ามันเป็นไปได้ที่จะเรียกใช้เครื่องเสมือน Ubuntu โดยใช้ VirtualBox เป็นพื้นหลังฉันหมายความว่าไม่มีหน้าต่างใดเปิดอยู่

แนวคิดคือการเชื่อมต่อผ่าน SSH ไปยังโฮสต์ Linux ที่จะทำงานในพื้นหลัง

มีใครเคยทำอะไรแบบนี้บ้างไหม? เป็นไปได้ไหม?


คุณหมายถึงเชื่อมต่อผ่าน SSH กับแขกของ linux หรือไม่ คุณสามารถทำได้อย่างง่ายดายด้วย QEMU ซึ่งจริง ๆ แล้วจะเรียกใช้แขกใน terminal ของคุณ
เฟลิกซ์

ดังนั้นคุณอาจสนใจการกำหนดค่า SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
เปิดทิ้งไว้เนื่องจากคำถามนี้ถือว่าดีกว่าเหมือนต้นฉบับ ให้คะแนนว่าจะปิดเหมือนซ้ำกับคำถามอื่น
bwDraco

เห็นด้วยอย่างสมบูรณ์กับ @DragonLord - คลิกที่นี่เพื่อไปที่คำถามอื่น ๆ และปิดเป็นคู่หูของคำถามนี้
Raystafarian

คำตอบ:


92

VBoxManage startvm $VM --type headless จะเริ่มเครื่องเสมือนที่ระบุในพื้นหลัง

หากต้องการปิดเครื่องขอให้ปิดเครื่องจากแขก


คุณจะสามารถ SSH ลงในเครื่องได้หากคุณตั้งค่าเครือข่ายอย่างถูกต้อง ฉันคิดว่าคุณต้องใช้ bridged เพื่อให้ VM และเครื่องของคุณอยู่ในเครือข่ายเดียวกัน นอกจากนี้ VirtualBox จะยังคงรัน gui ของระบบปฏิบัติการเป้าหมายและคุณสามารถเชื่อมต่อผ่านเดสก์ท็อประยะไกล "rdesktop" (รับจาก apt ตั้งแต่คุณอยู่ใน Ubuntu)
basszero

1
จริง ฉันคิดว่า VM จะทำงานโดยปกติผ่าน VirtualBox GUI ก่อนที่จะติดตั้งและกำหนดค่า ใช้ VBoxManage เฉพาะเมื่อทุกอย่าง (รวมถึงเครือข่าย) ใช้งานได้
developmentalinsanity

สำหรับซอฟต์แวร์ VM อื่น ๆ ฉันสามารถปิดหน้าต่างเพื่อไม่ให้เปิดตลอดเวลาและให้มันทำงานต่อไปในพื้นหลัง แต่เปิดหน้าต่างเมื่อฉันต้องการที่จะเชื่อมต่อกับมัน นี่คือสิ่งนี้หรือไม่?
JFA

ตรวจสอบให้แน่ใจว่าได้ ssh กับเครื่องที่ไม่มี -X หรือ -Y เนื่องจากดูเหมือนว่าจะทำให้คำสั่งดังกล่าวแนบกระบวนการกับเชลล์ดังนั้นหากคุณออกจาก VM จะยกเลิก
อริตซ์

63

สิ่งนี้ถูกสร้างขึ้นใน VirtualBox 4.2

เพียงกด Shift ค้างไว้เมื่อเรียกใช้ VM จากผู้จัดการ

https://blogs.oracle.com/fatbloke/entry/what_s_new_in_oracle


1
ปรับปรุง: ใน VirtualBox 5.1 คุณยังมีเมนูเริ่มต้นแบบเลื่อนลงด้านขวาของปุ่มเริ่มต้นในผู้จัดการ เมนูนี้จะใช้ได้เฉพาะเมื่อหยุด VM
Titou

23

แน่นอน! คุณกำลังมองหาการติดตั้งที่ไม่มีหัว (Virtualbox) วิธีเริ่มเครื่องจากบรรทัดคำสั่งมีลักษณะดังนี้:

VBoxHeadless --startvm Debian --vrdp=off

อย่างไรก็ตามคุณจะต้องมีวิธีการเชื่อมต่อ สิ่งที่ฉันทำคือการจับคู่พอร์ตระหว่างแขกกับโฮสต์ ด้วยการกำหนดค่านี้พอร์ตโฮสต์ 2222 ของคุณจะถูกแมปกับพอร์ต 22 ของเครื่องแขกของคุณ

VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222  

หลังจากนั้นคุณสามารถเข้าสู่ระบบด้วย:

ssh localhost -p2222

VM ต้องฟังการเชื่อมต่อ ssh ใช่ไหม มันอาจจะคุ้มค่าที่จะทำให้เรื่องนี้ชัดเจน
Matheus Santana

3

ทางเลือกที่จะVBoxManage startvm "{VMName}" --type headlessเป็น
VBoxHeadless -startvm "{VMName}"

พอเพียงฉันคิดหาวิธีการเรียกใช้หัวขาด VM มากกว่า RDP

หมายเหตุ - อย่างน้อยใน windows มันจะบล็อกหน้าต่างคำสั่งของคุณ หากคุณต้องการใช้หน้าต่างคอนโซลของคุณต่อให้เปิดอีกครั้งเพื่อเริ่ม VM ใน

ในการปิด VM ลงคุณร้องขอ Guest OS ให้ปิดระบบ VBoxHeadlessปล่อยคอนโซลเมื่อแขกปิดการทำงานอย่างสมบูรณ์ (คุณสามารถCtrl+Cแต่ฉันคิดว่ามันอาจจะเป็นแบบอะนาล็อกกับการรีเซ็ตฮาร์ดบนเครื่องจริง)


ความจริงที่ว่า vboxheadless บล็อกคอนโซลอย่างมากเอาชนะวัตถุประสงค์ของโหมดหัวขาด บน Mac OS X (และสันนิษฐานว่าบน Linux และ Solaris) โหมด headless จะทำงานเมื่อคุณส่ง vboxheadless ไปที่พื้นหลังโดยใช้ &
Andrew J. Brehm

ฉันคิดว่ามีวิธีการทำเช่นนั้นบน windows ฉันไม่พบมัน ในกรณีใด ๆ หัวขาด vm ใช้ทรัพยากรบนคอมพิวเตอร์เซิร์ฟเวอร์น้อยกว่าหนึ่งเซิร์ฟเวอร์ที่ใช้ GUI อย่างเต็มรูปแบบ
ชื่อปลอม

2

ฉันใช้ VBoxTool จากhttp://vboxtool.sourceforge.net/และมันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน สามารถเริ่มต้น VM อัตโนมัติเมื่อบูตและหยุด / บันทึก VM เมื่อปิดเครื่องและมีอินเตอร์เฟสบรรทัดคำสั่งที่เรียบง่าย


2

ฉันไม่คิดว่าโหมดไร้รอยต่อเป็นสิ่งที่เขากำลังมองหาที่นี่ฉันคิดว่าสิ่งที่เหมาะสมจะเป็น VBox โดยที่คุณสามารถหารายละเอียดในคู่มือได้ มันรันโดยใช้อินเตอร์เฟส command-lin และจะใช้ตัวอย่างเช่นหากเครื่องเสมือนกำลังทำงานบนเซิร์ฟเวอร์ แต่ไม่ต้องการจอแสดงผลจากเซิร์ฟเวอร์ คุณจะสามารถเดสก์ท็อประยะไกลไปยังเครื่อง (ให้คุณทราบวิธีการตั้งค่าตัวเลือกผ่านทางบรรทัดคำสั่ง)

ฉันขอแนะนำอีกครั้งในฟอรัมเสมือน จริงๆแล้วทำการค้นหาก่อนตามที่ฉันคาดหวังว่าสิ่งนี้จะถูกถาม


VBoxManage เป็นสิ่งที่ถูกต้องขออภัย เชื่อมโยงข้อมูลในคู่มือhttp://www.virtualbox.org/manual/ch08.html


2

ในการเริ่มต้นในโหมดหัวขาดโดยใช้ GUI:

กดปุ่ม Shift ค้างไว้เมื่อเริ่มต้น VM

หลังจากนั้นคุณจะสามารถเชื่อมต่อและยกเลิกการเชื่อมต่อจาก GUI (โดยใช้การแสดงและเครื่อง ->ตัวเลือกแยกส่วน GUI )


1

ฉันพบว่าโหมดหัวขาดดูเหมือนว่าจะทำงานได้ดีเมื่อแบ็คกราวน์ใน Linux (CentOS 5.6) แต่คุณสูญเสียการเข้าถึงฟังก์ชั่น RDP ตราบใดที่กระบวนการมีพื้นหลัง ทำ 'fg' เพื่อนำกระบวนการกลับสู่เบื้องหน้าและฟังก์ชันการทำงานของ RDP จะถูกกู้คืน ดูเหมือนว่าการเริ่มต้น vm headless ทำได้ดีที่สุดผ่านสคริปต์ init ซึ่งไม่จำเป็นต้องมีการโต้ตอบกับคอนโซล


1

คุณสามารถใช้VBoxHeadlessหรือ (และฉันสงสัยว่าทำไมไม่มีใครพูดถึงเรื่องนี้ก่อนฉัน) คุณสามารถเลือกหนึ่งในตัวเลือกการเริ่มต้นใช้งานซึ่งจะเรียกใช้ VM โดยไม่มี GUI

รอการเลื่อนแล้วเริ่มเครื่องหรือคลิกขวาที่เครื่องแล้วค้นหาบางอย่างเช่น "Run without output" ภายใต้หัวข้อ "Run"


0

ฉันได้เพิ่มบรรทัดเหล่านี้ใน. bashrc ของฉัน:

VM='anakim'
alias vm='VBoxManage startvm $VM --type headless'
alias sshvm='ssh -p2222 localhost'

สำหรับการเข้าถึง ssh คุณไม่จำเป็นต้องเปลี่ยนการตั้งค่าเพียงแค่เก็บ NAT และคุณสามารถตั้งค่าตารางการส่งต่อพอร์ตดังต่อไปนี้:

Name      | Protocol | Host Port | Guest Port
guestssh  | TCP      | 2222      | 22
localhost | TCP      | 8080      | 80

เมื่อคุณแทรก localhost: 8080 ลงในเบราว์เซอร์ของเครื่องหน้าจาก VM (บนพอร์ต 80) จะเปิดขึ้น


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.