VirtualBox'ta İnternete erişebilecek sadece host-sanal makineleri nasıl kurarım?


98

VirtualBox ile sanal makineler kurarken, genellikle aşağıdaki özellikleri istiyorum

  • vm'nin statik bir ipi var
  • ana bilgisayar bağlantı noktası iletmeden vm'ye erişebilir
  • vm internete erişebilir
  • Dizüstü bilgisayarımı ağdan ağa (örneğin evden ofise kahve dükkanına kadar) vm'yi güvenceye almak veya yeniden yapılandırmaktan endişe duymadan taşıyabilirim

VirtualBox ağ bağlantı yöntemlerinin hiçbiri bu gereksinimleri kendi başlarına durduramaz.

  • NAT
    Ana bilgisayardan vm'ye bağlanmak istiyorsanız bağlantı noktası iletmeyi gerektirir.

  • Yalnızca
    ana bilgisayar Ana bilgisayar bir yönlendirici olmadığı sürece vm internete erişemez.

  • Bridged
    vm'yi ağa tanıtır; taşınabilir değil.

Yanıtlar:


110

İstediğim kurulumu vm'ye iki adaptör kurarak alabilirim.

VirtualBox 4.2.12
Ubuntu 12.04 konuk

VirtualBox> Tercihler> Ağ'da, yalnızca ana bilgisayar ağını ayarlayın.

Mine vboxnet0 olarak adlandırılır, el ile yapılandırılır:
ip 192.168.56.1
ağ maskesi 255.255.255.0
no dhcp

VirtualBox ağ yapılandırması VirtualBox ağ yapılandırması

Ardından, sanal makinenin ağ ayarlarında iki adaptör ayarlayın:


Yalnızca Bağdaştırıcı 1 ana bilgisayarı, vboxnet0

Adaptör2
NAT

Sanal makineyi önyükleyin ve VirtualBox'ın sağladığı konsoldan giriş yapın.

Adaptörlerinizi görmek için bunu çalıştırın:

ls /sys/class/net

Benim durumumda adaptörler eth1 ve eth2 olarak adlandırıldı (ve geri döngü arayüzü).

Ardından, ağ yapılandırmanızı düzenleyin.

sudoedit /etc/network/interfaces


# The loopback network interface
auto lo
iface lo inet loopback

# Host-only interface
auto eth1
iface eth1 inet static
        address         192.168.56.20
        netmask         255.255.255.0
        network         192.168.56.0
        broadcast       192.168.56.255

# NAT interface
auto eth2
iface eth2 inet dhcp

Not eth1belirtilen varsayılan ağ geçidi bulunmamaktadır. eth2dhcp'den varsayılan bir ağ geçidi alır.


Mart 2018 Güncellemesi

Bkz bu cevabı dan @ Hugo14453 Ubuntu 17.10 ve daha yeni ile çalışan güncelleştirilmiş bir sürümü için.


1
Güncelleme: VirtualBox 4.3, iki arayüze olan ihtiyacı ortadan kaldırabilecek gibi görünen bir NAT hizmeti getirdi. 6.4. Ağ Adresi Tercüme Hizmeti
Christian Long

4
Bu bana çok yardımcı oldu, geliştirme için Virtualbox kullanıyorum ve evimdeyken, ağ kurulumunu istediğim gibi yaptığım için her şey düzgün çalışıyor, kabus başka bir ağa (aile, şirketler ... ), Web sitelerinin URL’lerini değiştirmem, bazı sistem dosyalarını silmem, yeniden başlatmam kaç kere olduğunu bilmiyorum ve liste devam ediyor. Bu çözüm mevcut ağınızla ilgilenmiyor, bu yüzden hoşuma gidiyor ... Sadece bilgisayarınızı herhangi bir ağa bağlayın ve işinize odaklanın.
Nabil Kadimi

1
Teşekkürler. Yalnızca ana bilgisayar arayüzü için bir ağ geçidi adresi tanımlamam sorunlarımı çözdü.
Florian,

2
Mükemmel. / etc / network / interfaces config, THANKS !!
Byron Whitlock

1
"Eth1'in belirtilen bir varsayılan ağ geçidi olmadığını unutmayın. Eth2, dhcp'den varsayılan bir ağ geçidi alacaktır." <- BU YORUM, ANAHTARDIR.
Pere Sayfa

16

Sorunumu Christian Long çözümü ile çözebilirim. 2 adaptör ekledim:

Adaptör 1 - NAT

Bağdaştırıcı 2 - yalnızca ana bilgisayar, vboxnet0

Tek fark VM'nin arayüz dosyalarındaydı:

sudoedit /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# NAT
auto eth0
iface eth0 inet dhcp
# Host only
auto eth1
iface eth1 inet dhcp

VirtualBox Ağ yapılandırmasında DHCP'yi kontrol ettim.

Bir VM yeniden başlatıldıktan sonra her şey yolunda gitti.


