OS tamu VirtualBox mengakses server lokal pada OS host

107

Pada host Ubuntu saya, saya memiliki server web lokal saya. Saya menginstal VirtualBox dan Debian sebagai tamu.

Saya ingin tamu Debian dapat menekan server web saya yang berjalan di host Ubuntu saya (misalnya, saya cukup mengetikkan http://localhost:8080/browser di bawah Debian).

Bagaimana ini bisa dilakukan?

Pepatah
sumber

Jawaban:

176

Aktifkan SATU adapter jaringan. Setel ke NAT dan mulai mesin Anda. Tidak perlu mengkonfigurasi apa pun.

Pada browser guest machine ketik http://10.0.2.2 yang akan menampilkan konten yang sama dengan "localhost" di OS host.

10.0.2.2 adalah "gateway default" untuk koneksi NAT dan IP OS tamu Anda adalah 10.0.2.15

Tentu saja Anda dapat mengatur "HOST-ONLY" atau "Internal Network" yang akan memungkinkan Anda melakukan konfigurasi lanjutan lainnya. Saya merekomendasikan untuk tetap dengan NAT.

Nikmati

M.

Melvyn
sumber
1
"Aktifkan SATU adapter jaringan". Di mana ini dilakukan?
jshen
1
Catatan: Jika Anda memiliki host virtual berbasis nama yang dikonfigurasi di apache pada mesin host Anda, maka Anda dapat mengaksesnya dengan hanya membuat pemetaan di file host mesin tamu untuk10.0.2.2 yourvirtualhostname.local (or whatever)
Pengguna
@ Pengguna apakah Anda yakin komentar terakhir Anda akan berfungsi? Saya memiliki virtual host di host VB saya yang diatur http://example.dev, dan memetakan 10.0.2.2apa pun pada tamu VB saya tidak membantu mengaksesnya sama sekali.
Томица Кораћ
1
@ ТомицаКораћ tidak berfungsi. Sebagai contoh, lihat: askubuntu.com/questions/36183/... namun, Anda mungkin harus membuka pertanyaan terpisah untuk menyelesaikannya.
Pengguna
1
"Aktifkan adaptor jaringan SATU" berarti di bawah pengaturan jaringan mesin virtual Anda (dalam VirtualBox) hanya mengaktifkan salah satu adapter. Membuat saya sedikit bingung ketika pertama kali membacanya.
Marquez
5

Juga satu hal yang perlu diperhatikan ketika menggunakan alamat ip 10.0.2.2 adalah jika Anda menggunakan MAMP misalnya menambahkan nomor port: 8888 sehingga alamat lengkapnya berbunyi http://10.0.2.2:8888

Paul
sumber
3

Cara termudah untuk memungkinkan akses tanpa gangguan ke mesin Guest VirtualBox Anda adalah dengan mengatur perangkat jaringan sebagai 'jembatan' ke eth0 Anda ke LAN Anda.

Mesin Guest akan mengambil IP LAN melalui DHCP dari router Anda.

Ash Palmer
sumber
Untuk memperjelas: Ini adalah pengaturan di aplikasi klien. Itu bekerja untuk saya — hanya perlu beberapa saat untuk menyadarinya, karena IE terlalu bodoh untuk menganggap saya menginginkan koneksi HTTP ketika saya mengetik alamat IP dan port ke bilah alamat.
Michael Scheper
2

Apa yang saya temukan memperbaiki masalah bagi saya adalah memastikan bahwa windows VirtualHost-Only adapter diatur ke alamat .1 untuk rentang ip sehingga adaptor kotak host hanya virtual saya adalah 192.168.58.20 tetapi ip untuk adaptor Windows adalah 192.168. 58.1

Jason Hardin
sumber
2

Jika solusi oleh @Melvyn tidak berfungsi, sebagai alternatif Anda dapat mengatur adaptor jaringan Anda untuk dijembatani.
Pergi ke Settings-> Network-> lalu ubah Attached toke Bridged Adapter.

masukkan deskripsi gambar di sini

Anda harus bisa memanggil induk dengan nama host atau alamat IP eksternal yang bisa Anda peroleh dengan masuk ke Command prompt dan mengetik ipconfig /all masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Pembaruan Jika Anda melakukan debug dengan Visual Studio dan menggunakan IIS Express.

pergi ke C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

temukan situs web Anda <configuration>/<system.applicationHost>/<sites>/<site> (nama bisa menipu, coba periksa lokasi pada disk dalam physicalPathatribut)

kemudian tambahkan ke <bindings>bagian mengikat baru

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

di mana bindingInformation berada *:[port]:[machineName]

Semoga ini menghemat waktu Anda.

Matas Vaitkevicius
sumber
-1

Ya, Anda bisa mendapatkan Debian untuk mencapai server web Anda, tetapi tidak menggunakan localhost. Anda harus menggunakan alamat IP host Ubuntu.

Dengan asumsi OS tamu terhubung ke jaringan, untuk mengambil IP membuka terminal dan ketik ifconfig. Seharusnya terlihat seperti 192.168.0.2.

Jivings
sumber
Hai! Maaf atas jawaban yang terlambat. ifconfig pada host saya menunjukkan 192.168.0.102 untuk eth0. Ketika saya memasukkan ip ini di firefox di guest, ia mencoba untuk terhubung untuk sementara waktu dan kemudian koneksi diakhiri: "Server di 192.168.0.102 terlalu lama untuk merespons" ... Jadi apa yang harus saya coba selanjutnya? Terima kasih sebelumnya.
Maxim