วิธี SSH ไปยังแขก VirtualBox ภายนอกผ่านโฮสต์ได้อย่างไร [ปิด]


644

ฉันมี Ubuntu VM ที่ทำงานบนเครื่อง Windows 7 ของฉัน ฉันจะตั้งค่าเพื่อให้สามารถเข้าถึงเว็บเซิร์ฟเวอร์ภายนอกผ่าน SSH ได้อย่างไร

ฉันพบขั้นตอน ( ตั้งค่าการเข้าถึง SSH ระหว่าง VirtualBox Host และ Guest VMs ) เพื่อให้ ssh กับแขกของฉันจากโฮสต์ของฉัน แต่ยังทำให้ฉันมีปัญหาในการเข้าถึงผ่านเราเตอร์ของฉัน

ฉันคิดว่าฉันสามารถติดตั้งเซิร์ฟเวอร์ SSH บนเครื่อง Windows ของฉันจากนั้นอุโมงค์สองสามครั้ง (แม้ว่าฉันจะไม่แน่ใจ 100% ว่าจะใช้อะไรในแง่ของท้องถิ่นแบบไดนามิก ฯลฯ หรือวิธีการตั้งค่าอุโมงค์หลายแห่ง)? แต่มีวิธีที่จะทำให้ VM เข้าถึงเราเตอร์ของฉันได้โดยตรงหรือไม่


3
มีวิธีที่ง่ายกว่ามากในการทำเช่นนี้โดยใช้ Vagrant (ซึ่งสร้าง VM พร้อมใช้งาน (ssh-accessable, ip-accessable) จากไฟล์ config หรือ GUI) ฉันไม่ทราบถึงกรณีการใช้งานของคุณ แต่ฉันได้เขียนบทช่วยสอนขนาดใหญ่เกี่ยวกับวิธีการสร้างเซิร์ฟเวอร์ Ubuntu ที่เข้าถึงได้ ssh แบบ VM ด้วย Vagrantซึ่งมีประโยชน์เมื่อคุณต้องการตั้งค่าเครื่องพัฒนาที่ใช้หลอดไฟ
Sliq

1
Vagrant เป็นเครื่องมือที่ยอดเยี่ยม แต่มันเข้ากันไม่ได้กับ
กล่องเสมือน

2
คำตอบที่ดีที่สุดคือเพิ่มเติม: stackoverflow.com/a/10410527/2214806
Michael

คุณสามารถตรวจสอบบทช่วย
Bikesh M

คิดว่าอาจเป็นประโยชน์อย่างยิ่งที่จะมีใหม่ specifi สถานที่ที่จะพูดถึง virtualization area51.meta.stackexchange.com/questions/28201/…
realtebo

คำตอบ:


1308

วิธีที่ดีที่สุดที่จะเข้าสู่ระบบของผู้เข้าพักลินุกซ์ VirtualBox VM คือการส่งต่อพอร์ต โดยค่าเริ่มต้นคุณควรมีหนึ่งอินเทอร์เฟซที่ใช้NATอยู่แล้ว จากนั้นไปที่เครือข่ายการตั้งค่าและคลิกส่งต่อพอร์ตปุ่ม เพิ่มใหม่กฎ ในฐานะชื่อกฎให้แทรก "ssh" ในฐานะ "พอร์ตโฮสต์" แทรก 3022 ในฐานะ "พอร์ตผู้เยี่ยมชม" แทรก 22 ทุกอย่างอื่นของกฎสามารถเว้นว่างไว้ได้

หรือจากบรรทัดคำสั่ง

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

โดยที่ 'myserver' เป็นชื่อของ VM ที่สร้างขึ้น ตรวจสอบกฎที่เพิ่มเข้ามา:

VBoxManage showvminfo myserver | grep 'Rule'

นั่นคือทั้งหมด! โปรดอย่าลืมติดตั้งเซิร์ฟเวอร์SSHใน VM:

sudo apt-get install openssh-server

หากต้องการ SSH ลงใน guest VM ให้เขียน:

ssh -p 3022 user@127.0.0.1

userชื่อผู้ใช้ของคุณอยู่ที่ไหนใน VM


