如何在 Ubuntu 上搭建网桥

顾名思义,网桥的作用是通过物理接口连接内部和外部网络。对于虚拟端口或者 LXC/KVM/Xen/容器来说,这非常有用。网桥虚拟端口看起来是网络上的一个常规设备。在这个教程中,我将会介绍如何在 Ubuntu 服务器上通过 bridge-utils (brctl) 命令行来配置 Linux 网桥。

网桥化的网络示例

图 01: Kvm/Xen/LXC 容器网桥示例 (br0)

在这个例子中,eth0 和 eth1 是物理网络接口。eth0 连接着局域网,eth1 连接着上游路由器和互联网。

安装 bridge-utils

使用 apt-get 命令 安装 bridge-utils:


  1. $ sudo apt-get install bridge-utils

或者


  1. $ sudo apt install bridge-utils

样例输出:

图 02: Ubuntu 安装 bridge-utils 包

在 Ubuntu 服务器上创建网桥

使用你熟悉的文本编辑器修改 /etc/network/interfaces ,例如 vi 或者 nano :


  1. $ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2016
  2. $ sudo vi /etc/network/interfaces

接下来设置 eth1 并且将它映射到 br1 ,输入如下(删除或者注释所有 eth1 相关配置):


  1. ### br1 使用静态公网 IP 地址,并以 ISP 的路由器作为网关
  2. auto br1
  3. iface br1 inet static
  4. address 208.43.222.51
  5. network 255.255.255.248
  6. netmask 255.255.255.0
  7. broadcast 208.43.222.55
  8. gateway 208.43.222.49
  9. bridge_ports eth1
  10. bridge_stp off
  11. bridge_fd 0
  12. bridge_maxwait 0

接下来设置 eth0 并将它映射到 br0,输入如下(删除或者注释所有 eth0 相关配置):


  1. auto br0
  2. iface br0 inet static
  3. address 10.18.44.26
  4. netmask 255.255.255.192
  5. broadcast 10.18.44.63
  6. dns-nameservers 10.0.80.11 10.0.80.12
  7. # set static route for LAN
  8. post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1
  9. post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1
  10. bridge_ports eth0
  11. bridge_stp off
  12. bridge_fd 0
  13. bridge_maxwait 0

关于 br0 和 DHCP 的一点说明

如果使用 DHCP ,配置选项是这样的:


  1. auto br0
  2. iface br0 inet dhcp
  3. bridge_ports eth0
  4. bridge_stp off
  5. bridge_fd 0
  6. bridge_maxwait 0

保存并且关闭文件。

重启服务器或者网络服务

你需要重启服务器或者输入下列命令来重启网络服务(在 SSH 登录的会话中这可能不管用):


  1. $ sudo systemctl restart networking

如果你证使用 Ubuntu 14.04 LTS 或者更老的没有 systemd 的系统,输入:


  1. $ sudo /etc/init.d/restart networking

验证网络配置成功

使用 ping/ip 命令来验证 LAN 和 WAN 网络接口运行正常:


  1. ### 查看 br0 和 br1
  2. ip a show
  3. ### 查看路由信息
  4. ip r
  5. ### ping 外部站点
  6. ping -c 2 cyberciti.biz
  7. ### ping 局域网服务器
  8. ping -c 2 10.0.80.12

样例输出:

图 03: 验证网桥的以太网连接

现在,你就可以配置 br0 和 br1 来让 XEN/KVM/LXC 容器访问因特网或者私有局域网了。再也没有必要去设置特定路由或者 iptables 的 SNAT 规则了。

原文发布时间为:2016-07-22

本文来自合作伙伴“Linux中国”

时间: 2024-11-05 14:55:48

如何在 Ubuntu 上搭建网桥的相关文章

Linux 有问必答:如何在 Ubuntu 上配置网桥

