Arch Linux 使用桥接模式上网

如果我们想要将虚拟机与物理主机同一网段,并且像物理机器一样被其他设备访问,则需要以桥接模式上网,这个时候,物理主机就必须配置为使用网桥上网了。

注意:这里我们使用了 NetworkManager 网络管理工具中的 nmcli 来进行配置,因此先需要开启 NetworkManager 服务。

1. 添加网桥设备(br0)及连接名(br0)

bash 复制代码
$ nmcli c add type bridge autoconnect yes con-name br0 ifname br0

上面的命令完成了这几个操作:创建 br0(可以自定义) 网桥设备、创建 br0(可以自定义) 网络连接,将 br0 网桥设备 stp 设置为 on,可以通过 brctl show 查看网桥,可以通过 nmcli c show 查看网络连接。

2. 配置网桥的ipv4连接信息

1) 动态获取 ip 方式:

bash 复制代码
$ nmcli c modify br0 ipv4.method auto 

2) 静态设置 ip 方式(我的华为路由器默认是 192.168.3.0 网段):

bash 复制代码
$ nmcli c modify br0 ipv4.method manual ipv4.address 192.168.3.10 
$ nmcli c modify br0 ipv4.gateway 192.168.3.1
$ nmcli c modify br0 ipv4.dns 192.168.3.1

3. 删除原来的有线网卡连接(如果有的话)

bash 复制代码
$ nmcli c delete eno1

4. 绑定网卡连接到桥接设备

bash 复制代码
$ nmcli c add type bridge-slave autoconnect yes con-name eno1 ifname eno1 master br0

这里的网卡连接名为 eno1,网卡设备名为 eno1,桥接设备为 br0,如果 con-name 名字设置为网卡名字,则 ifname 还可以省略,也就是上面的语句可以省略写成:

bash 复制代码
$ nmcli c add type bridge-slave autoconnect yes con-name eno1 master br0

5. 重启 NetworkManager

bash 复制代码
$ systemctl restart NetworkManager

至此,主机用网桥方式上网设置成功,并能正常上网。可以通过 ip addr 查看 ip地址信息,发现网桥设备 br0 被赋予了 ipv4 地址,而 eno1 确实绑定至 br0 (master br0)的状态

bash 复制代码
$ ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 38:2c:4a:b8:cf:f9 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether aa:03:4d:ba:ce:a9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.103/24 brd 192.168.3.255 scope global dynamic noprefixroute br0
       valid_lft 85102sec preferred_lft 85102sec
    inet6 fe80::36c0:32b9:c068:161/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

而虚拟机系统网络连接也很简单,只需要将网卡设置为桥接设备,设备名称为主机桥接设备 br0 即可,如下图所示:

相关推荐
Komorebi.py1 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh1 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
内核程序员kevin4 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
朝九晚五ฺ8 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream9 小时前
Linux的桌面
linux
xiaozhiwise9 小时前
Makefile 之 自动化变量
linux
意疏11 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu11 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
一只爱撸猫的程序猿11 小时前
一个简单的Linux 服务器性能优化案例
linux·mysql·nginx