使用 virt-manager 運行虛擬機器時,什麼會導致網路遺失?

使用 virt-manager 運行虛擬機器時,什麼會導致網路遺失?

我是新手virt-managerqemu所以libvirt我幾乎不知道如何使用它們。我使用virt-manager的 GUI 讓我更輕鬆地從 VirtualBox(包括 VBoxManage)過渡到 KVM。

到目前為止,我知道如何使用 GUI 來建立我的虛擬機,但有一個巨大的問題:一旦我的虛擬機啟動 - 主機和來賓的網路就會失去連線。

無論是 NAT 還是橋接,一旦虛擬機啟動 - 主機和來賓都沒有網路。只要虛擬機正在運行,我就無法瀏覽網頁來查找解決方案 - 我必須將其關閉,然後恢復網路。

我去journalctl -r(和sudo)看看是什麼原因造成的。我不太擅長理解journalctl的輸出,所以我在這裡分享它,也許有人可以在我的日誌中找到問題?

Apr 20 19:01:41 myuser systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
Apr 20 19:01:32 myuser kernel: audit: type=1400 audit(1713628892.242:110): apparmor="STATUS" operation="profile_remove" profile="unconfined" name="libvirt-92b7cf2e-326>
Apr 20 19:01:32 myuser audit[59392]: AVC apparmor="STATUS" operation="profile_remove" profile="unconfined" name="libvirt-92b7cf2e-3262-4f04-ad63-37d5e4d94b70" pid=5939>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {newlink} index 7 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {newlink} index 7 address 52:54:00:6B:A6:9E mtu 1500
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {update} flags 4099 <UP>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {TX} 28 packets 3938 bytes
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {RX} 40 packets 3476 bytes
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {dellink} index 8 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {newlink} index 7 operstate 6 <UP>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {newlink} index 7 address 52:54:00:6B:A6:9E mtu 1500
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {update} flags 4163 <UP,RUNNING>
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {TX} 28 packets 3938 bytes
Apr 20 19:01:32 myuser connmand[1102]: virbr1 {RX} 40 packets 3476 bytes
Apr 20 19:01:32 myuser connmand[1102]: Remove interface (null) [ ethernet ]
Apr 20 19:01:32 myuser connmand[1102]: (null) {remove} index 8
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {dellink} index 8 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 address FE:54:00:DB:3A:50 mtu 1500
Apr 20 19:01:32 myuser connmand[1102]: (null) {del} address 169.254.64.167/16 label vnet2
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 address FE:54:00:DB:3A:50 mtu 1500
Apr 20 19:01:32 myuser connmand[1102]: (null) {del} route fe80:: gw :: scope 0 <UNIVERSE>
Apr 20 19:01:32 myuser connmand[1102]: Removing default interface route failed (No such device)
Apr 20 19:01:32 myuser connmand[1102]: Removing default interface route failed (No such device)
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 operstate 2 <DOWN>
Apr 20 19:01:32 myuser connmand[1102]: vnet2 {newlink} index 8 address FE:54:00:DB:3A:50 mtu 1500
Apr 20 19:01:32 myuser systemd-machined[935]: Machine qemu-3-linux2022 terminated.
Apr 20 19:01:32 myuser systemd[1]: machine-qemu\x2d3\x2dlinux2022.scope: Consumed 22.066s CPU time.
Apr 20 19:01:32 myuser systemd[1]: machine-qemu\x2d3\x2dlinux2022.scope: Deactivated successfully.
Apr 20 19:01:31 myuser systemd[1]: Started NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service.
Apr 20 19:01:31 myuser dbus-daemon[928]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Apr 20 19:01:31 myuser systemd[1]: Starting NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service...
Apr 20 19:01:31 myuser dbus-daemon[928]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service>
Apr 20 19:01:31 myuser NetworkManager[1101]: <info>  [1713628891.9478] device (vnet2): released from master device virbr1
Apr 20 19:01:31 myuser NetworkManager[1101]: <info>  [1713628891.9474] device (vnet2): state change: activated -> unmanaged (reason 'unmanaged', sys-iface-state: 'remo>
Apr 20 19:01:31 myuser avahi-daemon[925]: Withdrawing address record for 169.254.64.167 on vnet2.
Apr 20 19:01:31 myuser avahi-daemon[925]: Withdrawing address record for fe80::fc54:ff:fedb:3a50 on vnet2.
Apr 20 19:01:31 myuser avahi-daemon[925]: Leaving mDNS multicast group on interface vnet2.IPv4 with address ***.***.**.***.
Apr 20 19:01:31 myuser avahi-daemon[925]: Interface vnet2.IPv4 no longer relevant for mDNS.
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {newlink} index 7 operstate 2 <DOWN>
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {newlink} index 7 address 52:54:00:6B:A6:9E mtu 1500
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {update} flags 4099 <UP>
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {dellink} index 8 operstate 2 <DOWN>
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {newlink} index 7 operstate 6 <UP>
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {newlink} index 7 address 52:54:00:6B:A6:9E mtu 1500
Apr 20 19:01:31 myuser connman-vpnd[927]: virbr1 {update} flags 4163 <UP,RUNNING>
Apr 20 19:01:31 myuser kernel: virbr1: port 1(vnet2) entered disabled state
Apr 20 19:01:31 myuser kernel: device vnet2 left promiscuous mode
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {remove} index 8
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {dellink} index 8 operstate 2 <DOWN>
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {newlink} index 8 operstate 2 <DOWN>
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {newlink} index 8 address FE:54:00:DB:3A:50 mtu 1500
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {newlink} index 8 operstate 2 <DOWN>
Apr 20 19:01:31 myuser kernel: virbr1: port 1(vnet2) entered disabled state
Apr 20 19:01:31 myuser connman-vpnd[927]: vnet2 {newlink} index 8 address FE:54:00:DB:3A:50 mtu 1500

我已經啟用了libvirtfirewalld區域:hometrusted甚至public。這似乎不起作用。

使用 Debian 12.5 (Bookworm),LXQt 桌面 GUI

更新:當我將虛擬機器的網路設定為「隔離」時,我的虛擬機器上可能沒有任何網絡,但我的主機上的網路將會運作。它發生在非隔離網路上

更新2:我停止了firewalld,但這沒有幫助,所以這不是防火牆問題

請幫我解決這個問題。謝謝


對@AB 的回覆 -

更新 - 當虛擬機器開啟時(主機)*:

$ sudo bash -c "ip link; ip -br addr; ip route; ip rule; ip neigh"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 10:7b:44:93:7e:60 brd ff:ff:ff:ff:ff:ff
3: enx00e04c6802a7: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:e0:4c:68:02:a7 brd ff:ff:ff:ff:ff:ff
5: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:3a:4a:9b brd ff:ff:ff:ff:ff:ff
6: vnet0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether fe:54:00:d6:4a:49 brd ff:ff:ff:ff:ff:ff
lo               UNKNOWN        127.0.0.1/8 ::1/128 
enp3s0           UP             192.168.1.9/24 fe80::127b:44ff:fe93:7e60/64 
enx00e04c6802a7  DOWN           
virbr0           UP             192.168.100.1/24 
vnet0            UNKNOWN        169.254.149.177/16 fe80::fc54:ff:fed6:4a49/64 
0.0.0.0 dev vnet0 scope link 
default dev vnet0 scope link 
169.254.0.0/16 dev vnet0 proto kernel scope link src 169.254.149.177 
192.168.1.0/24 dev enp3s0 proto kernel scope link src 192.168.1.9 
192.168.1.1 dev enp3s0 scope link 
192.168.100.0/24 dev virbr0 proto kernel scope link src 192.168.100.1 
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default
192.168.1.6 dev enp3s0 lladdr 00:00:c0:34:14:db STALE 
192.168.100.202 dev virbr0 lladdr 52:54:00:d6:4a:49 STALE 
192.168.1.1 dev enp3s0 lladdr 74:da:88:d6:c8:e6 STALE 
198.252.206.25 dev vnet0 FAILED 
192.168.1.5 dev enp3s0 lladdr 50:eb:f6:24:85:a6 STALE 
fe80::76da:88ff:fed6:c8e6 dev enp3s0 lladdr 74:da:88:d6:c8:e6 router STALE 
fe80::9c7a:f1bb:ca7f:4c1e dev enp3s0 lladdr 50:eb:f6:24:85:a6 STALE 
$ sudo systemctl stop firewalld.service && sudo nft list ruleset
table ip filter {
}
table ip nat {
}
table ip mangle {
}
table ip6 filter {
}
table ip6 nat {
}
table ip6 mangle {
}
$ sudo cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.1.1
  • 正如我所說 - 當我在來賓上安裝 debian 時,我沒有終端(或者我不知道如何訪問它),所以我無法提供來賓的信息

答案1

在@AB 的幫助下,我找出了問題所在 - 以及......如何解決它!

connmandAB 給了我關於使用和NM(NetworkManager) 的提示。我開始調查這個問題,我發現它Virt-manager用於NM網絡,而我的設備/介面(enp3s0)是透過connmand(LXQt GUI 的一部分)控制的。

所以我做了以下事情:

  1. 我決定使用 NetworkManager 啟用我的裝置。NM說我的設備“嚴格不受管理”,所以我決定將我的設備從connman.這很複雜。我find對每個connman可能的目錄(在/var/lib和 中/etc)運行了該命令,但沒有發現與我的設備相關的任何內容。
  2. 我決定尋找NM的目錄 - 也許它在那裡配置?當我發現不:
  3. 我決定停止停用 connmand一陣子。但是,Virt-manager仍然無法使用該設備。
  4. 於是我就走極端了——我已經徹底淨化了connman*,永遠,並移至NM
  5. 仍然不起作用,但它是永遠的 - 因為一旦我從文件中評論了該設備/etc/network/interfacesNM就控制了它(在 的幫助下sudo nmcli device set enp3s0 managed true),我終於讓它正常工作了NM
  6. 重新啟動(因為我從Windows開始就習慣了,儘管我沒有必要),現在我在客戶端和主機中都有網路!

相關內容