24
@Keyslinger นี่คือสิ่งที่คุณกำลังมองหา? ssh -p 3022 user@127.0.0.1 นั่นเป็นขั้นตอนเดียวที่ฉันหายไปและเพิ่งไปค้นหาในเว็บไซต์อื่น
D. Woods

10
ฉันยังเพิ่มการเปลี่ยนเส้นทางพอร์ต 2020-80 ดังนั้นฉันสามารถเข้าถึง Apache ได้อย่างง่ายดายจากเบราว์เซอร์ที่ใช้192.0.0.1:2020 VBoxManage modifiedvm myserver --natpf1 "ssh, tcp ,, 2020,, 80"
Eduardo Russo

4
thebigdog, คุณสามารถตรงไปตรงมาได้: VBoxHeadless -s 'vmname'
vkostromin

4
เหตุใดเราจึงใช้พอร์ต 3022 และไม่ใช่ค่าเริ่มต้น 22
Seraphim

3
เพื่อให้ชีวิตง่ายขึ้นให้เปิด ~ / .ssh / config เพิ่มสิ่งต่อไปนี้Host mybox HostName 127.0.0.1 User myuser Port 3022ในไฟล์นั้น (เพิ่มการเยื้องตัวเอง) จากนั้นคุณต้องใช้ssh myboxแต่ละครั้งเท่านั้น :)
vancexu

129

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


2
ความคิดใด ๆ ว่าการกำหนดค่าอะแดปเตอร์ 2 ตัวจะทำงานอย่างไร หนึ่งใน NAT และอื่น ๆ บนโฮสต์เท่านั้น
CantGetANick

16
ในความเห็นของฉันการเปิดเผย VM บนเครือข่ายท้องถิ่นไม่ใช่ตัวเลือกที่ดีที่สุด (ตัวอย่างเช่นในเครือข่ายสำนักงาน) โซลูชันที่เสนอโดย @vkostromin จะเก็บ encapsulation ของ VM ไว้ในโฮสต์
วิกเตอร์พี

1
@VictorP คุณช่วยอธิบายได้ไหมว่าทำไมมันถึงไม่ใช่ตัวเลือกที่ดีที่สุดในเครือข่ายสำนักงาน มันเป็นเพราะความปลอดภัยหรือไม่?
mdo123

1
แม้รู้ว่านี่ไม่ใช่ตัวเลือกที่ดีที่สุดในการกำหนดค่าปัจจุบันของฉันการตั้งค่าอะแด็ปเตอร์เป็นบริดจ์เป็นโซลูชันเดียวที่ทำงานได้
James

68

การรักษาอะแดปเตอร์ NAT และการเพิ่มอะแดปเตอร์สำหรับโฮสต์ตัวที่สองนั้นทำงานได้อย่างยอดเยี่ยมและเป็นสิ่งสำคัญสำหรับแล็ปท็อป (ที่เครือข่ายภายนอกเปลี่ยนแปลงอยู่เสมอ)

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

อย่าลืมสร้างเครือข่ายเฉพาะโฮสต์ใน virtualbox เอง (GUI -> การตั้งค่า -> เครือข่าย) มิฉะนั้นคุณจะไม่สามารถสร้างอินเทอร์เฟซเฉพาะโฮสต์บนแขกได้


2
เฉพาะคำตอบนี้ใช้ได้สำหรับฉันไม่มีอะไรทำ นอกจากนี้ฉันเพิ่งเพิ่มอะแดปเตอร์เพิ่มเติมและใช้งานได้ไม่จำเป็นต้องแก้ไข/etc/network/interfacesขอบคุณ!
brokenfoot

3
เห็นด้วยนี่เป็นคำตอบที่ดีที่สุด มิฉะนั้นคุณกระโดดกำลังผ่านห่วงทุกเวลาที่คุณต้องการในการเข้าถึงบริการทั่วไป ( ssh, sftpฯลฯ ) เนื่องจากคุณจะต้องไปผ่านพอร์ตที่ไม่ได้มาตรฐาน
Kirk Woll