Bu benim için çalışıyor, ancak VM'lerin statik IP adresleri olmasını istiyorum. Bunu yaptığımda, internet çalışmayı bıraktı. Her ikisini de DHCP ile kurduysam, iyi çalışıyor. Yalnızca ana bilgisayar arabiriminin statik IP almasını nasıl sağlayabilirim?
Umar Farooq Khawaja

Çalışan sadece bir kişi. Teşekkürler. +1
Jorge Campos

14

Yeni bir NAT adaptörü oluşturmamız gerekmeyen başka basit bir yol var.

  1. Ana makinede lütfen aşağıdaki iptables kurallarını ekleyin. Bu, paketleri ana bilgisayardan ve Internet üzerinden iletecektir:

    sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT 
    
    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    sudo iptables -A POSTROUTING -t nat -j MASQUERADE
    
  2. Aşağıdaki komutu vererek ana makinede IP iletmeyi de etkinleştirmeniz gerekir:

    sudo sysctl -w net.ipv4.ip_forward=1
    

Bu sadece bir Linux sunucusunda çalışır.
Derek Mahar

Çalışan "dnsmasq" servisine ihtiyacımız var. Unix.stackexchange.com/a/384187/61742 bağlantısında @Danatela tarafından nelerin önerildiği hakkında tam bilgi sahibiyiz. Teşekkürler!
Eduardo Lucio

1
@EduardoLucio, Long Bui'ye kredi veriniz. Bu yazıyı daha okunaklı hale getirmek için henüz düzenleme yaptım.
Danatela

@Long Bui Katkılarınız için teşekkür ederiz! Yukarı! Yukarı! Yukarı! Yukarı! Yukarı! Yukarı! = D
Eduardo Lucio

12

Ağ yapılandırması Ubuntu 17.10.1’de değişmiştir. Şimdi netplan config'i kullanıyorsunuz.

Bu kılavuzu burada takip ettim

Christian'ın cevabını bir göç olarak, aşağıdakileri yapın:

Yalnızca ana bilgisayar adaptörünüzü tutmak için / etc / netplan içinde yeni bir config dosyası oluşturun.

Örneğin sudo nano /etc/netplan/02-netcfg.yaml

192.168.56.12 statik IP'sini yapılandırmak için aşağıdakini girin; burada enp0s3yalnızca ana bilgisayar adaptörünüzün adıdır.

network:
    version: 2
    renderer: networkd
    ethernets:
        enp0s3:
            addresses:
                - 192.168.56.12/24
            dhcp4: no

Sonra aşağıdaki iki komutu çalıştırın:

sudo netplan generate
sudo netplan apply

NAT konfigürasyon olmadan çalışmalı ifconfig, sonucu görmek için çalıştırın :

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.12  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe06:6cdd  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:06:6c:dd  txqueuelen 1000  (Ethernet)
        RX packets 252  bytes 23076 (23.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208  bytes 30015 (30.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.3.15  netmask 255.255.255.0  broadcast 10.0.3.255
        inet6 fe80::a00:27ff:fe4d:a6b8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:4d:a6:b8  txqueuelen 1000  (Ethernet)
        RX packets 95  bytes 94894 (94.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 85  bytes 7436 (7.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

1
Teşekkürler! Eski cevabıma bir güncelleme bölümü ekledim ve bu yeni bilgiye bağlantı verdim.
Christian Long,

Çözümünü takip ettim ama enp0s8 için nat desteğini özledim. Netplan'da enp0s8 için etkin dhcp4'ü el ile ekledim ve sonunda hem enp0s3 hem de enp0s8'i kaldırdım. Umarım bu birine yardımcı olur.
Dzmitry Prakapenka 13/18

3

Sadece 2 adaptör ekledim:

Yalnızca Bağdaştırıcı 1 ana bilgisayarı, vboxnet0

Adaptör2 NAT

Ve mükemmel çalışıyor, sanal makineye ana bilgisayardan erişebiliyorum ve vm'de internet var.


2

Evet bu problemi yaşadım tam bir acıydı! Ama basitçe Squid Cache Proxy sunucusunu fiziksel bilgisayarıma yükleyerek çözdüm ve bu şekilde - sadece ana bilgisayar sanal internet bilgisayarlarım internete bağlanabildi!

Burada 3 dakikalık hızlı bir rehber hazırladım - isteyen herkes için nasıl çalıştığını! http://b0zmeister.wordpress.com/allowing-host-only-virtualbox-guest-to-connect-to-the-internet/


Bu benim için harika çalıştı, paylaşım için teşekkürler. İşe yaramanın en basit yolu.
laurent

Laurent - hayır problem - yardımcı oldu sevindim! Virtualbox PC'leri farklı bir ağdan çalıştırmayı çok seviyorum - ama - internet bağlantısı çalışıyorken :)
B0zmeister

Bağlantı şimdi öldü. Talimatları buraya taşımayı düşünün.
s3v3n 21.03.2018
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.