Bridge (br0) — a virtual switch on the host. The host's physical NIC plugs into it and VMs attach to it. Each machine (host, VM, phone) keeps its own IP on the same subnet.
        systemd-networkd — i will be using EndevourOS but any distro with systemd will work. please note! the enp1s0 is placeholder. Your eth NIC may be different.
        please use ip a to find yours
      
Place these files in /etc/systemd/network/. Prefixes (10-,20-,30-) control ordering.
if dir or files do not exist, it is perfectly safe to create it :)
10-br0.netdev — create bridge device[NetDev]
Name=br0
Kind=bridge
      20-enp1s0.network — enslave your NIC to the bridge[Match]
Name=enp1s0
[Network]
Bridge=br0
      30-br0-static.network — give the bridge an IP (static example)[Match]
Name=br0
[Network]
Address=192.168.1.144/24
Gateway=192.168.1.1
DNS=1.1.1.1 8.8.8.8
DHCP=no
      Then enable and start networkd:
sudo systemctl enable --now systemd-networkd
sudo systemctl restart systemd-networkd
      In Virt‑Manager, edit the VM → NIC → set Network source to Bridge and pick br0. Set model to virtio for best perf.
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      addresses: [192.168.1.69/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
      Apply with sudo netplan apply inside the VM.
ip a show br0ping 192.168.1.1ssh user@192.168.1.69Common problems:
sudo ip addr flush dev enp42s0
sudo systemctl restart systemd-networkdsudo nmcli device set enp42s0 managed noIf you prefer the GUI to manage things, use NetworkManager's bridge support instead.systemd-networkd is enabled: sudo systemctl enable --now systemd-networkd and check journalctl -u systemd-networkd.