Ubuntu 上搭建网桥的方法详解

作为一个 Ubuntu 16.04 LTS 的初学者。如何在 Ubuntu 14.04 和 16.04 的主机上搭建网桥呢?

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

网桥化的网络示例


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

安装 bridge-utils

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

$ sudo apt-get install bridge-utils
或者

$ sudo apt install bridge-utils

样例输出:


在 Ubuntu 服务器上创建网桥

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

$ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2016
$ sudo vi /etc/network/interfaces
接下来设置 eth1 并且将它映射到 br1 ,输入如下(删除或者注释所有 eth1 相关配置):

### br1 使用静态公网 IP 地址,并以 ISP 的路由器作为网关
auto br1
iface br1 inet static
        address 208.43.222.51
        network 255.255.255.248
        netmask 255.255.255.0
        broadcast 208.43.222.55
        gateway 208.43.222.49
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
接下来设置 eth0 并将它映射到 br0,输入如下(删除或者注释所有 eth0 相关配置):

auto br0
iface br0 inet static
        address 10.18.44.26
        netmask 255.255.255.192
        broadcast 10.18.44.63
        dns-nameservers 10.0.80.11 10.0.80.12
        # set static route for LAN
        post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1
        post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
关于 br0 和 DHCP 的一点说明

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

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
保存并且关闭文件。

重启服务器或者网络服务

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

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

$ sudo /etc/init.d/restart networking
验证网络配置成功

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

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

样例输出:

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

时间: 2024-08-24 08:59:07

Ubuntu 上搭建网桥的方法详解的相关文章

如何在 Ubuntu 上搭建网桥

顾名思义,网桥的作用是通过物理接口连接内部和外部网络.对于虚拟端口或者 LXC/KVM/Xen/容器来说,这非常有用.网桥虚拟端口看起来是网络上的一个常规设备.在这个教程中,我将会介绍如何在 Ubuntu 服务器上通过 bridge-utils (brctl) 命令行来配置 Linux 网桥. 网桥化的网络示例 图 01: Kvm/Xen/LXC 容器网桥示例 (br0) 在这个例子中,eth0 和 eth1 是物理网络接口.eth0 连接着局域网,eth1 连接着上游路由器和互联网. 安装 b

ThinkPHP实现图片上传操作的方法详解

本文实例讲述了ThinkPHP实现图片上传操作的方法.分享给大家供大家参考,具体如下: 直接上个例子,其中包括有单图片文件上传.多图片文件上传.以及删除文件的一些操作.放置删除数据库的时候,仅仅删除掉了数据库之中的文件路径.而不是一并删除服务器之中的文件.放置服务器爆炸.. TP里面common文件夹里面function.php里面自定义方法: <?php //文件上传类(可以设置多个参数) function upload($file=null,$maxSize=0,$exts=0,$saveP

VPS一键搭建OpenVPN的方法详解

据说现在PPTP.L2TP之类的都不怎么灵光了,而自建的OpenVPN有时候貌似也连接不上(例如之前的文章,就不少人反应装上无法连接),这篇文章介绍的是使用OpenVPN Access Server免费版来搭建抗干扰VPN: OpenVPN Access Server免费版虽然只支持2个用户同时连接,但是自用完全是OK的,并且安装也非常简便.下面来说说教程. [下载对应软件] 根据你VPS的系统,下载对应的软件,下载页面为:https://openvpn.net/index.php/access

CentOS上搭建Git服务器步骤详解

Git是一个分布式版本控制软件,原来是linux内核开发者Linus Torvalds为了更好地管理linux内核开发而创立的.发展至今,Git已经成为了一个相当好用的版本管理工具.相比于SVN,如果想要保存一些微小的修改也必须得提交服务器保存才可以,这样使服务器的版本号过多,而Git解决了这个问题,一些小的修改只在本地提交即可,只需最后修改完成后再提交服务器.正是由于这样的便捷性,现在越来越多的社区项目都开始使用Git来取代SVN之类较为传统的版本管理工具进行开发. . 使用CentOS搭建G

百度云Windows版管家上传文件夹方法详解

给各位百度云软件的使用者们来详细的解析分享一下百度云Windows版管家上传文件夹的方法. 方法分享: 1)点击"上传"选择文件夹,然后点击[存入百度云].   2)将需要上传的文件夹拖拽到云管家界面里. 3)将需要上传的文件夹拖拽到云管家桌面上的悬浮窗中即可上传. 好了,以上的信息就是小编给各位百度云的这一款软件使用者们带来的详细的百度云Windows版管家上传文件夹的方法解析分享的全部内容了,各位看到这里的软件使用者们小编相信大家现在那是非常的清楚了上传的方法了吧,那么大家就快去按

gitlab上新建项目的方法详解

如何在gitlab上新建一个项目的代码仓库,把本地的项目推送到上面呢? 在gitlab新建项目,界面如图: 这里只需填写一些基本的项目信息,比如项目分组,项目名称,提交即可. 在新的页面,会提示你如何push本地代码到gitlab上的仓库. 我这个项目在本地是已经存在的,首先,我进入到这个目录,使用git init命令新建git仓库(注:如果该目录已经是一个git目录,删除.git文件夹即可). 这里记得把一些需要忽略的文件夹或文件填写到.gitignore中,避免push很多不需要版本管理的文

ubuntu下安装配置svn方法详解

1. 安装svn 如果是ubuntu系统,直接 sudo agt-get install subversion 2. 创建svn库  代码如下 复制代码 svnadmin create /home/robin/svn 3. 配置用户.权限 a. cd /home/robin/svn/conf b. vi svnserve.conf , 取消passwd, authz 两行的注释 c. vi passwd , 添加用户 [users] zhanglb = 123 d. vi authz , 配置权

Ubuntu下安装MYSQL数据库方法详解

1. 安装MySQL sudo apt-get install mysql-server 2.修改MYSQL root用户密码 默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入: $mysql -u root -p mysql>use mysql; update user set password=PASSWORD('panpan') where user='root';flush privileges; 修改密码为 panpan 3.修改MYSQL root用户远程访问权限 首

Java Spring MVC 上传下载文件配置及controller方法详解_java

下载: 1.在spring-mvc中配置(用于100M以下的文件下载) <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!--配置下载返回类型--> <bean class="or