【问题标题】:Vagrant can't assign static ip to boxVagrant 无法为 box 分配静态 ip
【发布时间】:2016-07-12 16:09:33
【问题描述】:

我的 Vagrant 文件中有以下内容。

config.vm.network "private_network", ip: "192.168.33.12"

当我“vagrant up”时,vagrant 正在分配 127.0.0.1。我不确定是什么原因造成的。下面是完整的跟踪。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => C:/vm2
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

【问题讨论】:

    标签: vagrant virtual-machine virtualbox static-ip-address virtual-ip-address


    【解决方案1】:

    你在这里看到的

    默认:SSH 地址:127.0.0.1:2200

    不是您的虚拟机 IP 地址 - 这只是为了让 vagrant 使用可用端口(在您的情况下为 2200)通过 ssh 进入盒子。 vagrant 在您的 VM 上配置 eth0 接口以与主机通信

    登录虚拟机并运行ifconfig,您将看到(至少)2 个可用接口,10.0.2.15 上的 eth0 和192.168.33.12 上的 eth1 可用

    【讨论】:

      【解决方案2】:

      作为一种简写方式,您可以从主机运行 oneliner 来查看客户机上分配的 IP:

      $ vagrant ssh -c "ifconfig | grep 'inet addr'"
      

      这会给你这样的输出:

            inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
            inet addr:192.168.200.200  Bcast:192.168.200.255  Mask:255.255.255.0
            inet addr:127.0.0.1  Mask:255.0.0.0
      

      【讨论】:

        【解决方案3】:

        以下是我在设置 Ubuntu 机器的静态 ip 时选择的步骤:

        ls /etc/netplan/ //go to this directory to find the config file
        

        注意:YAML 文件对缩进非常严格,例如

          dhcp4:true //will give wrong indentation error
          dhcp4: true //right way to give
        

        现在编辑配置文件:-

         sudo nano /etc/netplan/01-netcfg.yaml 
        

        更改默认设置:-

        network:
          version: 2
          renderer: networkd
          eth0:
            dhcp4: true
            dhcp6: false
            optional: true
            nameservers:
            addresses: [8.8.8.8,8.8.4.4]
        

        network:
        version: 2
        renderer: networkd
        ethernets:
           eth0:
           dhcp4: no
           addresses: [172.28.32.11/16] //here choose your desired IP
           gateway4: 172.28.32.1     //provide the gateway address,
           nameservers:
           addresses: [8.8.8.8,8.8.4.4] 
        

        现在做:

        sudo netplan apply // to apply the network settings
        

        然后您可以检查在 vagrant halt/up 之间的任何过程中 ip 地址是否保持不变

        【讨论】:

          【解决方案4】:

          这是我为 vagrant 的虚拟套装机所做的:

          将此添加到 vagrant 文件中:-

          config.vm.network "private_network", ip: "你选择的任何 IP 地址"

          然后进行 Vagrant Reload,你应该会很好。

          如果 VM 在重试连接或 ssh 时卡住 Vagrant Up 命令,请执行以下操作:-

          从cmder控制台运行以下命令:-

          vagrant 插件安装 vagrant-vbguest

          在此之后,通过将以下内容添加到 vagrant 文件来启用 Vagrant GUI:-

          config.vm.provider :virtualbox do |vb| 
            vb.gui = true
          end 
          

          现在做流浪汉

          vagrant gui窗口将打开并按住“S”跳过并进入登录屏幕

          使用用户名/密码登录,默认为root/vagrant

          并运行以下命令:-

          sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
          

          现在从 vagrant gui 窗口外壳中出来 删除之前添加的用于启用 vagrant gui 的行

          从cmder控制台再次“流浪”

          完成!

          【讨论】:

            猜你喜欢
            • 2014-01-06
            • 2015-03-12
            • 2013-07-06
            • 1970-01-01
            • 1970-01-01
            • 2016-12-18
            • 2021-02-01
            • 1970-01-01
            • 2015-09-14
            相关资源
            最近更新 更多