1
ฉันชอบที่จะเชื่อมโยงไปยังคลังเก็บอินเทอร์เน็ต: web.archive.org/web/20160523035053/https://muffinresearch.co.uk/?hl=th - web.archive.org/web/20170701174835/http://christophermaier.name/… is อีกคำอธิบายที่ดี
Ben Creasy

1
แหล่งข้อมูลที่ดีอีกแหล่งสำหรับการตั้งค่านี้2buntu.com/articles/1513/…
mdo123

1
@Sparkler กำลังเรียกใช้ sshd อยู่หรือไม่ มีพอร์ตปิดไฟร์วอลล์หรือไม่
orip

23

วิธีทำเครือข่ายเฉพาะโฮสต์ ( ดีกว่าเชื่อมโยง) สำหรับ Solaris 10 และ Ubuntu 16.04

เพิ่มส่วนต่อประสานเฉพาะโฮสต์

  1. กล่องเสมือน> ไฟล์> ค่ากำหนด> เครือข่าย> เครือข่ายเฉพาะโฮสต์> เพิ่ม
  2. vm ปิดเครื่อง
  3. การตั้งค่าของ VM> เครือข่าย อะแดปเตอร์แรกควรเป็น Nat โฮสต์ที่สองเท่านั้น
  4. เริ่มต้น cmd.exe ipconfig /allและเรียกใช้ คุณควรเห็นบรรทัด:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    อแด็ปเตอร์ตัวที่สองในเกสต์ควรเป็น 192.168.59 *

  5. เริ่ม VM

โซลาริส 10

  1. ตรวจสอบการตั้งค่า ifconfig -aคุณควรเห็น e1000g0 และ e1000g1 เราสนใจ e1000g1
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. ตรวจสอบจากโฮสต์ว่าสามารถเข้าถึงอินเทอร์เฟซนี้ได้หรือไม่: ping 192.168.56.10

รักษาการตั้งค่าเหล่านั้นเมื่อรีบูต

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

กำหนดค่าบริการssh ( การบริหาร ) เพื่อเข้าสู่ระบบในฐานะ root (ไม่แนะนำ)

ตรวจสอบว่าเปิดใช้งาน ssh หรือไม่

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

แก้ไข / etc / ssh / sshd_config ดังนั้นจึงมี

PermitRootLogin yes

เริ่มบริการ ssh ใหม่

svcadm restart ssh

จากโฮสต์ตรวจสอบมัน

ssh root@192.168.56.10

Ubuntu 16.04

รายการอินเตอร์เฟส:

ip addr

คุณควรเห็นสามอินเตอร์เฟสเช่น lo, enp0s3, enp0s8 เราจะใช้ที่สาม

แก้ไข / etc / network / interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

sudo ifup enp0s8แล้วก็ ตรวจสอบว่า enp0s8 มีที่อยู่ที่ถูกต้อง คุณควรเห็นไอพีของคุณ:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

ถ้าไม่คุณอาจทำงานได้ sudo ifdown enp0s8 && sudo ifup enp0s8

/superuser/424083/virtualbox-host-ssh-to-guest/424115#424115


3
สิ่งนี้ไม่ทำงานหากเครือข่ายเฉพาะโฮสต์ของคุณเปิดอยู่192.168.59.1และคุณระบุ192.168.56.10สำหรับ IP ของผู้เยี่ยมชมคงที่ ที่อยู่เครือข่ายคลาส C ทั้งหมดต้องตรงกันทุกประการดังนั้นคุณจะต้องใช้สิ่งที่เหมือน192.168.59.10อยู่ภายในแขกแทน
คำถามของ Quolonel

22

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

ผู้ใช้ ssh @ IP_OF_VM


ด้วยวิธีนี้การเชื่อมต่อ SSH จะข้ามผ่าน LAN หรือไม่
2233706

16

ในการ ssh ไปยัง Ubuntu VM ที่ทำงานใน VirtualBox จากเครื่องโฮสต์ของคุณคุณต้องตั้งค่าอะแดปเตอร์เครือข่ายสองตัวสำหรับ VM

ก่อนอื่นหยุด VM ถ้ายังไม่

