Debian Linux 上怎么设置和配置网桥

Q:我是一个新 Debian Linux 用户,我想为 Debian Linux 上运行的虚拟化环境(KVM)设置网桥。那么我该如何在 Debian Linux 9.x 服务器上的 /etc/network/interfaces 中设置桥接网络呢?vE5码友部落

 vE5码友部落

如何你想为你的虚拟机分配 IP 地址并使其可从你的局域网访问,则需要设置网络桥接器。默认情况下,虚拟机使用 KVM 创建的专用网桥。但你需要手动设置接口,避免与网络管理员发生冲突。vE5码友部落

 vE5码友部落

怎样安装 brctl

输入以下 apt-get 命令:vE5码友部落

 vE5码友部落

$ sudo apt install bridge-utilsvE5码友部落

怎样在 Debian Linux 上设置网桥vE5码友部落

你需要编辑 /etc/network/interface 文件。不过,我建议在 /etc/network/interface.d/ 目录下放置一个全新的配置。在 Debian Linux 配置网桥的过程如下:vE5码友部落

 vE5码友部落

步骤 1 - 找出你的物理接口

使用 ip 命令:vE5码友部落

 vE5码友部落

$ ip -f inet a svE5码友部落

示例输出如下:vE5码友部落

 vE5码友部落

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000vE5码友部落

 inet 192.168.2.23/24 brd 192.168.2.255 scope global eno1vE5码友部落

 valid_lft forever preferred_lft forevervE5码友部落

eno1 是我的物理网卡。vE5码友部落

 vE5码友部落

步骤 2 - 更新 /etc/network/interface 文件

确保只有 lo(loopback 在 /etc/network/interface 中处于活动状态)。(LCTT 译注:loopback 指本地环回接口,也称为回送地址)删除与 eno1 相关的任何配置。这是我使用 cat 命令 打印的配置文件:vE5码友部落

 vE5码友部落

$ cat /etc/network/interfacevE5码友部落

# This file describes the network interfaces available on your systemvE5码友部落

# and how to activate them. For more information, see interfaces(5).vE5码友部落

 vE5码友部落

source /etc/network/interfaces.d/*vE5码友部落

 vE5码友部落

# The loopback network interfacevE5码友部落

auto lovE5码友部落

iface lo inet loopbackvE5码友部落

步骤 3 - 在 /etc/network/interfaces.d/br0 中配置网桥(br0)

使用文本编辑器创建一个文本文件,比如 vi 命令:vE5码友部落

 vE5码友部落

$ sudo vi /etc/network/interfaces.d/br0vE5码友部落

在其中添加配置:vE5码友部落

 vE5码友部落

## static ip config file for br0 ##vE5码友部落

auto br0vE5码友部落

iface br0 inet staticvE5码友部落

    address 192.168.2.23vE5码友部落

    broadcast 192.168.2.255vE5码友部落

    netmask 255.255.255.0vE5码友部落

    gateway 192.168.2.254vE5码友部落

    # If the resolvconf package is installed, you should not editvE5码友部落

    # the resolv.conf configuration file manually. Set name server herevE5码友部落

    #dns-nameservers 192.168.2.254vE5码友部落

    # If you have muliple interfaces such as eth0 and eth1vE5码友部落

    # bridge_ports eth0 eth1vE5码友部落

    bridge_ports eno1vE5码友部落

    bridge_stp off # disable Spanning Tree ProtocolvE5码友部落

    bridge_waitport 0 # no delay before a port becomes availablevE5码友部落

    bridge_fd 0 # no forwarding delayvE5码友部落

如果你想使用 DHCP 来获得 IP 地址:vE5码友部落

 vE5码友部落

## DHCP ip config file for br0 ##vE5码友部落

auto br0vE5码友部落

 vE5码友部落

# Bridge setupvE5码友部落

 iface br0 inet dhcpvE5码友部落

  bridge_ports eno1vE5码友部落

在 vi/vim 中保存并关闭文件。vE5码友部落

 vE5码友部落

步骤 4 - 重新启动网络服务

在重新启动网络服务之前,请确保防火墙已关闭。防火墙可能会引用较老的接口,例如 eno1。一旦服务重新启动,你必须更新 br0 接口的防火墙规则。键入以下命令重新启动防火墙:vE5码友部落

 vE5码友部落

$ sudo systemctl restart network-managervE5码友部落

确认服务已经重新启动:vE5码友部落

 vE5码友部落

$ systemctl status network-managervE5码友部落

借助 ip 命令寻找新的 br0 接口和路由表:vE5码友部落

 vE5码友部落

$ ip a s $ ip r $ ping -c 2 cyberciti.bizvE5码友部落

示例输出:vE5码友部落

 vE5码友部落

Debian Linux 上怎么设置和配置网桥vE5码友部落

vE5码友部落

 vE5码友部落

你可以使用 brctl 命令查看网桥有关信息:vE5码友部落

 vE5码友部落

$ brctl showvE5码友部落

显示当前网桥:vE5码友部落

 vE5码友部落

$ bridge linkvE5码友部落

 vE5码友部落

 vE5码友部落

关于作者vE5码友部落

作者是 nixCraft 的创建者,也是经验丰富的系统管理员,DevOps 工程师以及 Linux 操作系统/ Unix shell 脚本的培训师。通过订阅 RSS/XML 流 或者 每周邮件推送获得关于 SysAdmin, Linux/Unix 和开源主题的最新教程。vE5码友部落