나는했다 정확한 I 자세하게 문제 및 솔루션을 설명 행복 해요, 그래서 같은 문제 및 해상도를 통해 보았다.
VPN을 포함하지 않고
VPN을 사용 하지 않고 요구 사항을 충족하기 위해 필요한 구성을 이해하는 것이 중요합니다 . 또한이 정보는 호스트 나 게스트 모두에서 소프트웨어 방화벽이 방해하지 않는다고 가정합니다.
VPN이 없으면 일반적으로 가상 시스템 구성에 두 개의 네트워크 어댑터를 만들어 해결합니다.
첫 번째 어댑터는 NAT
mode 로 설정해야 게스트가 호스트의 네트워크 인터페이스를 통해 네트워크 리소스 (인터넷 포함)에 액세스 할 수 있습니다.
두 번째 어댑터는로 설정해야하므로 Host-only
호스트와 게스트 간의 양방향 통신이 가능합니다.
이 어댑터는 호스트 전용 어댑터를 구성하기 위해 VirtualBox의 글로벌 네트워킹 환경 설정을 수정해야하기 때문에 첫 번째 어댑터보다 설정이 약간 더 복잡합니다 (주 : 관리자 권한이 필요함).
VirtualBox에서로 이동하십시오 File -> Preferences -> Network
. 클릭 Host-only Networks
탭을하고 작은 클릭 +
새 어댑터를 추가하는 아이콘을. VirtualBox의 권한을 상승하라는 메시지가 표시됩니다.
Adapter
탭 작성 은 필수입니다. 다음과 같이 보일 것입니다 (어댑터는 무시하십시오 #2
; 관련없는 것에 사용됩니다) :
DHCP
서버 탭 의 값 은 선택 사항입니다. 게스트의 네트워킹 구성에서이 어댑터의 IP 주소를 하드 코딩하려는 경우 이러한 값이 필요하지 않습니다. 반면에 DHCP를 사용하려는 경우 값은 다음과 같습니다.
VirtualBox 구성과 관련된 마지막 단계는 VM의 네트워크 구성으로 돌아가서 방금 만든 호스트 전용 어댑터를 참조하는 두 번째 어댑터를 추가하는 것입니다.
이제 게스트 운영 체제에서이 두 네트워크 인터페이스를 사용하도록 네트워크를 구성해야합니다.
데비안 또는 우분투 GNU / 리눅스에서는 /etc/network/interfaces
다음과 같이 수정 하는 것만 큼 간단 합니다.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
(순수한 사람이 /etc/network/interfaces.d
대신 디렉토리 를 사용하는 것을 선호 할 수도 있지만,이 설명의 범위를 벗어납니다)
게스트의 네트워킹 서비스를 다시 시작하거나 전체 게스트 VM을 다시 시작하면 모든 것이 "작동"합니다.
이 시점에서 게스트 VM을 ping하고 192.168.56.101
응답을받을 수 있어야합니다 (소프트웨어 방화벽이 방해가되지 않는 경우).
마찬가지로에서 호스트를 ping 할 수 있어야합니다 10.0.2.2
. 이 IP 주소는 VirtualBox의 NAT 구현에 "하드 코딩 된"것으로 보이거나 적어도 분명하지 않은 구성 지시문을 통해 지정된 것으로 보이며 그 출처에 대한 정보는 거의 없습니다. 그러나 아아, "그냥 작동합니다".
이 구성이 주어지면 질문에 요약 된 세 가지 조건이 모두 충족됩니다.
입력 : VPN
그러나 여기에 문지름이 있습니다. VPN을 도입하면 성능 저하 문제가 발생합니다 (특정 VPN 및 해당 구성에 따라 다름).
최신 VPN은 분할 터널링 이 가능 하며, 위에서 언급 한 VirtualBox 구성이 세 가지 요구 사항에 따라 작동하는 데 필요합니다. (좋은) 보안상의 이유로 분할 터널링은 종종 비활성화되어 있으며 이는 귀하의 경우 (및 광산)의 문제입니다.
VPN에 연결하면 VPN 클라이언트 (내 경우에는 Cisco AnyConnect Secure Mobility Client, 3.1.02026)가 호스트 컴퓨터의 라우팅 테이블을 검사하고이를 기억 한 다음 일반적으로 중앙에서 가져온 값으로 포장합니다. 관리되는 위치 (예 : 로컬 관리자 권한이 있어도 설정을 무시할 수 없음)
command.exe
Windows에서 다음 을 열어 라우팅 테이블을 직접 확인할 수 있습니다 .
C:\>route print
VPN에 연결하기 전에 라우팅 테이블에는이 VirtualBox 구성이 올바르게 작동 할 수있는 중요한 항목이 포함되어 있습니다. VPN에 연결하면 이러한 항목이 제거되어 호스트와 게스트 간의 통신이 차단됩니다.
(이 동작의 근본 원인과 관련이 없기 때문에 여기서 생략 한 다른 항목이 많이 있습니다.)
VPN에 연결하기 전에 :
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
192.168.56.255 255.255.255.255 On-link 192.168.56.1 266
224.0.0.0 240.0.0.0 On-link 192.168.56.1 266
255.255.255.255 255.255.255.255 On-link 192.168.56.1 266
VPN에 연결 한 후 :
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
224.0.0.0 240.0.0.0 On-link 192.168.56.1 266
255.255.255.255 255.255.255.255 On-link 192.168.56.1 266
VPN 클라이언트는 다음 줄을 제거합니다.
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.255 255.255.255.255 On-link 192.168.56.1 266
마지막 두 항목이 없으면 호스트와 게스트가 통신 할 수 없으며 이는 VPN 구성에서 분할 터널링이 비활성화 된 경우의 의도 된 동작입니다.
일반적으로이 두 명령은 해당 경로를 복원합니다.
C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266
그러나 VPN 클라이언트는 경계를 유지합니다. 라우팅 테이블을 수정하려는 시도를 차단합니다. 내 고객은 두 번째 항목은 허용하지만 첫 번째 항목은 허용하지 않는 것 같습니다. (그리고 그것은 정기적으로 둘 다 포장 될 수 있습니다. 나는 그것을 테스트하지 않았습니다.)
경우 특정 VPN 및 부수적 인 구성이 활성화 될 스플릿 터널링을 허용, 그것은 일반적으로 전환-에이 같은 :
VPN에서 연결을 끊으면 올바르게 작동하는 VPN 클라이언트는 연결하기 전에 있던 라우팅 테이블을 복원합니다. VPN 클라이언트가이 작업을 안정적으로 수행하는 것 같습니다. VPN에 연결하거나 연결을 끊을 때 게스트 VM을 다시 시작할 필요가 없기 때문에 유리합니다. 이러한 경우 VM의 보조 어댑터는 재설정되지만 IP 주소를 자동으로 투명하게 다시 가져와 호스트와 게스트 간의 통신을 거의 즉시 복원합니다. 더 좋은 것은 호스트와 게스트 사이의 NFS 마운트 (CIFS 마운트를 사용하고 있음)는 VPN 연결 / 연결 끊기 작업을 통해 연결된 상태를 유지하는 것입니다.
VPN이 분할 터널링을 허용하는 경우는 드물지만, VPN을 활성화하는 것이 간단 할 수 있습니다.이 경우 "모든 것이 제대로 작동하는지"에 대한 의견을 듣고 싶습니다.