Last active
September 26, 2025 20:58
-
-
Save bvk/7b0b20c7b5dd1b37631828dfd82e018b to your computer and use it in GitHub Desktop.
Debian /etc/network/interfaces example for KVM to bridge over WiFi inteface as a non-root user
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bvk@runner:~$ sudo cat /etc/network/interfaces | |
# This file describes the network interfaces available on your system | |
# and how to activate them. For more information, see interfaces(5). | |
source /etc/network/interfaces.d/* | |
# The loopback network interface | |
auto lo | |
iface lo inet loopback | |
# The primary network interface | |
allow-hotplug wlp3s0 | |
iface wlp3s0 inet dhcp | |
wpa-ssid WIFI-SSID | |
wpa-psk WIFI-PASSWORD | |
post-up ip link add kvmbr0 type bridge | |
post-up ip link set kvmbr0 up | |
pre-down ip link del kvmbr0 | |
post-up sysctl -w net.ipv4.ip_forward=1 | |
post-up sysctl -w net.ipv4.conf.kvmbr0.proxy_arp=1 | |
post-up sysctl -w net.ipv4.conf.wlp3s0.proxy_arp=1 | |
# Duplicate wlp3s0 ipv4 address to kvmbr0 with /32 mask. | |
post-up ip addr add $(ip addr show wlp3s0 | sed -En -e 's@.*inet ([0-9.]+)/.*@\1@p')/32 dev kvmbr0 | |
pre-down ip addr del $(ip addr show wlp3s0 | sed -En -e 's@.*inet ([0-9.]+)/.*@\1@p')/32 dev kvmbr0 | |
# Start/stop DHCP relaying. | |
post-up dhcp-helper -i kvmbr0 -b wlp3s0 -r /var/run/kvmbr0-dhcp-helper.pid | |
pre-down pkill -F /var/run/kvmbr0-dhcp-helper.pid | |
# Start/stop automatic routing updates. | |
post-up bash -c 'parprouted -d wlp3s0 kvmbr0 >/var/log/kvmbr0-parprouted.log 2>&1 & echo $! >/var/run/kvmbr0-parprouted.pid' | |
pre-down pkill -F /var/run/kvmbr0-parprouted.pid | |
# KVM fixes for Debian 13 Trixie. | |
post-up mkdir -p /etc/qemu | |
post-up echo allow kvmbr0 > /etc/qemu/bridge.conf | |
post-up chmod u+s /usr/lib/qemu/qemu-bridge-helper | |
bvk@runner:~$ | |
bvk@runner:~$ kvm -m 2G -hda test.img -nographic -serial mon:stdio -kernel /boot/vmlinuz-6.12.48+deb13-amd64 -initrd /boot/initrd.img-6.12.48+deb13-amd64 -append 'console=ttyS0 root=UUID=584054b1-24ea-4931-a019-4efb43b18e35' -device virtio-net,netdev=network0,mac=02:33:a4:8d:45:33 -netdev bridge,id=network0,br=kvmbr0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment