Terhubung ke mesin host dari OS tamu VirtualBox?


214

Saya pada dasarnya ingin mengakses komputer host saya dari tamu di VirtualBox. Apakah ada alamat IP yang diberikan untuk host saya yang dapat saya gunakan dari tamu? Apakah ada langkah-langkah tambahan yang diperlukan untuk mengatur ini? Saya ingin mengakses layanan Apache, FTP, dan SSH host saya.


1
Sulit untuk dipecahkan tanpa ada petunjuk jaringan mana yang sebenarnya dimiliki tamu Anda. Beberapa tidak mengizinkan akses untuk menjadi tuan rumah. Coba alamat gateway default tamu.
Turbo J

7
Ternyata saya bisa mencapainya melalui gateway default saya di 10.0.2.2.
Naftuli Kay

Jawaban:


258

Jawaban ini adalah tentang pengaturan OS tamu di VirtualBox; Anda hanya perlu menggunakan alamat gateway jaringan pada OS tamu untuk terhubung ke OS host dari OS tamu.

Di pengaturan Vagrant default, Anda harus dapat mencapai host Anda melalui gateway default.

Pada tamu berbasis Windows, Anda dapat dengan mudah menentukan alamat IP ini dengan menjalankan perintah:

ipconfig

Itu harus membuang sesuatu seperti ini:

Windows IP Configuration

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 10.0.2.15
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 10.0.2.2

Dalam contoh ini, tamu dapat mencapai mesin host 10.0.2.2.


Pada tamu berbasis Unix / Linux, gunakan perintah:

netstat -rn

Itu harus membuang sesuatu seperti ini:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0

Dalam contoh ini, tamu dapat mencapai mesin host 192.168.1.1.


Adakah ide mengapa konektivitas akan sangat lambat saat menghubungkan menggunakan gateway default sesuai jawaban Anda?
Ben Swinburne

Ini sepertinya tidak berhasil untuk saya (Ubuntu 12.04, Vagrant 1.0). Gateway default di dalam tamu ditampilkan sebagai 10.0.2.2, dan nmap dari IP itu gagal. 192.168.33.1 tampaknya merupakan IP yang tepat. (Aku punya config.vm.network :hostonly, "192.168.33.52"di konfigurasi saya.)
Ajedi32

Sebenarnya tidak apa-apa. Itu berhasil. nmap tidak berfungsi karena suatu alasan; tidak yakin kenapa. Saya masih bisa terhubung ke layanan yang berjalan di host dari IP itu, meskipun nmap tidak menunjukkannya.
Ajedi32

1
netstat -rnpada CentOS 7.2, Docker 1.11 menampilkan 172.17alamat sebagai gateway saya, tetapi IP itu tidak cocok dengan host saya. Ternyata itu 10.0.2.2berhasil.
Spencer Williams

1
Bagaimana kita tahu entri mana yang merupakan gateway?
Kramer

36

Mengakses server web komputer host dari tamu itu mudah. Ini dapat dilakukan dengan mudah menggunakan dua metode. Pertama lakukan hal berikut

  • Buka Perangkat dan pilih Network Adapters ...
  • Dalam pengaturan adaptor, periksa Terlampir ke .
  • Jika nilainya NAT , lakukan berikut ini

  • Gateway default ketika Anda mengatur kotak Virtual umumnya 10.0.2.2sebagai nilai default. Jika Anda belum mengubah apa pun, ini akan berhasil. Tetapi jika Anda telah mengubahnya dan mesin tamu yang Anda jalankan adalah windows jalankan perintah berikut dan temukan gateway default

    ipconfig /all

    Jika Anda menggunakan Linux, Unix atau Mac OS, jalankan perintah berikut untuk mendapatkannya

    netstat -rn | grep 'default' | awk '{print $2}'

  • Buka browser web dan ketik gateway default ini dan tekan enter. Server web dapat diakses.

  • Jika nilainya adalah Bridged Adapter , lakukan hal berikut
    • temukan alamat ip host dan tamu
      • jika Anda berada di windows, jalankan ipconfigdan dapatkan alamat ip
      • jika Anda menggunakan Linux, Unix, atau Mac OS, jalankan ifconfig | grep 'inet' dan dapatkan alamat ip
      • alamat ip seperti 192.168.1.1
    • jika Anda ingin mengakses host, jalankan browser di guest dan masukkan alamat ip host
    • jika Anda ingin mengakses tamu, jalankan browser di host dan masukkan alamat ip tamu

