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.