SSH ไปยัง Ubuntu VM จากระยะไกล


10

ฉันไม่มีประสบการณ์มากมายเกี่ยวกับระบบเครือข่ายหรือ Linux แต่ฉันพยายามที่จะ ssh เข้าไปในเครื่องเสมือน Ubuntu จากนอกเครือข่ายในบ้านของฉัน เครื่องเสมือน Ubuntu (VirtualBox) กำลังเรียกใช้บนเดสก์ท็อปเดเบียน ฉันทำการวิจัยและพบว่าฉันต้องส่งต่อพอร์ต 22 จากเราเตอร์ไปยังเครื่องเสมือน

  • ฉันเปลี่ยนการตั้งค่าเครือข่ายบน VM เป็นบริดจ์
  • ฉันกำลังส่งต่อพอร์ตไปยัง VM
  • ฉันตรวจสอบ ( http://www.yougetsignal.com/ ) เพื่อแสดงพอร์ตว่าเปิด

แต่เมื่อฉันพยายามเชื่อมต่อมันก็ยังไม่ทำงาน ssh username @ - การเชื่อมต่อถูกปฏิเสธ

มีอะไรที่ฉันต้องทำในเครื่องเสมือนเพื่ออนุญาตการเชื่อมต่อเข้ามาหรือไม่? หรือส่งต่อพอร์ตใด ๆ

มีอะไรที่ฉันทำผิดหรือเปล่าความช่วยเหลือจะได้รับการชื่นชมอย่างมาก !!


VM เป็นเครือข่ายกับโฮสต์อย่างไร ถ้ามันอยู่หลัง NAT (ค่าเริ่มต้นในกล่องเสมือน) มันจะไม่ทำงาน แต่การเชื่อมต่อที่เชื่อมโยงควรทำงานหากคุณส่งต่อพอร์ตอย่างถูกต้อง
Matt Mootz

คุณใช้ชื่อผู้ใช้ ssh @ เราเตอร์ -IP- ที่อยู่ใช่ไหม?
cprofitt

1
ใช่ชื่อผู้ใช้ @ สาธารณะ -ip- ที่อยู่ใช่ไหม?
user1354275

Ubuntu ออกมาพร้อมกล่องรวมถึงไคลเอนต์OpenSSH ซึ่งช่วยให้คุณเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นที่ใช้เซิร์ฟเวอร์ SSH ในการเชื่อมต่อ 'กับ' Ubuntu คุณจะต้องโหลดเซิร์ฟเวอร์OpenSSH ( sudo apt-get install openssh-server ) บนเครื่องเป้าหมาย
david6

คำตอบ:


15

โดยค่าเริ่มต้น VirtualBox ทำงานในโหมด "NAT" ซึ่งหมายความว่ามันจะสร้างเครือข่าย "เสมือน" และแปลการเข้าถึงเครือข่ายจาก VM เพื่อโลกภายนอกพวกเขาดูเหมือนจะมาจากคอมพิวเตอร์จริงของคุณ

VirtualBox ทำให้ VM คิดว่ามันเชื่อมต่อกับเครือข่าย แต่ในความเป็นจริง VirtualBox กำลังให้บริการเครือข่ายรวมถึงเซิร์ฟเวอร์ mini DHCP จากนั้น VirtualBox จะเข้าถึงเครือข่าย "ในนาม" ของ VM ทำให้ปรากฏเป็นแอปพลิเคชันอื่นที่ทำงานบนพีซีของคุณ

อย่างไรก็ตามนี่หมายความว่าโลกภายนอกไม่รู้เกี่ยวกับ VM และไม่สามารถเข้าถึงได้โดยตรง

ฉันคิดว่าการเปลี่ยนเส้นทางพอร์ตที่คุณทำนั้นมาจากเราเตอร์ที่บ้านของคุณไปยังพีซีไม่ใช่ไปยัง VM คุณอาจจะขาดการกำหนดค่าบางอย่างในด้าน VirtualBox ขออภัยหากคุณทำสิ่งนี้ไปแล้ว แต่คำถามของคุณไม่ชัดเจนเกี่ยวกับเรื่องนี้

โดยทั่วไปคุณต้องเปลี่ยนการกำหนดค่าเครือข่ายของ VM และตั้งค่าเป็น "Bridged" สิ่งนี้ทำคือมันสร้างอินเทอร์เฟซเสมือนบนพีซีของคุณและทำให้ VM ใช้สิ่งนั้นเพื่อเข้าถึงโลกภายนอก สิ่งใดก็ตามที่เข้ามาหรือไปยังส่วนต่อประสานนั้นจะถูกส่งไปยัง VM ดังนั้น VM จะสามารถมองเห็นได้เป็นเพียงเครื่องอื่นในเครือข่ายที่พีซีของคุณเชื่อมต่ออยู่ (แม้จะมีที่อยู่ MAC ของตัวเอง!)

จากนั้นขึ้นอยู่กับการกำหนดค่าเครือข่ายของคุณ VM อาจได้รับที่อยู่ DHCP เช่นพีซีเครื่องอื่นที่เชื่อมต่อกับเราเตอร์ของคุณหรือคุณอาจต้องกำหนดค่าที่อยู่ IP แบบคงที่สำหรับมัน ขึ้นอยู่กับการตั้งค่าเครือข่ายของคุณ

เมื่อ VM มีที่อยู่ "ของจริง" คุณสามารถทำตามคำแนะนำที่คุณพบเพื่อกำหนดเส้นทางพอร์ต 22 ไปยังที่อยู่ IP ของ VM สิ่งนี้ควรใช้งานได้ตามที่คุณคาดหวัง

ถ้าไม่:

  • ดูการกำหนดค่าไฟร์วอลล์ของ VM (iptables -L -n) มันปิดกั้นอะไรหรือเปล่า
  • ตั้งค่าคอมพิวเตอร์เครื่องอื่นในเครือข่ายท้องถิ่นของคุณและลอง SSH ไปยังที่อยู่ IP ของ VM หากทำได้คุณต้องตรวจสอบการกำหนดค่าการส่งต่อในเราเตอร์อีกครั้ง หากคุณทำไม่ได้คุณจะต้องตรวจสอบ SSH และการกำหนดค่าไฟร์วอลล์อีกครั้ง

สวัสดี roadmr ฉันเปลี่ยนการตั้งค่าเครือข่ายเป็นบริดจ์และฉันส่งต่อพอร์ตไปยัง VM เนื่องจากมี IP ของตัวเองและเราเตอร์ก็สามารถค้นหาได้ ฉันมี IP แบบคงที่โดย isp แต่ยังคงใช้งานไม่ได้
user1354275

1

จากสิ่งที่ฉันสามารถรวบรวมได้ปัญหาของคุณอยู่ในเครือข่ายคอมพิวเตอร์เซิร์ฟเวอร์ของคุณเพราะเมื่อคุณตั้งค่าเครือข่าย vm เป็นโหมดบริดจ์คุณก็สบายดี (ตรวจสอบกับssh <your.vm.ip.number>บรรทัดคำสั่งเซิร์ฟเวอร์ของคุณ - ไม่ใช่ใน vm)

เซิร์ฟเวอร์ของคุณอยู่หลังเราเตอร์เหมือนกับ vm ที่ใช้ NAT ในเครื่องของคุณ

คุณต้องติดต่อผู้ดูแลระบบเครือข่ายเซิร์ฟเวอร์ของคุณเพื่อให้เขา / เธอสามารถส่งต่อที่อยู่ ip ของท้องถิ่น vm ไปยังพอร์ต / ช่วงของพอร์ต (ตรวจสอบให้แน่ใจว่า vm ของคุณมีที่อยู่ ip แบบคงที่)

คุณสามารถทำได้ด้วยตนเองหากคุณมีสิทธิ์ในเกตเวย์เซิร์ฟเวอร์ของคุณ

บิตของการสร้างภาพ:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.