众所周知,Linux是免费开源系统内核,不同的厂家基于此构建了不同的发行版本,对一些系统的配置也是各不相同,即使同一个厂家不同时期发布的版本也有可能有较大的变化,给系统维护带来了一些困扰,这里对工作中遇到的一些发行版本对网络的配置方法做一个滚动更新。
1、Rocky Linux 9
企业生产系统使用较多的CentOS系统被Redhat收购后改为滚动更新,原创始人重新基于Redhat源码构建了Rocky。Rocky中使用nmcli命令管理网络。
Rocky目前依然支持/etc/sysconfig/network-scripts/ifcfg-eth0文件配置网络信息
配置完成后使用以下命令加载:
# nmcli connection migrate
但Redhat目前并不建议这样配置网信息,系统默认的网络信息文件为:
/etc/NetworkManager/system-connections/eth0.nmconnection
配置完成后使用以下命令生效:
# nmcli connection load /etc/NetworkManager/system-connections/eth0.nmconnection
# nmcli connection up /etc/NetworkManager/system-connections/eth0.nmconnection
2、CentOS 6/7
CentOS 6/7系统使用/etc/sysconfig/network-scripts/ifcfg-eth0文件配置网络信息,上文已经列出详细配置,这里补充一下DNS配置。
DNS配置保存在/etc/resolv.conf文件中,在其中添加:
nameserver 223.5.5.5
3、Ubuntu 16.04
Ubuntu 16.04系统网络配置信息保存在/etc/network/interfaces。
重启网络服务生效
systemctl restart networking
DNS也可写入/etc/resolvconf/resolv.conf.d/base,同时写入/etc/resolv.conf,即时生效。
在Ubuntu 16系统中,/etc/resolv.conf是一个动态文件,会被/etc/network/interfaces和/etc/resolvconf/resolv.conf.d/base中的DNS设置覆盖,并且重启失效,不能单独配置。
4、Ubuntu 18/22
Ubuntu 18及以上的系统使用netplan管理,相应的网络配置文件也与以前版本不同,保存在/etc/netplan/00-installer-config.yaml
sudo netplan generate #重新加载配置
sudo netplan apply #使配置生效
补充一点,Ubuntu 18/22系统无线网卡配置:/etc/netplan/00-installer-config-wifi.yaml
5、修改网卡名字
较新一点的linux系统内核使用udev规则配置网卡名字,抛弃了传统的ethX命名方式,经常看到ensXXX或enpXXX的网卡名字。但在实际生产环境中,有些应用程序还是在调用ethX形式的网卡名字。修改网卡名字有以下两种方法:
i. 修改/etc/default/grub(Ubuntu)或/etc/sysconfig/grub(CentOS Rocky),重启系统后生效。
ii. 首先生成/etc/udev/rules.d/70-custom-ifnames.rules文件,配置为:
把MAC地址为"00:0c:29:ac:77:6a"的网卡名字命名为“eth0”。
然后修改网络配置信息文件,把里面的ensX或enpX修改为eth0,重新应用配置文件或重启系统生效。
系统发行商推荐使用第二种方法,第一种方法可能带来命名上的风险。