따라서 MAC 책에 'hashicorp / precise64'의 Vagrant 설정에 문제가 있습니다.
먼저 내 구성 :
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precise64" config.vm.network "public_network", 다음을 입력하십시오 : "dhcp", : bridge => 'en4 : Thunderbolt Ethernet' config.vm.hostname = "mddirector" 종료
이것은 '방랑자'의 배상
==> 기본값 : VM의 정상적인 종료 시도 중 ... ==> 기본값 : 'hashicorp / precise64'상자가 최신인지 확인 중 ... ==> 기본값 : 이전에 설정 한 전달 포트를 지우는 중 ... ==> 기본값 : 이전에 설정 한 네트워크 인터페이스 지우기 ... ==> 기본값 : 구성을 기반으로 네트워크 인터페이스 준비 중 ... 기본값 : 어댑터 1 : nat 기본값 : 어댑터 2 : 브리지 ==> 기본값 : 전달 포트 ... 기본값 : 22 => 2222 (어댑터 1) ==> 기본값 : VM 부팅 중 ... ==> 기본값 : 머신 부팅 대기 중. 이 작업은 몇 분 정도 걸릴 수 있습니다... 기본값 : SSH 주소 : 127.0.0.1:2222 기본 : SSH 사용자 이름 : 방랑자 기본값 : SSH 인증 방법 : 개인 키 기본값 : 경고 : 연결 시간이 초과되었습니다. 다시 시도하는 중 ... ==> 기본값 : 머신 부팅 및 준비 완료! GuestAdditions 4.3.10 실행 중 --- 확인. ==> 기본값 : VM에서 게스트 추가 확인 중 ... ==> 기본값 : 호스트 이름 설정 중 ... ==> 기본값 : 네트워크 인터페이스 구성 및 활성화 ... ==> 기본값 : 공유 폴더 마운트 중 ... 기본값 : / vagrant => / Users / garthm / Projects / vagrant ==> 기본값 : 머신이 이미 프로비저닝되었습니다. `vagrant provision`을 실행하거나`--provision`을 사용하십시오 ==> 기본값 : 프로비저닝을 강제합니다. 실행 표시가 된 프로 비져는 항상 실행됩니다.
'ifconfig'는 다음을 보여줍니다.
vagrant @ mddirector : ~ $ ifconfig eth0 링크 캡슐화 : 이더넷 HWaddr 08 : 00 : 27 : 88 : 0c : a6 inet addr : 10.0.2.15 Bcast : 10.0.2.255 마스크 : 255.255.255.0 inet6 주소 : fe80 :: a00 : 27ff : fe88 : ca6 / 64 범위 : 링크 브로드 캐스트 실행 MULTICAST MTU : 1500 미터법 : 1 RX 패킷 : 725 오류 : 0 삭제 : 0 오버런 : 0 프레임 : 0 TX 패킷 : 544 오류 : 0 삭제 : 0 오버런 : 0 캐리어 : 0 충돌 : 0 txqueuelen : 1000 수신 바이트 : 90824 (90.8KB) TX 바이트 : 63375 (63.3KB) eth1 링크 캡슐화 : 이더넷 HWaddr 08 : 00 : 27 : 2f : bb : 6a inet addr : 10.0.24.118 Bcast : 10.0.31.255 마스크 : 255.255.248.0 브로드 캐스트 실행 MULTICAST MTU : 1500 미터법 : 1 RX 패킷 : 3490 오류 : 0 삭제 : 0 오버런 : 0 프레임 : 0 TX 패킷 : 7 오류 : 0 삭제 : 0 오버런 : 0 캐리어 : 0 충돌 : 0 txqueuelen : 1000 수신 바이트 : 345981 (345.9KB) TX 바이트 : 1102 (1.1KB) lo 링크 encap : 로컬 루프백 inet addr : 127.0.0.1 마스크 : 255.0.0.0 inet6 addr : :: 1/128 범위 : 호스트 루프백 실행 MTU : 16436 메트릭 : 1 RX 패킷 : 0 오류 : 0 삭제 : 0 오버런 : 0 프레임 : 0 TX 패킷 : 0 오류 : 0 삭제 : 0 오버런 : 0 캐리어 : 0 충돌 : 0 txqueuelen : 0 수신 바이트 : 0 (0.0B) TX 바이트 : 0 (0.0B)
내 문제는 내 호스트 컴퓨터 ( IP: 10.0.24.112
)에서 VM을 ping 할 수 있고 다른 사람들도 10.0.24.XXX
내 VM을 ping 할 수 있고 ( ), 내 VM은 내 devbox IP: 10.10.116.254
를 ping 할 수 있으며, 다른 개발자에게 내 devbox에서 가상 머신 설정을 핑 할 수 있다는 것입니다 ( Vagrant가 아닌 IP: 10.10.116.254
), 내 devbox에서 내 VM을 ping 할 수 없으며 다른 개발자는 자신의 devbox에서 내 VM을 ping 할 수 없습니다.
그들이 가지고있는 가상 머신 설정은 브리지 NIC에서만 가능하지만, 어떤 이유로 든 방랑자는 NAT와 브리지가 있습니다.하지만 구성에서 브리지를 지정했습니다. 보시다시피 Vagrant VM에 대한 두 개의 IP 주소가 있습니다. 또한 부팅 할 때 NAT 어댑터 인 어댑터 1에서 포트 포워드를 수행 할 수 있습니다. 즉, 기본적으로 NAT 어댑터를 사용하는 것처럼 들립니다.
NAT 어댑터를 제거하고 브리지 전용 만 사용하려면 어떻게합니까?
VirtualBox 설정을 편집하고 NAT 어댑터를 비활성화하면 브리지 된 어댑터 만 있고 VirtualBox를 통해 상자를 부팅 할 수 있습니다 (예 : vagrant up 사용 안 함). devbox에서 핑할 수있는 IP 주소를 가진 eth0 만 있습니다 , 내가 찾고있는 것입니다. VirtualBox 설정을 편집하고 NAT 어댑터를 비활성화 한 후 상자를 비우려고하면 다음 오류가 발생합니다.
Vagrant에서 사용하는 CLI 인 'VBoxManage'를 실행하는 중에 오류가 발생했습니다. VirtualBox를 제어합니다. 명령과 stderr은 아래와 같습니다. 명령 : [ "modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222,, 22"] Stderr : VBoxManage : 오류 :이 이름의 NAT 규칙이 이미 존재합니다 VBoxManage : 오류 : 세부 정보 : 코드 NS_ERROR_INVALID_ARG (0x80070057), 구성 요소 NATEngine, 인터페이스 INATEngine, 수신자 nsISupports VBoxManage : 오류 : 컨텍스트 : "AddRedirect (Bstr (strName) .raw (), 프로토, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort))") VBoxManageModifyVM.cpp 파일의 1655 행
내가 즉시 다시 vagrant up을하면 NAT 어댑터를 다시 활성화했으며 동일한 문제가 다시 발생합니다.