จากนั้นเลือก VM และคลิกเมนูการตั้งค่าในแถบเครื่องมือ VirtualBox:

ป้อนคำอธิบายรูปภาพที่นี่

ตั้งค่าอะแดปเตอร์ 1

ป้อนคำอธิบายรูปภาพที่นี่

ตั้งค่าอะแดปเตอร์ 2

ป้อนคำอธิบายรูปภาพที่นี่

(หมายเหตุ: คุณไม่จำเป็นต้องตั้งค่าการส่งต่อพอร์ตใด ๆ )

แค่นั้นแหละ. เมื่อตั้งค่าแล้วคุณสามารถเริ่ม VM ของคุณ ใน VM ของคุณการกำหนดค่าเครือข่ายจะมีลักษณะดังนี้และคุณจะสามารถเข้าถึงอินเทอร์เน็ตได้เช่นกัน:

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้ในเครื่องโฮสต์ของคุณคุณสามารถ ssh ไปยัง VM ของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่

ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ SSH ได้รับการติดตั้งและทำงานใน VM

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

ถ้าไม่ติดตั้ง:

$ sudo apt-get install openssh-server

นอกจากนี้สำหรับข้อมูลของคุณ:

  • My VirtualBox เวอร์ชัน: 5.2.6 r120293 (Qt5.6.2), 2018
  • รุ่น Ubuntu ของฉัน: Ubuntu 16.04.3 LTS
  • เครื่องโฮสต์ของฉัน: Windows 10

หากคุณไม่มีอะแดปเตอร์สำหรับโฮสต์เท่านั้นคุณสามารถสร้างได้จาก:File > Host Network Manager > Create
Cirelli94

มันไม่สามารถเข้าถึงเครือข่ายอินเทอร์เน็ตเศร้า
Cirelli94

5
SSH กลับไปที่บ้านของคุณ / Office VirtualBox Guest Machine จากอินเทอร์เน็ต

คำตอบของผู้ใช้รายอื่นที่นี่: How to SSH to a VirtualBox guest externally through a host?

... ช่วยให้ฉันทำงานเชื่อมต่อจากอินเทอร์เน็ตกับเครื่องคอมพิวเตอร์ที่บ้านของฉันได้ คุณควรจะสามารถเชื่อมต่อโดยใช้คอมพิวเตอร์แท็บเล็ตและสมาร์ทโฟน (Android, IPhone และอื่น ๆ ) ฉันเพิ่มอีกสองสามก้าวในกรณีที่อาจเป็นประโยชน์กับคนอื่น:

นี่คือแผนภาพด่วนของการตั้งค่าของฉัน:

  • Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM

  • Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)

  • Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)

กุญแจสำคัญสำหรับฉันคือการตระหนักว่าการเชื่อมต่อทั้งหมดเป็นPASSING-THROUGHอุปกรณ์ตัวกลางที่จะได้รับจากพีซีระยะไกลไปยังเครื่องเสมือนแขกของฉันที่บ้าน - ส่งต่อพอร์ต!

หมายเหตุ: * ต้องการไคลเอนต์ ssh เพื่อขอการเชื่อมต่อที่ปลอดภัยและเซิร์ฟเวอร์ที่ทำงานอยู่เพื่อประมวลผลการเชื่อมต่อที่ปลอดภัย

  • ฉันจะส่งต่อพอร์ต 3022 ตามที่ใช้ในคำตอบที่เลือกจากด้านบน

  • ป้อน IP ของคุณในกรณีที่จำเป็น (โมเด็มบ้าน / เราเตอร์, โฮสต์ IP, IP แขก ฯลฯ ) ชื่อที่เลือกเป็นเพียงตัวอย่างการใช้งานหรือการเปลี่ยนแปลง

1. สร้าง ssh tunnel ไปที่พอร์ต 3022 บนที่อยู่ IP ภายนอกของโมเด็ม / เราเตอร์

ssh client/device possible commands: ssh -p 3022 user-name@home_external_IP

