如何在Ubuntu/Debian/RHEL/CentOS/Fedora/Rocky Linux上更改网络接口策略

嘿,兄弟,我们来谈谈Linux系统中的网络接口命名策略。
我在这里已经经历了很多陷阱,现在我想与大家分享我的个人经验。

我记得有一次我在一台 RHEL 服务器上,我想更改网络接口命名规则。
我直接编辑配置文件,发现新安装的虚拟机的接口名称仍然遵循原来的规则。
当时我就想为什么我改了config文件却没有体现出效果?后来才知道这个东西必须重启才能生效。

当时查了资料,发现这个命名策略是由systemd和udev控制的。
默认配置文件位于/usr/lib/systemd/network/9 9 -default.link。
根据发行版的不同,路径可能略有不同。
当时我使用命令sudonano /usr/lib/systemd/network/9 9 -default.link来编辑这个文件。

该文件的关键参数是NamePolicy和AlternativeNamesPolicy。
NamePolicy 定义了主要的命名策略,例如核心、数据库、集成等。
AlternativeNamesPolicy 是替代的、可选的策略。

当时我改变了NamePolicy,比如我设置为macpathslot,那么备份策略是基于数据库的。
此配置意味着首先使用 MAC 地址和路径进行命名。
如果这不起作用,则使用数据库和内置策略。

更改后,我按Ctrl+X保存,然后重新启动系统。
重启后,使用ip a命令查看,发现接口名称确实遵循了新的策略。

但是,我遇到了另一个问题。
我的一个同事想使用一个固定的接口名称,比如eth0,但是发现用上面的方法更改后,eth0仍然没有出现在新安装的系统中。
当时我不太明白,但查了资料后我发现我需要禁用可预测命名并在 GRUB 配置中添加一些设置。

我将 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" 添加到 GRUB 配置文件,然后更新 GRUB 配置并重新启动系统。
这样新系统将具有接口名称 eth0。

这里值得注意的是,不同发行版的默认命名策略可能会有所不同。
例如,RHEL/CentOS7 及更早版本默认使用 eth0 样式名称,并且应禁用可预测命名。
Ubuntu2 2 .04 +、Fedora等默认启用systemd命名策略。

此外,如果您不想影响所有新接口,您可以创建自定义.link文件,例如在/etc/systemd/network中创建1 0-custom.link,以便您可以单独配置某个接口的命名策略。

总之,这个网络接口命名策略是一个很有趣的东西,但是使用的时候要小心。
不要像我之前那样只编辑配置文件并重新启动。
您需要知道如何使其生效。
希望我的经验可以帮到你!

如何配置Linux网络接口速率 ethtool速度协商设置

哎呀,我必须告诉你这一点。
这是真的。
去年,我帮他们调试了华东地区一家工厂的生产线网络。
我实在受不了了。

首先,您需要知道网络适配器的名称,例如 eth0 或 enp3 s0。
我以前用过ifconfig,但现在不用了?试试 ip link show 你就可以看到它的全部内容了。
去年我在成都帮朋友安装了系统。
他已经离线很长时间了。
检查后发现enp7 s1 无法运行。
我刚刚创建了一个设置为 enp7 s1 的 IP 链接,一切都很好。

然后使用 ethtool [接口名称] 看看现在的样子。
例如使用ethtool eth0,可以看到速度为1 000Mbps,全双工,以及是否启用了自动协商。
这件事非常重要。
去年我在杭州帮电信调整网线,发现他们建了一个1 00M端口。
我看到自动协商已被禁用。
我只是把它调回1 00M全双工,不然总会有冲突。

如果您发现自动协商不可靠并想自己指定,请 sudo ethtool -s eth0 speed 1 00 duplex full autoneg off。
去年,我帮一位来自武汉的客户更换了路由器。
他的旧交换机只支持1 00M,而且必须是全双工,所以我就是这么做的。
不过要注意,这个东西重启就没有了,必须是持久化的。

对于较旧的 Debian/Ubuntu 系统,您需要编辑 /etc/network/interfaces 并添加 post-up ethtool -s eth0 speed 1 00 duplex full autoneg off。
去年,我帮助西安的一所学校建设了网络。
他们采用了一个旧系统并对其进行了这样的修改。
如果您在Ubuntu 1 8 .04 +等新系统上使用Netplan,则需要编辑YAML文件,指定速度:1 00,双工:full,自动协商:false,然后sudonetplanapply。
去年,我帮助苏州的一家公司升级了他们的系统。
我用的是Netplan。
一开始我把设置顺序弄错了,无法启动。
最终我发现这是YAML格式的问题。

对于RedHat/CentOS系统,您需要创建NetworkManager脚本或直接编辑配置文件。
我对这方面接触很少,不敢乱说。

为什么速度提不上去?去年我检查了广东的一家工厂,发现使用的网线太旧了。
是Cat5 ,只能走1 00M。
还有一些交换机端口老化或者只支持1 00M。
最烦人的是无法进行自动协商。
去年,我帮助了江苏的一位客户。
他的旧交换机无法与新交换机协商。
最后他不得不手动将其设置为1 00M半双工。
驱动程序问题也很常见。
去年帮沉阳的一个客户发现驱动程序太旧,导致网卡无法识别速度。
最后我安装了官方驱动。

而且,强制调整是有风险的。
去年,我帮助了浙江的一位客户。
他坚持把1 00M网卡设置为千兆。
结果是没有效果,成了一场灾难。
还有双工不匹配的情况。
去年,我帮助了河北的一个客户。
使用的旧交换机必须是全双工的。
因此,客户的设备处于半双工状态,导致网络冻结。

所以平时不要急于手动配置,先检查一下物理连接以及交换机端口支持的速度。
如果自动协商失败,请再次考虑手动设置,但要注意双工模式。
ip link show、lshw -C network、dmesg 等工具 |必须使用 grep eth0。

总之,这件事情不能操之过急,必须一步一步来处理。
去年我去了全国好几个地方,慢慢找到了自己的路。
首先尝试这些方法,如果不起作用,请再次告诉我。

如何优化Linux网络接口中断平衡 irqbalance配置指南

结论:要提高离线平衡,首先检查/proc/interrupts以确定中断分配。
CentOS/RHEL 在 /etc/sysconfig/irqbalance 中配置。
Debian/Ubuntu 在 /etc/default/irqbalance 中配置。
设置 ENABLED=1 以启用它。
根据需要设置IRQBALANCE_ONLINE_CPUS和IRQBALANCE_BANNED_CPUS。
特殊情况下将其关闭,通常启用中断平衡以提高性能。

如何配置Linux网络接口休眠 节能模式调优技巧

底线:调整 Linux 网卡节能意味着更改参数、使用工具并查看硬件。

有线网卡: 使用 ethtool 检查唤醒状态。
使用 sudo ethtool -s ethX wol g 启用 WoL。
要更改合并时间,请使用 sudo ethtool -c ethX rx-usecs 1 00。

无线网卡: 使用 iwconfig 查看电源管理。
使用 sudo iw dev wlan0 set power_save on/off 切换电源。
使用 NetworkManager 设置单独的连接电源选项。

系统工具: 使用电锯寻找能源消耗点。
使用 tlp 自动管理电源。

注意: 高延迟场景下禁用节能。
重新启动以保存设置。
如果你的硬件不支持,那就是无稽之谈。