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

相关推荐
A小辣椒20 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言