2. พอร์ตไปข้างหน้า = เรากำลังผ่านการเชื่อมต่อจากเราเตอร์ไปยังเครื่องโฮสต์

  • ตรวจสอบให้แน่ใจด้วยว่ากฎของไฟร์วอลล์ / IPtable บนเราเตอร์อนุญาตให้พอร์ตส่งต่อ (เปิดหากจำเป็น)

  • Pfwd SCREEN ของเราเตอร์รายการที่ต้องการ: AppName: SSH_Fwd, Port_from: 3022, โปรโตคอล: ทั้งสอง (UDP / TCP), IP_address: hostIP_address, Port_to: 3022, ทุกอย่างอื่นสามารถว่างได้

แหล่งข้อมูลซอฟต์แวร์ / ข้อมูลเราเตอร์ DD-WRT:

3. เครื่องไฟร์วอลล์ที่ดีที่สุด: เปิดพอร์ต 3022 # ดังนั้นพอร์ตที่ส่งต่อสามารถส่งผ่านไปยังเครื่องแขกได้

  • เครื่องโฮสต์: ติดตั้ง VirtualBox การเพิ่มแขกและเครื่องเกสต์หากยังไม่เสร็จสิ้น

  • กำหนดค่าเครื่องเกสต์จากนั้นทำตามส่วนเครือข่ายด้านล่าง

  • ฉันใช้ VirtualBox GUI เพื่อตั้งค่าเครือข่ายของแขกง่ายกว่า CLI

  • หากคุณต้องการใช้วิธีการอื่นอ้างถึง: VirtualBox/manual/ch06.html#natforward

4. บางคนแนะนำให้ใช้อะแดปเตอร์ Network Bridge สำหรับแขก = เข้าถึง LAN และเครื่องอื่น ๆ บน LAN ของคุณ สิ่งนี้ยังมีความเสี่ยงด้านความปลอดภัยที่เพิ่มขึ้นด้วยเพราะตอนนี้เครื่องแขกของคุณถูกเปิดเผยต่อเครื่อง LAN และแฮกเกอร์อินเทอร์เน็ตถ้าไฟร์วอลล์ติดตั้งไม่ถูกต้อง ดังนั้นฉันเลือก Network adapter ที่ติดกับ NAT เพื่อลดความเสี่ยงในการเชื่อมต่อความปลอดภัย

บนเครื่องแขกทำต่อไปนี้:

  • เครื่อง GuestBox VirtualBox การตั้งค่าเครือข่าย: อะแดปเตอร์ 1: แนบกับ NAT
  • กฎการส่งต่อของเครื่องเสมือน GuestBox: ชื่อ: External_SSH, โพรโทคอล: TCP, พอร์ตโฮสต์: 3022, พอร์ตแขก 22, IP ของโฮสต์และแขก: เว้นว่างไว้
  • คลิกที่ล่วงหน้าในส่วนเครือข่ายจากนั้นคลิกที่การส่งต่อพอร์ตเพื่อป้อนกฎ
  • Guest Machine Firewall: open port 22 # เพื่อให้สามารถเชื่อมต่อ ssh ได้
  • เครื่องแขก: ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ ssh ได้รับการติดตั้งกำหนดค่าอย่างเหมาะสมและทำงานอยู่
  • LINUX ทดสอบเพื่อดูว่าเซิร์ฟเวอร์ ssh ใช้คำสั่ง w /: sudo service ssh สถานะ
  • สามารถตรวจสอบ netstat เพื่อดูว่าการเชื่อมต่อกับพอร์ต 22 บนเครื่องของแขก

นอกจากนี้ยังมีเซิร์ฟเวอร์ ssh และไคลเอ็นต์ที่แตกต่างกันขึ้นอยู่กับแพลตฟอร์มที่ใช้

  • wikipedia/Secure_Shell
  • wikipedia/Comparison_of_SSH_servers
  • wikipedia/Comparison_of_SSH_clients

สำหรับผู้ใช้ Ubuntu:

  • ubuntu community: SSHOpenSSH/Configuring
  • ubuntu/community: OpenSSH/Keys

ที่ควรจะเป็น ถ้าฉันทำผิดพลาดหรือต้องการเพิ่มอะไร - รู้สึกอิสระที่จะทำ - ฉันยังคงเป็น noob

หวังว่านี่จะช่วยใครซักคน โชคดี!


