VirtualBox에서 인터넷에 액세스 할 수있는 호스트 전용 가상 컴퓨터를 어떻게 설정합니까?


98

VirtualBox로 가상 머신을 설정할 때 종종 다음 특성을 원합니다.

  • vm에는 고정 IP가 있습니다
  • 호스트는 포트 전달없이 vm에 액세스 할 수 있습니다
  • vm은 인터넷에 액세스 할 수 있습니다
  • VM 보안 또는 재구성에 대한 걱정없이 랩톱을 네트워크에서 네트워크로 (예 : 집에서 사무실로, 커피 숍으로) 이동할 수 있습니다.

VirtualBox 네트워크 연결 방법은 이러한 요구 사항을 자체적으로 규정하지 않습니다.

  • NAT
    호스트에서 vm에 연결하려면 포트 전달이 필요합니다.

  • 호스트 전용
    호스트가 라우터가 아니면 vm은 인터넷에 액세스 할 수 없습니다.

  • 브리지
    vm을 네트워크에 노출합니다. 휴대용이 아닙니다.

답변:


110

vm에 두 개의 어댑터를 설정하여 원하는 설정을 얻을 수 있습니다.

VirtualBox 4.2.12
우분투 12.04 게스트

VirtualBox> 환경 설정> 네트워크에서 호스트 전용 네트워크를 설정하십시오.

광산은 vboxnet0이라고하며 수동으로 구성됩니다 :
ip 192.168.56.1
netmask 255.255.255.0
no dhcp

VirtualBox 네트워크 구성 VirtualBox 네트워크 구성

그런 다음 가상 머신의 네트워크 설정에서 두 개의 어댑터를 설정하십시오.

어댑터 1
호스트 만, vboxnet0

어댑터 2
NAT

가상 머신을 부팅하고 VirtualBox가 제공하는 콘솔을 통해 로그인하십시오.

어댑터를 보려면 이것을 실행하십시오.

ls /sys/class/net

필자의 경우 어댑터 이름은 eth1 및 eth2 (및 루프백 인터페이스)입니다.

그런 다음 네트워크 구성을 편집하십시오.

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

참고 eth1지정된 디폴트 게이트웨이가 없습니다. eth2dhcp에서 기본 게이트웨이를 얻습니다.


2018 년 3 월 업데이트

Ubuntu 17.10 이상에서 작동하는 업데이트 된 버전 은 @ Hugo14453 의이 답변 을 참조하십시오 .


1
업데이트 : VirtualBox 4.3에는 두 개의 인터페이스가 필요하지 않은 것처럼 보이는 NAT 서비스가 도입되었습니다. 6.4. 네트워크 주소 번역 서비스
Christian Long

4
이것은 나에게 많은 도움이되었고, 개발을 위해 Virtualbox를 사용하며, 내가 집에있을 때 원하는대로 네트워크 설정을 한 후 모든 것이 올바르게 작동하고 다른 네트워크 (가족, 회사 ... ), 웹 사이트 URL을 변경하고 일부 시스템 파일을 삭제 한 후 재부팅해야합니다. 몇 번이고 목록이 계속되는지 모르겠습니다. 이 솔루션은 현재 네트워크에 신경 쓰지 않기 때문에 내가 좋아하는 이유는 ... PC를 모든 네트워크에 연결하고 작업에 집중하십시오.
Nabil Kadimi

1
감사. 호스트 전용 인터페이스에 게이트웨이 주소를 정의하지 않으면 문제가 해결되었습니다.
Florian

2
완전한. / etc / network / interfaces 구성은 핵심 감사였습니다 !!!!
바이런 휘트 락

1
"eth1에는 기본 게이트웨이가 지정되어 있지 않습니다. eth2는 dhcp에서 기본 게이트웨이를 가져옵니다." <-이 의견이 핵심입니다.
Pere Pages

16

Christian Long 솔루션을 혼합하여 문제를 해결할 수 있습니다. 나는 2 개의 어댑터를 추가했다 :

어댑터 1-NAT

어댑터 2-호스트 전용, vboxnet0

