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 即可,如下图所示:

相关推荐
Yz987626 分钟前
Hive安装-内嵌模式
大数据·linux·数据仓库·hive·hadoop·hdfs·bigdata
SmallBambooCode2 小时前
【人工智能】阿里云PAI平台DSW实例一键安装Python脚本
linux·人工智能·python·阿里云·debian·脚本·模型训练
纯小白是我2 小时前
CentOS 7系统中更改YUM源为阿里云的镜像源
linux·阿里云·centos
嵌入式Linux,2 小时前
BUG: scheduling while atomic
linux·运维·服务器·bug
小兔子酱#2 小时前
【Linux 29】传输层协议 - UDP
linux·运维·服务器·网络·网络协议·udp
CYRUS_STUDIO2 小时前
Android下的系统调用 (syscall),内联汇编syscall
android·linux·汇编语言
想不到好名字了()2 小时前
负载均衡式在线oj项目开发文档2(个人项目)
linux·网络·c++
General_G2 小时前
FastDDS服务发现之EDP的收发
linux·中间件·服务发现·fastdds
LuckyTHP2 小时前
linux分析利刃之sar命令详解
linux·运维·服务器
浙江赛思电子科技有限公司2 小时前
自动驾驶为什么需要时间同步?高精度时间同步如何实现?
linux·科技·计算机网络·硬件架构·硬件工程·能源·信号处理