5

สำหรับโฮสต์ Windows คุณสามารถ:

  1. ในผู้จัดการกล่องเสมือน:
    1. เลือกctrl+ Gในเครื่องมือจัดการ VirtualBox ของคุณ
    2. จากนั้นไปที่เครือข่าย pannel
    3. เพิ่มเครือข่ายส่วนตัว
      1. ตรวจสอบให้แน่ใจว่าไม่ได้เลือกเปิดใช้งาน DHCP ไว้
  2. ในการจัดการเครือข่าย (windows)
    1. เลือกอะแดปเตอร์โฮสต์เสมือนที่สร้างขึ้นใหม่เท่านั้นและการ์ดเครือข่ายทางกายภาพ
    2. คลิกขวาและเลือก "สร้างสะพาน"
  3. สนุก

4

นอกจากนี้คุณยังสามารถเริ่มต้นพอร์ตส่งต่อไปยังโฮสต์ของคุณหรือเซิร์ฟเวอร์อื่น ๆ จากแขกของคุณ สิ่งนี้มีประโยชน์อย่างยิ่งหากแขกของคุณ 'ถูกล็อก' หรือไม่สามารถดำเนินการตามตัวเลือก ModifyVM ได้อย่างสมบูรณ์ (เช่นไม่ได้รับอนุญาตจาก VBoxManage)

ข้อกำหนดย่อยสามข้อคือ 1) คุณ / สามารถเข้าสู่ระบบ VirtualBox Guest (ผ่านทาง 'คอนโซล' GUI บุคคลอื่น ฯลฯ ) 2) คุณมีบัญชีใน VirtualBox HOST (หรือเซิร์ฟเวอร์อื่น ๆ ) และ 3) SSH และ TCP การส่งต่อไม่ถูกบล็อก

สมมติว่าคุณสามารถปฏิบัติตามข้อกำหนด 3 ข้อต่อไปนี้คือขั้นตอน:

  1. เมื่อแขกวิ่ง netstat -rnและค้นหาที่อยู่เกตเวย์ไปยังปลายทางเส้นทางเริ่มต้น 0.0.0.0 สมมติว่าเป็น "10.0.2.2" ที่อยู่ 'เกตเวย์' นี้ (หนึ่ง) IP VirtualBox Host เสมือน
  2. เมื่อแขกวิ่ง ssh -R 2222:localhost:22 10.0.2.2โดยที่ "10.0.2.2" เป็นที่อยู่ IP ของเซิร์ฟเวอร์ VirtualBox หรือ IP ของเซิร์ฟเวอร์อื่นที่คุณต้องการส่งต่อไปยัง
  3. บนโฮสต์ให้รันssh 10.0.2.2 -p2222โดยที่ 10.0.2.2 เป็นเกตเวย์เสมือนเริ่มต้น / VBHost IP เสมือนที่พบในขั้นตอนที่ 1 หากไม่ใช่โฮสต์ VirtualBox ที่คุณกำลังส่งต่อไปยังพอร์ตคำสั่งคือssh localhost -p2222

4

ทำตามขั้นตอนด้านล่างเพื่อเข้าสู่ ubuntu VM ของคุณทำงานในกล่องเสมือนจากเครื่องโฮสต์โดยใช้ผงสำหรับอุดรู (ไม่มีการส่งต่อพอร์ต):

  1. บน Virtualbox manager เลือก vm คลิกที่ไอคอนการตั้งค่า จากนั้นไปเครือข่ายและเปิดใช้งานอะแดปเตอร์สองตัวดังต่อไปนี้:

    • อะแดปเตอร์ 1 (สำหรับการเชื่อมต่ออินเทอร์เน็ต): ต่อกับ -> NAT, ขั้นสูง -> ตรวจสอบสายเคเบิลที่เชื่อมต่อ
    • อะแดปเตอร์ 2: แนบกับ -> อะแดปเตอร์สำหรับโฮสต์เท่านั้นขั้นสูง -> ตรวจสอบสายเคเบิลที่เชื่อมต่อและโหมด Promiscuous -> อนุญาตทั้งหมด
  2. เริ่ม ubuntu vm

  3. ล็อกอินเข้าสู่ VM ในฐานะรูท
  4. แก้ไขไฟล์ '/ etc / network / interfaces' ดังด้านล่างและบันทึก:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. รีสตาร์ท VM

  6. ลงชื่อเข้าใช้ VM และเรียกใช้คำสั่งด้านล่างเพื่อตรวจสอบ IP ที่จัดสรรให้กับ eth1:

    ifconfig
    
  7. ใช้ IP นี้เพื่อเปิดเซสชันโป๊สำหรับ VM