Linux 有问必答:如何在 Ubuntu 上配置网桥 Question: 我需要在我的Ubuntu主机上建立一个Linux网桥,共享一个网卡给其他一些虚拟主机或在主机上创建的容器.我目前正在Ubuntu上使用网络管理器(Network Manager),所以最好>能使用网络管理器来配置一个网桥.我该怎么做? 网桥是一个硬件装备,用来将两个或多个数据链路层(OSI七层模型中第二层)互联,以使得不同网段上的网络设备可以互相访问.当你想要互联一个主机里的多个虚拟机器或者以太接口时,就需要在Linux

Ubuntu 上搭建网桥的方法详解

作为一个 Ubuntu 16.04 LTS 的初学者.如何在 Ubuntu 14.04 和 16.04 的主机上搭建网桥呢? 顾名思义,网桥的作用是通过物理接口连接内部和外部网络.对于虚拟端口或者 LXC/KVM/Xen/容器来说,这非常有用.网桥虚拟端口看起来是网络上的一个常规设备.在这个教程中,我将会介绍如何在 Ubuntu 服务器上通过 bridge-utils (brctl) 命令行来配置 Linux 网桥. 网桥化的网络示例 在这个例子中,eth0 和 eth1 是物理网络接口.eth

如何在Ubuntu上搭建一台安全的Apache Web服务器?

  本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问. Apache2是许多安装的Linux发行版使用的默认Web服务器.它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景.在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置.选择"apache2"即可. 安装Apache2 使用下面这个命令,安装Apache2及其他库. ? 1 $ sudo apt-get -y install apt-g

在ubuntu上搭建交叉编译环境---arm-none-eabi-gcc

最近要开始搞新项目,基于arm的高通方案的项目. 那么,如何在ubuntu上搭建这个编译环境呢? 1.找到相关的安装包:http://download.csdn.net/download/storeage/7858739(我的在这里下的) 2.解压缩包到/home目录下,也可以放到其它地方,随你. 3.打开环境配置脚本:/etc/profile 看到脚本如下: # /etc/profile: system-wide .profile file for the Bourne shell (sh(1

如何在 Ubuntu 上使用 Glances 监控系统

如何在 Ubuntu 上使用 Glances 监控系统 Glances 是一个用于监控系统的跨平台.基于文本模式的命令行工具.它是用 Python 编写的,使用 psutil库从系统获取信息.你可以用它来监控 CPU.平均负载.内存.网络接口.磁盘 I/O,文件系统空间利用率.挂载的设备.所有活动进程以及消耗资源最多的进程.Glances 有很多有趣的选项.它的主要特性之一是可以在配置文件中设置阀值(careful小心.warning警告.critical致命),然后它会用不同颜色显示信息以表明

ubuntu-急急急:关于在Ubuntu上搭建xen虚拟化平台

问题描述 急急急:关于在Ubuntu上搭建xen虚拟化平台 请问:我在Ubuntu14.04下安装xen4.4 在安装完后输入指令:sudo xl list会显示出domain0的状态,但是安装完virt-manager 后就没有显示domain0的状态 以及cpu的状态. 我的扣扣452557285 希望有人帮我解答 解决方案 http://blog.chinaunix.net/uid-22566367-id-3129857.html 解决方案二: http://antwei.iteye.co

如何在Ubuntu上找出可用的网络适配器

如何在Ubuntu上找出可用的网络适配器 想知道在Linux中你正在使用的网卡是什么吗? 在Linux中很容易就找出网卡的生产商.打开一个终端并输入下面的额命令: sudo lshw -C network 如果上面的命令不能在sudo下使用,那就别用 sudo 的特权模式.它的输出看上去有点奇怪但是很有用. *-network description: Wireless interface product: BCM4360 802.11ac Wireless Network Adapter ve

如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP

如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP   在Ubuntu上安装LAMP: https://help.ubuntu.com/community/ApacheMySQLPHPhttps://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntuhttp://www.make

Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式)

Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式) ubuntu版本:Ubuntu 10.04 LTS 1.首先使用apt-get下载Nginx,php教程,mysql教程,phpmyadmin,spawn-fcgi. sudo apt-get install nginx php5-cgi php5-cli mysql-server-5.1 phpmyadmin  spawn-fcgi 期间可能要输入mysql的密码,按照提示一步一步安装就是了. OK后,你在Firefo