1. 网卡重命名

Linux 内核通过将固定前缀与随着内核初始化网络设备而增加的数字连接在一起,来为网络接口分配名称。例如,eth0 代表启动时被探测的第一个设备。如果您在系统中添加另一个网卡,则内核设备名称的分配将不再是固定的。因此,重启后内核可能会以不同的方式为该设备命名。

要解决这个问题,`udev` 设备管理器支持几种不同的命名方案。默认情况下,`udev` 根据固件、拓扑和位置信息分配固定名称。它有以下优点: 	
  • 设备名称完全可预测。
  • 即使添加或删除了硬件,设备名称也会保持不变,因为不会进行重新枚举。
  • 因此,有问题的硬件可以被无缝地替换。

查看某个网络设备的信息

1
sudo udevadm test /sys/class/net/ethlab

image-20230827202939337

列出某个设备的所有属性

1
udevadm info -ap /devices/pci0000:00/0000:00:1c.2/0000:08:00.0/net/ethlab

image-20230827203059687

修改配置文件

根据上面查询的设备属性来匹配具体的设备,然后重命名。

所有配置文件目录如下:

1
2
/usr/lib/udev/rules.d/
/etc/udev/rules.d/

修改自定义配置文件:

1
sudo vim /etc/udev/rules.d/10-local.rules
1
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fc:4d:d4:3e:cd:2d",ATTR{type}=="1", NAME="ethlab"

重新加载(不管用,还是要重启)

1
2
sudo systemctl restart systemd-udevd && sudo systemctl status systemd-udevd
sudo udevadm control --reload-rules && sudo udevadm trigger

查看相关日志

1
journalctl -b |grep udev

2. 配置NetworkManager固定IP地址

在图形化页面配置了固定IP相关信息之后,在/etc/NetworkManager/system-connections/目录下生成相关配置文件,其中有UUIDnmcli命令可以查看哪个配置文件绑定了哪个网络设备。

image-20230827203728870

1
sudo vim /etc/NetworkManager/system-connections/ethlab.nmconnection

image-20230827203849055

3. 配置锐捷自动登录服务

1
sudo vim /etc/systemd/system/netConnect.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=RG net connect Service
#After=network.target
#After=NetworkManager.service
After=network-manager.service
Wants=network.target
[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/opt/RG_supplicant/rjsupplicant.sh -n ethlab
[Install]
WantedBy=multi-user.target

4. clash & sunlogin

这两个服务都启动图形化页面,所以在图形化页面中可以运行如下命令来配置。

1
gnome-session-properties

运行之后会在~/.config/autostart/目录下生成相关配置文件

1
vim ~/.config/autostart/cfw.desktop
1
2
3
4
5
6
7
8
[Desktop Entry]
Type=Application
Version=0.20.25
Name=Clash for Windows
Comment=Clash for Windows startup script
Exec="/opt/clash/cfw"
StartupNotify=false
Terminal=false
1
vim ~/.config/autostart/sunloginclient.desktop
1
2
3
4
5
6
7
8
9
10
[Desktop Entry]
Type=Application
Exec=/usr/local/sunlogin/bin/sunloginclient
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[zh_CN]=sunloginclient
Name=sunloginclient
Comment[zh_CN]=Auto start sunlogin ui
Comment=Auto start sunlogin ui

Linux Network Interface Configuration With udev

Chapter 1. Consistent network interface device naming

Change “eth0” interface name and reload udev rules without a reboot

What is wrong with my udev rule?

在Linux中如何编写基本的udev规则

Predictable Network Interface Names

使用 biosdevname 的一致网络设备命名