如何从主机中查找 Vagrant 机器 IP 地址

通常,我们可以使用以下方法找到 Linux 机器的 IP 地址 ip 命令或 ifconfig 旧 Linux 发行版中的命令。 不管是物理机还是虚拟机。 如果我们可以访问系统,我们可以很容易地查看它的 IP 地址 ip 或者 ifconfig 命令。 如何在不登录的情况下找到 Vagrant 机器 IP 地址?

找到 Vagrant box 的 IP 地址的一种方法是首先使用以下命令通过 ssh 登录到 Vagrant 机器:

$ vagrant ssh

然后运行使用 ip 或者 ifconfig 或者 hostname 命令:

$ ip a

或者,

$ ifconfig

或者,

$ hostname -I

这是查找 Vagrant 机器 IP 地址的常用方法。

但是,这不是必需的。 我们实际上可以获取在 Vagrant 上运行的 VM 的本地网络 IP 地址,甚至无需 ssh 进入它。

查找 Vagrant 机器 IP 地址

首先,您需要使用命令找到正在运行的 Vagrant 虚拟机的 ID:

$ vagrant global-status

样本输出:

id       name    provider state   directory                           
----------------------------------------------------------------------
f4904ad  default libvirt shutoff /home/sk/Vagrant/Archlinux          
831f9c0  default libvirt shutoff /home/sk/Vagrant/Gentoo             
3587422  default libvirt shutoff /home/sk/Vagrant/Rhel8              
b2279ad  default libvirt running /home/sk/Vagrant/Almalinux8         
 
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date (use "vagrant global-status --prune" to prune invalid
entries). To interact with any of the machines, you can go to that
directory and run Vagrant, or you can use the ID directly with
Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

正如你在上面的输出中看到的,AlmaLinux vagrant box 当前正在运行,它的 ID 是 b2279ad.

要找到这台 Vagrant 机器的 IP 地址,只需运行:

$ vagrant ssh-config b2279ad

样本输出:

Host default
  HostName 192.168.122.143
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/sk/Vagrant/Almalinux8/.vagrant/machines/default/libvirt/private_key
  IdentitiesOnly yes
  LogLevel FATAL
查找 Vagrant 机器 IP 地址

正如您在上面的输出中看到的,在 Vagrant 上运行的 AlmaLinux 8 机器的 IP 地址是 192.168.122.143.

同样,您也可以找到其他正在运行的 Vagrant 盒子的 IP 地址。

有关 Vagrant 命令用法的更多详细信息,请参阅以下指南:

  • Vagrant 教程 – 在 Linux 中开始使用 Vagrant

奖金提示

我遇到了一个 讨论 在堆栈溢出。 有很多解决方案可以在该线程中找到 Vagrant box 的 IP 地址。

最简单的方法之一是转到 Vagrant 机器的项目目录并运行以下命令:

$ vagrant ssh -c "hostname -I | cut -d' ' -f2" 2>/dev/null

希望这可以帮助。

相关阅读:

  • 如何在 Vagrant 中配置网络
  • 如何查找 KVM 虚拟机的 IP 地址