そのため、MACブックのVagrantの「hashicorp / precise64」の設定に問題があります。
まず、私の設定:
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" 終わり
これは「浮浪者」の出力です
==> default:VMの正常なシャットダウンを試行しています... ==> default:ボックス 'hashicorp / precise64'が最新かどうかを確認しています... ==> default:以前に設定された転送ポートをクリアしています... ==> default:以前に設定したネットワークインターフェイスをクリアしています... ==> default:設定に基づいてネットワークインターフェースを準備しています... デフォルト:アダプター1:nat デフォルト:アダプター2:ブリッジ ==> default:ポートを転送しています... デフォルト:22 => 2222(アダプター1) ==> default:VMを起動しています... ==> default:マシンが起動するのを待っています。これには数分かかる場合があります... デフォルト:SSHアドレス:127.0.0.1:2222 デフォルト:SSHユーザー名:vagrant デフォルト:SSH認証方法:秘密鍵 デフォルト:警告:接続タイムアウト。再試行しています... ==> default:マシンが起動して準備完了です! GuestAdditions 4.3.10実行中--- OK。 ==> default:VMでゲストの追加を確認しています... ==> default:ホスト名を設定しています... ==> default:ネットワークインターフェースの設定と有効化... ==> default:共有フォルダをマウントしています... デフォルト:/ vagrant => / Users / garthm / Projects / vagrant ==> default:マシンはすでにプロビジョニングされています。「vagrant provision」を実行するか、「-provision」を使用します ==>デフォルト:プロビジョニングを強制します。常に実行するようにマークされたプロビジョナーは引き続き実行されます。
'ifconfig'は次を示します。
vagrant @ mddirector:〜$ ifconfig eth0リンクencap:Ethernet HWaddr 08:00:27:88:0c:a6 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr:fe80 :: a00:27ff:fe88:ca6 / 64 Scope:Link 放送実行中のマルチキャストMTU:1500メトリック:1 RXパケット:725エラー:0ドロップ:0オーバーラン:0フレーム:0 TXパケット:544エラー:0ドロップ:0オーバーラン:0キャリア:0 collisions:0 txqueuelen:1000 RXバイト:90824(90.8 KB)TXバイト:63375(63.3 KB) eth1リンクencap:Ethernet HWaddr 08:00:27:2f:bb:6a inet addr:10.0.24.118 Bcast:10.0.31.255 Mask:255.255.248.0 放送実行中のマルチキャストMTU:1500メトリック:1 RXパケット:3490エラー:0ドロップ:0オーバーラン:0フレーム:0 TXパケット:7エラー:0ドロップ:0オーバーラン:0キャリア:0 collisions:0 txqueuelen:1000 RXバイト:345981(345.9 KB)TXバイト:1102(1.1 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr::: 1/128 Scope:Host UPLOOPBACK RUNNING MTU:16436メトリック:1 RXパケット:0エラー:0ドロップ:0オーバーラン:0フレーム:0 TXパケット:0エラー:0ドロップ:0オーバーラン:0キャリア:0 collisions:0 txqueuelen:0 RXバイト:0(0.0 B)TXバイト:0(0.0 B)
私の問題は、ホストマシンからVMにpingできること(IP: 10.0.24.112
)、他の人が私のVMにもpingできること(10.0.24.XXX
)、VMがdevboxにpingできること(IP: 10.10.116.254
)、devboxから他の開発者の仮想マシンセットアップにpingできることです( VagrantではありませんIP: 10.10.116.254
)、しかし、私は自分のVMをdevboxからpingできず、他の開発者は自分のVMを彼らのdevboxからpingできません。
彼らが持っている仮想マシンのセットアップは、ブリッジされたNICのみを使用していますが、何らかの理由で迷走者はNATとブリッジの両方を持っていますが、設定でbridgedを指定しました。ご覧のとおり、Vagrant VMには2つのIPアドレスがありますが、これは正しくないようです。また、NATアダプタであるアダプタ1でポートフォワードを実行することもできます。つまり、すべてに対してデフォルトでNATアダプタを使用しているように聞こえます。
NATアダプターを削除し、ブリッジドのみを使用するにはどうすればよいですか?
VirtualBoxの設定を編集してNATアダプターを無効にすると、ブリッジされたアダプターのみが存在し、VirtualBoxを介してボックスを起動する(つまり、vagrant upを使用しない)場合、devboxからping可能な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()、proto、Bstr(strHostIp).raw()、RTStrToUInt16(strHostPort)、Bstr(strGuestIp).raw()、RTStrToUInt16(strGuestPort))」 VBoxManageModifyVM.cppファイルの1655行目
すぐに再び浮浪者を実行すると、NATアダプタが再び有効になり、同じ問題が再び発生します。