유일한 차이점은 VM의 인터페이스 파일에있었습니다.

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 Network 구성에서 DHCP를 체크 상태로 두었습니다.

VM을 재부팅 한 후 모든 것이 정상적으로 작동했습니다.


이것은 저에게 효과적이지만 VM에 고정 IP 주소가 필요합니다. 그렇게하는 순간 인터넷이 작동을 멈 춥니 다. DHCP로 둘 다 설정하면 정상적으로 작동합니다. 호스트 전용 인터페이스를 고정 IP로 만들려면 어떻게합니까?
Umar Farooq Khawaja

일한 사람 만 감사. +1
Jorge Campos

14

새로운 NAT 어댑터를 만들 필요가없는 또 다른 간단한 방법이 있습니다

  1. 호스트 컴퓨터에서 다음 iptables 규칙을 추가하십시오. 이렇게하면 호스트를 통해 인터넷으로 패킷이 전달됩니다.

    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. 다음 명령을 실행하여 호스트에서 IP 전달을 사용 가능하게해야합니다.

    sudo sysctl -w net.ipv4.ip_forward=1
    

이것은 Linux 호스트에서만 작동합니다.
Derek Mahar

"dnsmasq"서비스가 실행 중이어야합니다. 링크 unix.stackexchange.com/a/384187/61742 에는 @Danatela 가 제안한 것에 대한 완전한 정보가 있습니다. 감사!
Eduardo Lucio

1
@EduardoLucio는 Long Bui에게 크레딧을주세요. 이 게시물을 더 읽기 쉽게 편집했습니다.
Danatela

@Long Bui 기부 해 주셔서 감사합니다! 쪽으로! 쪽으로! 쪽으로! 쪽으로! 쪽으로! 쪽으로! = D
Eduardo Lucio

12

Ubuntu 17.10.1에서 네트워크 구성이 변경되었습니다. 이제 netplan 구성을 사용하십시오.

나는이 가이드를 따라 여기에

그리스도인의 대답의 마이그레이션으로 다음을 수행하십시오.

호스트 전용 어댑터 구성을 보유하도록 / etc / netplan 내에 새 구성 파일을 작성하십시오.

예 : sudo nano /etc/netplan/02-netcfg.yaml

고정 IP 192.168.56.12를 구성하려면 다음을 입력하십시오. 여기서 enp0s3호스트 전용 어댑터의 이름입니다.

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

그런 다음 다음 두 명령을 실행하십시오.

sudo netplan generate
sudo netplan apply

NAT는 구성없이 작동해야 ifconfig합니다. 결과를 보려면 실행 하십시오.

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
감사! 이전 답변에 업데이트 섹션을 추가 하고이 새로운 정보에 연결했습니다.
Christian Long

나는 당신에게 해결책을 따랐지만 enp0s8에 대한 nat 지원을 그리워했습니다. netplan에서 enp0s8에 대해 활성화 dhcp4를 수동으로 추가하고 마지막으로 enp0s3과 enp0s8을 모두 얻습니다. 이것이 누군가를 도울 수 있기를 바랍니다.
Dzmitry Prakapenka

3

방금 2 개의 어댑터를 추가했습니다.

어댑터 1 호스트 만, vboxnet0

어댑터 2 NAT

완벽하게 작동하고 호스트에서 가상 머신에 액세스 할 수 있으며 VM에 인터넷이 있습니다.


2

그래, 나는이 문제가 있었는데 그것은 총 고통이었다! 그러나 실제 PC에 Squid Cache Proxy 서버를 설치하여 문제를 해결했습니다. 호스트 전용 인터넷 가상 박스 PC는 인터넷에 연결할 수 있습니다!

나는 여기서 3 분 동안 빠른 가이드를했다. http://b0zmeister.wordpress.com/allowing-host-only-virtualbox-guest-to-connect-to-the-internet/


공유해 주셔서 감사합니다. 그것은 모든 것을 작동시키는 가장 간단한 방법입니다.
laurent

안녕하세요 Laurent-문제 없습니다-도움이되어 기쁩니다! 다른 네트워크
가상

링크가 죽었습니다. 여기에서 지시 사항을 이동하십시오.
s3v3n
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.