そのため、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アダプタが再び有効になり、同じ問題が再び発生します。