9

Cara lain untuk melakukan ini adalah dengan menggunakan jenis "virtual" jaringan virtual. Itu memberi Anda antarmuka di OS tamu dengan alamat pada subnet lokal yang berbeda dari subnet "dunia luar" yang digunakan mesin host Anda. Untuk membuat ini berhasil, Anda harus memastikan beberapa hal:

  • VM Anda memiliki adaptor "khusus host" yang dikonfigurasi;
  • Layanan host Anda perlu mendengarkan semua adaptor lokal, atau setidaknya yang ingin Anda hubungi;
  • Tuan rumah Anda akan mendapatkan adaptor virtualnya sendiri, dan Anda ingin mengetahui alamat IP-nya dan menambahkannya ke file "host" di OS tamu Anda (namun itu bekerja untuk OS tamu; pada Windows XP, itu hanya " file host "dimakamkan di C: / WINDOWS / system32 / drivers / etc). Beri nama yang ingin Anda gunakan untuk nama host tuan rumah.

Setelah Anda melakukan ini, Anda harus dapat "melihat" host dari VM melalui nama yang Anda kodekan ke file host.

Sebagai contoh, pada host Ubuntu 11.04 saya, saya mendapatkan antarmuka virtual "vboxnet0" pada 192.168.56.1. Adaptor dalam mesin datang dengan sesuatu seperti 192.168.56.101. Saya tidak perlu pergi di untuk VMs saya, tapi saya kira itu akan menjadi mungkin melalui perubahan simetris untuk file host host. saya menambahkan

192.168.56.1 mymachine

ke file host OS tamu, dan mereka dapat (misalnya) melihat server web mesin host saya di

http://mymachine/whatever

Anda tentu saja dapat memiliki adaptor bridging dan hanya host yang diatur.


0

Anda dapat membuat folder bersama di VirtualBox. Ini secara otomatis akan membuat 'jaringan berbagi' dalam Kotak Virtual untuk mengakses folder di OS Host Anda.

Berikut langkah demi langkah yang layak di OS tamu Windows XP:

http://www.giannistsakiris.com/index.php/2007/09/28/virtualbox-access-share-folders-from-windows-xp-guest-os/


Jadi saya bisa mengakses host saya di / vboxsvr / ShareName?
Naftuli Kay

Ya, Anda akan mengatur folder seperti C: \ STUFF untuk dibagikan dengan VirtualBox. Di dalam VirtualBox Guest OS, Anda bisa pergi ke vboxserver itu dan mengakses folder bersama.
kobaltz

Saya sebenarnya tidak ingin folder yang dibagikan. Saya ingin alamat IP untuk mesin host saya. Ketika saya mendapatkannya, saya ingin menggunakannya untuk menggunakan layanan di mesin host saya, yaitu: echo "GET /\r\n\r\n" | nc 192.168.100.100 80(mengirim permintaan HTTP GET ke mesin host saya dari tamu.)
Naftuli Kay

1
Dalam hal ini, Anda mungkin perlu mengatur adaptor jaringan OS Guest Anda ke Bridge. Ini akan menarik alamat IP dari DHCP atau Router Anda. Anda kemudian dapat mengakses mesin host Anda secara alami melalui alamat IP alih-alih VBox Shared Folder.
kobaltz

0

Berikut adalah solusi lain untuk masalah ini dengan menggunakan antarmuka jaringan tambahan dan mengatur lalu lintas yang diperuntukkan bagi tuan rumah untuk dirutekan melalui antarmuka tambahan.


4
Selamat Datang di Pengguna Super! Akan menyenangkan untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan hanya untuk referensi di masa mendatang.
slhck
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.