Najít IP adresu hostujícího virtuálního stroje KVM Linux není velký problém. Pokud máte konzolový přístup k virtuálnímu počítači, můžete snadno zjistit IP adresu hosta KVM pomocí ip
příkaz. Je však také možné identifikovat IP adresu virtuálního počítače KVM, aniž byste museli přistupovat k jeho konzoli. V tomto tutoriálu se podíváme na několik různých způsobů, jak zjistit IP adresu virtuálního počítače KVM (host) v Linuxu.
Najděte IP adresu virtuálního počítače KVM
IP adresu hostujícího virtuálního počítače KVM můžeme najít buď z virsh rozhraní příkazového řádku nebo prostřednictvím jakýchkoli grafických nástrojů pro správu KVM, jako je Virt-manager .
Nejprve uvidíme způsob příkazového řádku.
A. Najděte IP adresu virtuálních strojů KVM pomocí příkazu virsh
Virsh je rozhraní příkazového řádku pro vytváření a správu hostujících virtuálních strojů KVM. Poskytuje následující dva příkazy k nalezení IP adresy virtuálního počítače:
- net-dhcp-leases,
- domifaddr.
1. Net-dhcp-leases
net-dhcp-leases
příkaz získá informace o zápůjčkách DHCP pro danou virtuální síť a/nebo dané síťové rozhraní.
Ujistěte se, že váš virtuální počítač běží!
Nejprve vypište dostupné virtuální sítě v hostiteli KVM. Chcete-li to provést, spusťte:
$ virsh net-list
Ukázkový výstup:
Name State Autostart Persistent -------------------------------------------- default active yes yes

Jak můžete vidět, můj hostitel KVM má virtuální síť s názvem default
. Toto je privátní virtuální síťový most vytvořený standardně KVM. Poskytuje svou vlastní podsíť a DHCP pro konfiguraci sítě hosta a pro přístup k hostitelské síti používá NAT.
Podívejme se na základní informace pro default
virtuální síť:
$ virsh net-info default
Ukázkový výstup:
Name: default UUID: ce25d978-e455-47a6-b545-51d01bcb9e6f Active: yes Persistent: yes Autostart: yes Bridge: virbr0
Protože KVM má vlastní DHCP, můžeme zjistit IP adresu, která byla přiřazena každému virtuálnímu stroji KVM, pomocí tohoto příkazu:
$ virsh net-dhcp-leases default
Ukázkový výstup:
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID --------------------------------------------------------------------------------------------------------------- 2020-07-25 18:51:53 52:54:00:42:b6:5a ipv4 192.168.122.119/24 centos8 01:52:54:00:42:b6:5a 2020-07-25 18:54:04 52:54:00:61:2a:88 ipv4 192.168.122.20/24 centos8uefi 01:52:54:00:61:2a:88

Nemusíte se přihlašovat k virtuálnímu počítači. Z terminálu hostitele KVM můžeme snadno najít IP adresy všech běžících virtuálních strojů KVM.
2. domifaddr
Druhým způsobem, jak zjistit IP adresu virtuálního počítače KVM z příkazového řádku, je dotaz na IP adresu hostujícího operačního systému pomocí "domifaddr" příkaz.
Nejprve získáme seznam běžících hostujících počítačů KVM:
$ virsh list
Ukázkový výstup:
Id Name State ------------------------------ 1 centos8 running 2 centos8-uefi running
Jak vidíte ve výstupu, běží dva hosté KVM! Chcete-li najít IP adresu virtuálního počítače KVM s názvem "centos8", spusťte:
$ virsh domifaddr centos8
Ukázkový výstup:
Name MAC address Protocol Address ------------------------------------------------------------------------------- vnet0 52:54:00:42:b6:5a ipv4 192.168.122.119/24

B. Najděte IP adresu virtuálních strojů KVM pomocí příkazu arp
ARP , znamená A adresa R rozlišení P rotocol, se používá k nalezení adresy řízení přístupu k médiím sousední sítě pro danou adresu IPv4.
Manipuluje nebo zobrazuje mezipaměť sousedů sítě IPv4 jádra. Může přidávat položky do tabulky, mazat jeden nebo zobrazovat aktuální obsah.
Pokud příkaz arp není k dispozici, nainstalujte „net-tools“ balíček.
Na Debianu, Ubuntu:
$ sudo apt install net-tools
Na CentOS, RHEL:
$ sudo dnf install net-tools
Chcete-li najít IP adresu virtuálního počítače KVM v Linuxu pomocí arp
příkaz, jednoduše spusťte:
$ arp -n
Ukázkový výstup:
Address HWtype HWaddress Flags Mask Iface 192.168.122.20 ether 52:54:00:61:2a:88 C virbr0 192.168.225.34 ether 7c:d3:0a:0c:6b:9a C wlp9s0 192.168.225.1 ether 12:b0:25:2b:ec:19 C wlp9s0 192.168.122.119 ether 52:54:00:42:b6:5a C virbr0

Všimli jste si virbr0
položky ve výše uvedeném příkazu? Je to naše virtuální síťové rozhraní KVM, takže IP adresy virtuálních počítačů KVM jsou 192.168.122.119 a 192.168.122.20.
Je v pořádku, pokud je spuštěn pouze jeden nebo několik virtuálních počítačů. Ale pokud jich máte hodně, jak víte, která MAC adresa odpovídá té, kterou chcete? Zde je domiflist
a dumpxml
příkazy se hodí.
Najděte seznam spuštěných virtuálních počítačů:
$ virsh list
Získejte MAC adresu libovolného běžícího virtuálního počítače, například centos8, pomocí příkazu:
$ virsh domiflist centos8
Ukázkový výstup:
Interface Type Source Model MAC ------------------------------------------------------------- vnet0 network default virtio 52:54:00:42:b6:5a
Nakonec najděte IP adresu spojenou s výše uvedenou mac adresou:
$ arp -n | grep 52:54:00:42:b6:5a
Nebo,
$ arp -an | grep 52:54:00:42:b6:5a
Ukázkový výstup:
? (192.168.122.119) at 52:54:00:42:b6:5a [ether] on virbr0

C. Najděte IP adresu virtuálních strojů KVM pomocí GUI Virt-manager
Správce Virt je grafická alternativa k nástroji příkazového řádku Virsh. Pokud jste jej již nainstalovali do svého hostitele KVM, nalezení IP adresy všech běžících virtuálních strojů KVM je neuvěřitelně snadné!
Otevřete aplikaci Virt-manager a dvakrát klikněte na libovolný běžící virtuální stroj. Dále klikněte na „Zobrazit virtuální pevné podrobnosti“ ikonu na liště nabídek. Nakonec klikněte na „NIC :xx:xx:xx“ zařízení ze seznamu a na pravé straně uvidíte IP adresu KVM VM.

Doufám, že to pomůže.
Související čtení:
- Jak najít IP adresu Vagrant Machine z hostitele
Doporučený obrázek od Bretta Saylese z Pexels .