本文基于 arch-aio ,如果你是其他系统,请先处理好相关依赖。
未完成
查看 1
2
3
cat /etc/qemu/bridge.conf
--------------
allow virbr0
Copy virbr0 是自动创建的,并不能完成虚拟机 映射到外网 继续查看其他情况
判断出来物理口是 enp1s0
安装 networkmanager 我这里还是选用传统的networkmanager来处理,感觉更简单无脑一些。
1
2
3
pacman -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
Copy 配置桥接br0 根据你的实际情况修改ip网关dns等
1
nmcli connection add type bridge ifname br0 con-name br0 ipv4.addresses 10.1.1.1/24 ipv4.gateway 10.1.1.254 ipv4.dns 114.114.114.114 ipv4.method manual
Copy 我这里还是打算用dhcp所以执行下面的
1
nmcli connection add type bridge ifname br0 con-name br0
Copy 桥接网卡子网卡 关联物理卡 1
nmcli connection add type bridge-slave con-name br0-slave1 ifname enp1s0 master br0
Copy 开启 1
2
3
4
nmcli connection up br0-slave1
nmcli connection up br0
nmcli connection show
# systemctl restart NetworkManager
Copy 此时网络会断开,原来ip无法连接,可以使用br0上的ip 重新连接。 如果是dhcp 可以从路由器看到多分配到br0上的ip。 重启 NetworkManager 后,或者重启物理机器后,两个ip都可以连接。
后续可选处理 关闭br0的stp 禁止物理卡开机启动 可以避免要占用两个ip的问题
开启ip4转发 1
2
3
4
sysctl net.ipv4.ip_forward=1
nano /etc/sysctl.d/99-sysctl.conf
--------
net.ipv4.ip_forward = 1
Copy 加载tun 1
2
3
4
modprobe tun
nano / etc / modules - load . d / tun . conf
-------------
tun
Copy 恢复之前的操作(未经测试) 1
2
3
4
5
6
sudo ip link set br0 down
sudo brctl delif br0 enp1s0
sudo ip link set enp1s0 down
sudo ip link set up enp1s0 #重启物理网卡
sudo ip link set dev br0 down #关闭 删除br0
sudo brctl delbr br0
Copy 参考文章:
https://wiki.archlinux.org/title/Network_bridge
https://blog.csdn.net/qq_42197548/article/details/120655449