实测 Ubuntu 18.04 配置网桥 也可以。
新手一枚,纯属记录。
需要使用到 bridge-utils.
安装 bridge-utils
sudo apt-get install bridge-utils创建网桥设备
sudo brctl addbr br1其中br1是网桥名,应该可以随便起.
查看网卡名
sudo ls /proc/sys/net/ipv4/conf可以看到自己的网卡和刚刚创建的网桥名.
这里假设在某台设备上看到了 enp1s0,enp2s0,enp3s0,enp4s0四个网络接口,现在为其配置一个网桥.
配置之前,如果网卡正在工作,最好使用
sudo ifdown enp1s0将其关掉(enp1s0指正在工作的网卡),
配置网桥配置网桥,打开接口文件
sudo vim /etc/network/interfaces使用#号注释或删掉上述四个网口的原有配置,或者将这个文件先备份一下.
输入配置代码(在巡回地址后面输入,不要输入在文件开始处,像下面这样)
auto enp1s0iface enp1s0 inet manual auto enp2s0iface enp2s0 inet manual auto enp3s0iface enp3s0 inet manual auto enp4s0iface enp4s0 inet manual auto br1iface br1 inet dhcpbridge_ports enp1s0bridge_ports enp2s0bridge_ports enp3s0bridge_ports enp4s0bridge_stp offbridge_fd 0auto loiface lo inet loopback保存后退出vim,
其中br1网桥采用的是动态ip,即由入网的路由器等设备为br1分配ip.静态方式请参考其它文章
注:貌似无线网卡不支持配置网桥,本人手上的 Realtek 8811CU 就不行。Realtek 8811CU 在linux下的网卡驱动:https://github.com/whitebatman2/rtl8821CU
开启路由转发此为永久生效方案,即重启后仍有效
vim /etc/sysctl.conf大约在文件的第28行,将以下内容的注释去掉(或者新增一个)
net.ipv4.ip_forward=1使路由转发立即生效:
sudo sysctl -p插上网线,并重启网络(可能要等待一会儿,要是太久都未完成,按Ctrl+C停掉重来):
/etc/init.d/networking restart输入
sudo ifconfig可查看是否配置好,也可使用ping命令查看
配置完成后,将只有br1获得了IP地址,挂在网桥上的网口都没有IP地址。
如果 挂载的网卡还有ip地址,例如可使用ifconfig enp1s0 default 清掉enp1s0网卡的ip。
注意: 关于 iptables FORWARD 链不生效问题。使用这个bridge-utils模块配置网桥之后,iptables FORWARD 链上的规则可能不生效,需要加载模块才可以(Ubuntu 18.04上需要手动加载此模块):
sudo modprobe br_netfilter加载模块之后,iptables 的 FORWARD 链上的规则将起作用。
经测试,这个br_netfilter不会开机自动加载。
若需要开机加载,则在Ubuntu18.04下,可按如下操作:
编辑 sudo vim /etc/modules-load.d/modules.conf文件,添加一行:
编辑 sudo vim /etc/sysctl.conf 文件,添加如下三行(为查找方便,可以添加在上述修改路由转发的后面几行):
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1保存后,重启,可使用如下命令看是否加载了
sudo lsmod | grep br_netfilter若出现结果,则为加载成功。
然后,可以试试 FORWARD 链的规则是否有效。
新手一枚,写错的请指出来,部分代码含义不是很懂,还请见谅.
希望本文对各位有所帮助,本文内容可用于自己搭建网桥并简单调试,请谨防可能的安全风险。
参考文章:http://www.linuxprobe.com/build-bridge-ubuntu.html
https://zhidao.baidu.com/question/138207075.html
http://www.cnblogs.com/yasmi/p/4844653.html
http://blog.csdn.net/joanna_yan/article/details/48371747
关于开机自动加载模块:
http://manpages.ubuntu.com/manpages/cosmic/zh_CN/man5/sysctl.d.5.html