¶ virsh default network
可以利用virsh自带的default network,它是利用NAT实现的。
sudo virsh net-start default
# 关闭
# sudo virsh net-destroy default
然后ip a
就可以看到一个名为virbr0
的网桥。让它开机自启:
sudo virsh net-autostart default
# 取消开机自启
#sudo virsh net-autostart --disable default
Network default marked as autostarted
sudo virsh net-list
Name State Autostart Persistent
--------------------------------------------
default active yes yes]
如果要允许普通用户在libvirt虚拟机里用这个网桥,首先确保qemu-bridge-helper
有setuid
,即权限位为4755
,如果没有,则手动加上:
# 不同发行版的路径不一样
chmod u+s /usr/libexec/qemu-bridge-helper
chmod u+s /usr/lib/qemu/qemu-bridge-helper
然后在/etc/qemu/bridge.conf
里加上allow virbr0
。
参考:https://forums.gentoo.org/viewtopic-t-1093206-start-0.html
¶ nmcli (高危)
先安装nmcli
,Debian 11:
sudo apt install network-manager
然后以root身份运行如下命令,记得把ens3
换成自己的网卡号。
nmcli connection add type bridge ifname br0
nmcli connection modify bridge-br0 bridge.stp no
nmcli connection add type bridge-slave ifname ens3 master bridge-br0
# Debian 11可能会改变IP。此时可能br0会得到一个IP,而原来的连接(ens3)在br0得到IP时会没有IP,过一段时间又可能会得到IP。由于IP改变,此时很可能会断网。
# CentOS Stream 8不会改变IP,bridge直接继承了ens3的IP,而ens3也不会再获得IP了。
nmcli connection up bridge-slave-ens3
nmcli connection up bridge-br0
好像对无线网卡不起作用,nmcli c up bridge-slave-wlan0
会报错:
错误:连接激活失败:No suitable device found for this connection (device br0 not available because profile is not compatible with device (mismatching interface name)).
参考:
Centos8关于kvm-qemu、libvirt和nmcli创建桥网络的使用和理解
如何在 Linux 里使用 nmcli 添加网桥 | Linux 中国
不起作用:
如果只有nmcli connection up bridge-br0
,就算通过nmcli connection down ens3
甚至是nmcli device down ens3
关掉原来的以太网连接,也会一直卡在获取IP地址。
https://wiki.archlinux.org/title/Network_bridge
https://askubuntu.com/questions/574962/stuck-at-getting-ip-configuration