VirtualBox VirtualBox VM เครือข่ายหัวขาด


1

ฉันมีเซิร์ฟเวอร์ Linux ระยะไกลสามารถเข้าถึงได้ผ่าน SSH เท่านั้น

เป้าหมายของฉันคือการโฮสต์เครื่องเสมือนหลายเครื่องบนเซิร์ฟเวอร์โฮสต์นี้โดยใช้ VirtualBox เซิร์ฟเวอร์โฮสต์มี 1 ที่อยู่ IP ดังนั้น NAT จะถูกใช้เพื่อกำหนดเส้นทางไปยัง VM เช่น 10022 จะส่งต่อไปยังเซิร์ฟเวอร์ 1: 22 และ 20022 จะส่งต่อไปยังเซิร์ฟเวอร์ 2: 22

ฉันได้ติดตั้ง VirtualBox และคัดลอก CentOS VM ที่กำหนดค่าล่วงหน้าไปยังเซิร์ฟเวอร์โฮสต์แล้ว

ฉันเริ่มต้น VM แต่ไม่สามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ได้เช่น ssh -p 10022 127.0.0.1 หมดเวลา

ฉันลองมาหลายอย่างแล้ว:

วิธีที่ 1: คัดลอก. vdi ที่มีอยู่ซึ่งเชื่อมต่อกับ VM ใหม่
วิธีที่ 2: นำเข้า. Oma VM (คิดว่าจะช่วยแก้ปัญหาการเริ่มต้นใหม่ของ MAC ได้หรือไม่)

ประเภทเครือข่าย NAT ลอง natnet1 192.168 / 16 และ 10.0 / 16
VBoxManage modifyvm "hermes.awoms.com" --natnet1 "192.168/16"

พอร์ตการส่งต่อที่มีและไม่มีการระบุ VM ip ในคำสั่ง modifiedvm --natpf1
VBoxManage modifyvm "hermes" --natpf1 "guestssh,tcp,,10022,,,22"
VBoxManage modifyvm "hermes" --natpf1 "guestssh,tcp,,10022,192.168.0.15,22"

ฉันไม่สามารถดูว่า VM กำลังบูทหรือไม่ VBoxHeadless "hermes" --start & ทำงานโดยไม่มีข้อผิดพลาด) ฉันไม่สามารถบอกได้ว่า VM กำลังรับที่อยู่ IP หรือไม่

มีอะไรอีกบ้างที่ฉันสามารถทำได้เพื่อรับข้อมูลเพิ่มเติมจาก VirtualBox หรือ VM เริ่มต้นขึ้นเมื่อการเข้าถึงเดียวที่ฉันมีคือ SSH


คุณกรุณาตรวจสอบ: 1 หากกระบวนการของ VM แสดงกิจกรรมบางอย่างในระหว่างการบูต --- 2 หากเซิร์ฟเวอร์ DHCP เช่าที่อยู่ IP ฉันเดาว่าคุณหมายถึงสัญญาเช่า DHCP ค่ะ ฉันไม่สามารถบอกได้ว่า VM กำลังรับที่อยู่ IP หรือไม่ --- 3 ลองเข้าถึงที่อยู่ IP ที่เช่าโดยตรง (โดยไม่ใช้ NAT) --- 4 เปิดใช้งานคอนโซลอนุกรมในเกสต์และลองเชื่อมต่อผ่านพอร์ตอนุกรมเสมือน
pabouk

คำตอบ:


1

มันควรจะได้ผล

VM ของคุณอาจไม่สามารถบูตให้เสร็จสมบูรณ์หรือมีการกำหนดค่าเครือข่าย eth0 ที่ไม่ถูกต้อง (ไม่รองรับ NIC, ไม่ได้เปิดใช้งานไคลเอ็นต์ dhcp)

ฉันขอแนะนำให้คุณใช้ VRDP (หรือ VNC หากคุณใช้ OSE) เพื่อดูว่าเกิดอะไรขึ้นใน VM ของคุณ ( http://www.virtualbox.org/manual/ch07.html / http://www.virtualbox.org/manual/ch09.html#otherextpacks )


ใช่ฉันไม่ทราบว่าคุณสามารถใช้ MSTSC (Windows RDP) กับสิ่งนี้ได้! กำลังนั่งอยู่ที่ข้อผิดพลาดผงชูรส "This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot - please use a kernel appropriate for your CPU"
Brock Hensley

0

ความพยายามในการสร้างการเชื่อมต่อโดยใช้

ssh -p 10022 127.0.0.1

ถูกผูกไว้กับความล้มเหลว: คุณพยายามเชื่อมต่อกับเครื่องเดียวกันกับที่คุณใช้คำสั่งบนพอร์ต 10022: นี่ไม่ใช่สิ่งที่คุณต้องการ ดังนั้นคุณจึงไม่รู้จริงๆว่าการติดตั้งนั้นใช้งานได้หรือไม่เพราะวิธีการสื่อสารกับแขกของคุณนั้นไม่ถูกต้อง

จากเซิร์ฟเวอร์ linux ของคุณคุณสามารถลองติดต่อแขกของคุณโดยส่ง Ping ไปที่:

ping -c3 10.0.0.15

10.0.0.15 เป็นที่อยู่ IP เริ่มต้นที่ VBox มอบให้แก่ลูกค้า NAT หากล้มเหลวคุณอาจลองใช้ nmap:

sudo nmap -sn 10.0.0.0/24

สิ่งนี้ควรระบุ IP ของแขกหากคุณมีค่าเริ่มต้น

หากแขกตอบกลับตอนนี้คุณอาจลองเชื่อมต่อกับมัน: จากเซิร์ฟเวอร์

ssh myname@10.0.0.15

หรือสิ่งที่ IP ของผู้เข้าพักกลายเป็น ณ จุดนี้คุณจะต้องสั่งให้ VM ของคุณฟังพอร์ต 10022 สำหรับการสื่อสาร ssh ขั้นแรกตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดแพคเกจที่มีเซิร์ฟเวอร์ ssh แล้วแก้ไขไฟล์ / etc / ssh / sshd_config และเปลี่ยนบรรทัด

 Port 22

เข้าสู่เส้น

 Port 10022

ตอนนี้รีสตาร์ทเซิร์ฟเวอร์ ssh แล้วออกจาก guest OS

จากเครื่องอื่นใน LAN คุณสามารถทำได้ตอนนี้

ssh -p 10022 myname@IP

ที่ฉันระบุโดย IP ที่อยู่ IP ของเซิร์ฟเวอร์ลินุกซ์ อย่างน้อยคุณควรเริ่มต้นใช้งาน


1
ทำเครื่องหมายคุณ (และผู้ที่โหวตคำตอบของคุณ) เข้าใจผิดว่า NAT และการส่งต่อพอร์ตทำงานอย่างไร มีลักษณะที่จะ virtualbox.org/manual/ch06.html#natforward
jlliagre

ส่วนไหนที่คุณอ้างถึง? Ping ทำงานเขาไม่ได้ส่งต่อพอร์ตพิเศษ

NAT ของที่อยู่ลูปแบ็ค (127.0.0.0/8) ควรเป็นไปได้ คุณช่วยอธิบายได้ไหมว่าทำไมคุณบอกบางสิ่งที่แตกต่างในตอนเริ่มโพสต์
pabouk

1
@ มาร์คฉันเกรงว่าสิ่งที่คุณเขียนไม่ถูกต้อง ssh -p 10022 localhost ควรจะทำงาน คำแนะนำอื่น ๆ ของคุณเกือบทั้งหมดควรล้มเหลว (ping, nmap, ssh @ 10.0.0.15) แต่ 'ssh -p 10022 myname @ IP' ซึ่งอาจทำงานได้ แต่ถ้า myname เป็นผู้ใช้ที่ถูกต้องใน VM
jlliagre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.