将多网卡的Linux主机变为交换机

废物利用.jpg

众所周知,我有一块 RTL 的四口千兆网卡

在此之前,这块网卡是用来给软路由扩充网口的,软路由跑的系统是 OpenWrt。

然鹅,在前几天 OpenWrt 在一次刷写系统镜像而崩溃之后,我便放弃了软路由的想法

甚至还留下了一个 4096 字节的烂尾草稿

但没办法,我已经没继续玩软路由的想法了(另一方面是因为,我家的路由器是小米AX6000,本身性能就已经足够了),便给这台机子装了个 Debian。

但俗话说得好:「饱暖思x欲」

因为这台机子放置的位置只有一个网口,而平时我还有在这边使用笔记本的需求(并且 Wi-Fi 的覆盖很差)

因此只能通过用「特殊方法」来曲线救国了

环境

必要的软件包

1
sudo apt install net-tools bridge-utils

先通过 ifconfig 查出网卡

找到桥接网卡的接口,如 enp2s0enp3s0拿个小本本抄下来

创建桥接网卡

1
sudo brctl addbr br0

然后通过 ifconfiig 查看是否有桥接网卡的生成

操作

修改网络接口配置

1
sudo nano /etc/network/interfaces

先把跟这些网卡有关的参数删掉或者注释掉,推荐注释,以免出现问题

然后以桥接 enp2s0enp3s0 这两张网卡为例,加入以下内容

1
2
3
4
5
6
auto lo br0
iface lo inet loopback
iface enp2s0 inet manual
iface enp3s0 inet manual
iface br0 inet dhcp
bridge_ports enp2s0 enp3s0

启动桥接

1
2
sudo ifconfig br0 up
sudo systemctl restart networking.service

之后,便可以看到,桥接网卡已经可以正常工作了,并且成功获取到了上级网关所下发的 IP(也就是跟接一个交换机的效果一样)

跑个测速

真不错(

删除桥接网卡下的某张物理网卡

当某张物理网卡想要更改用途(即不想桥接,但又不想删除桥接网卡),便可以通过这种方式来删除,以物理网卡为 enp3s0 、桥接网卡为 br0 为例

1
sudo brctl delif br0 enp3s0

删除桥接网卡

1
2
3
4
sudo ifconfig br0 down
# 将桥接网卡下线
sudo brctl delbr br0
# 删除桥接网卡

参考

  1. Debian服务器变成软路由–Part2

  2. debian双网卡桥接配置_jiajiading的博客-CSDN博客_debian 桥接网卡

  3. 在 Debian Linux 上设置和配置网桥 - 腾讯云开发者社区-腾讯云

  4. Linux虚拟网络设备之bridge(桥) - SegmentFault 思否

  5. GNU Linux(Debian)桥接的创建与配置_HMJ_的博客-CSDN博客_debian 桥接 配置