2

Ubuntu 18.04 LTS

การกำหนดค่าด้วย bridged เพื่อดูเซิร์ฟเวอร์ ip และเชื่อมต่อโดยไม่มี "การส่งต่อพอร์ต"

VirtualBox> คลิกขวาในเซิร์ฟเวอร์> การตั้งค่า> เครือข่าย> เปิดใช้งานอะแดปเตอร์ 2> เลือก "bridged"> โหมด Promiscuous: อนุญาตทั้งหมด> ตรวจสอบสายเคเบิลที่เชื่อมต่อ> เซิร์ฟเวอร์เริ่มต้น

บนเซิร์ฟเวอร์อูบุนตูแก้ไข sudo nano /etc/netplan/*init.yamlไฟล์

ไฟล์ตัวอย่างของฉัน:

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
        enp0s8:
            addresses: [192.168.0.200/24]
            dhcp4: no
            dhcp6: no
            nameservers:
               addresses: [8.8.8.8, 8.8.4.4]
    version: 2

คำสั่งที่จะช่วยคุณ

nano /etc/netplan/file.yaml     # file to specify the rules of network
reboot now                      # restart ubuntu server right now
netplan apply                   # do after edited *.yaml, to apply changes
ifconfig -a                     # show interfaces with ip, netmask, broadcast, etc...
ping google.com                 # to see if there is internet

กำหนดค่าที่อยู่ IP แบบคงที่บน Ubuntu 18.04 LTS เซิร์ฟเวอร์ - ด้วย NetPlan


0

เพียงแค่ตั้งค่าการตั้งค่าเครือข่ายเพื่อเชื่อมโยงข้อมูลก็เป็นการหลอกลวง

IP ของคุณจะเปลี่ยนเมื่อคุณทำเช่นนี้ อย่างไรก็ตามในกรณีของฉันมันไม่เปลี่ยนแปลงทันที ifconfigคืนค่า ip เดียวกัน ฉันรีบูท vm และ boom แล้ว ip ตั้งค่าให้เริ่มด้วย 192 * และฉันได้รับอนุญาตให้เข้าถึง ssh ทันที


ข้อมูลที่ฉันคาดเดานี้มีบางส่วนหรือไม่ถูกต้องทั้งหมดฉันไม่ทราบ downvoter ไม่ต้องพูด
boulder_ruby

เพื่อปัญญา "สำหรับบางคนมันไม่ทำงาน"
boulder_ruby

0

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

ทางออกที่ดีที่สุดในความคิดของฉันคือการตั้งค่าอินเทอร์เฟซเครือข่ายเพิ่มเติมเพื่อจัดการบริการเพิ่มเติมที่คุณต้องการเรียกใช้บนเครื่องของคุณ ดังนั้นฉันจึงมีบริดจ์อินเตอร์เฟสเพื่ออนุญาตการบริดจ์เมื่อฉันนำแล็ปท็อปกลับบ้านและสามารถ SSH จากอุปกรณ์อื่น ๆ ในเครือข่ายของฉันรวมทั้งอะแดปเตอร์โฮสต์เท่านั้นเมื่อฉันต้องการ SSH ลงใน VM จากแล็ปท็อปของฉันเมื่อฉันเชื่อมต่อ ไปยังเครือข่ายไร้สาย eduroam ในมหาวิทยาลัย


0

ใช้อะแดปเตอร์เครือข่าย NAT และเพิ่มพอร์ตไปข้างหน้า กล่าวถึงโฮสต์จริง ip.Do อย่าใช้ 127.0.0.1 หรือ localhost

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