将多网卡的Linux主机变为交换机
废物利用.jpg
众所周知,我有一块 RTL 的四口千兆网卡
在此之前,这块网卡是用来给软路由扩充网口的,软路由跑的系统是 OpenWrt。
然鹅,在前几天 OpenWrt 在一次刷写系统镜像而崩溃之后,我便放弃了软路由的想法
甚至还留下了一个 4096 字节的烂尾草稿
但没办法,我已经没继续玩软路由的想法了(另一方面是因为,我家的路由器是小米AX6000,本身性能就已经足够了),便给这台机子装了个 Debian。
但俗话说得好:「饱暖思x欲」
因为这台机子放置的位置只有一个网口,而平时我还有在这边使用笔记本的需求(并且 Wi-Fi 的覆盖很差)
因此只能通过用「特殊方法」来曲线救国了
环境
必要的软件包
1 | sudo apt install net-tools bridge-utils |
先通过 ifconfig
查出网卡
找到桥接网卡的接口,如 enp2s0
、enp3s0
,拿个小本本抄下来
创建桥接网卡
1 | sudo brctl addbr br0 |
然后通过 ifconfiig
查看是否有桥接网卡的生成
操作
修改网络接口配置
1 | sudo nano /etc/network/interfaces |
先把跟这些网卡有关的参数删掉或者注释掉,推荐注释,以免出现问题
然后以桥接 enp2s0
、enp3s0
这两张网卡为例,加入以下内容
1 | auto lo br0 |
启动桥接
1 | sudo ifconfig br0 up |
之后,便可以看到,桥接网卡已经可以正常工作了,并且成功获取到了上级网关所下发的 IP(也就是跟接一个交换机的效果一样)
跑个测速
真不错(
删除桥接网卡下的某张物理网卡
当某张物理网卡想要更改用途(即不想桥接,但又不想删除桥接网卡),便可以通过这种方式来删除,以物理网卡为 enp3s0
、桥接网卡为 br0
为例
1 | sudo brctl delif br0 enp3s0 |
删除桥接网卡
1 | sudo ifconfig br0 down |