Linux网络配置有五种方法:一、ifconfig临时配置;二、ip命令现代管理;三、CentOS/RHEL网卡文件永久设置;四、Ubuntu Netplan声明式配置;五、多路径DNS设置。

如果您需要在Linux系统中完成基础网络配置,但对命令选择与具体操作存在困惑,则可能是由于对ip与ifconfig两个工具的功能边界、适用场景及配置持久性缺乏清晰认知。以下是针对该问题的多种配置方法说明:
一、使用ifconfig命令进行临时网络配置
ifconfig是一个传统网络配置工具,适用于快速查看和修改运行时网络接口状态,所有更改均为临时生效,重启后丢失。它不依赖高级网络管理服务,适合应急调试或嵌入式环境。
1、查看全部网络接口信息:执行ifconfig -a命令,显示包括未启用接口在内的所有网卡详情。
2、为指定网卡分配IPv4地址并设置子网掩码:执行ifconfig ens33 192.168.100.90 netmask 255.255.255.0,其中ens33需替换为实际网卡名。
3、启用或禁用网卡:执行ifconfig ens33 up启动接口;执行ifconfig ens33 down关闭接口。
4、为网卡添加别名IP(如虚拟接口):执行ifconfig ens33:0 192.168.200.100 netmask 255.255.255.0,创建逻辑子接口。
二、使用ip命令进行现代网络管理
ip命令属于iproute2套件,是当前Linux发行版推荐的标准网络配置工具,支持IPv4/IPv6双栈、路由策略、隧道、流量控制等高级功能,语法结构统一,且部分操作可配合ip -f inet6精确限定协议族。
1、列出所有网络接口及其地址:执行ip addr show或简写ip a。
2、为接口配置IPv4地址并指定前缀长度:执行ip addr add 192.168.100.90/24 dev ens33,其中/24等效于子网掩码255.255.255.0。
3、删除已配置的IP地址:执行ip addr del 192.168.100.90/24 dev ens33。
4、启用或禁用网络接口:执行ip link set ens33 up启动;执行ip link set ens33 down关闭。
5、添加默认网关路由:执行ip route add default via 192.168.100.1。
三、通过网卡配置文件实现永久IP设置(CentOS/RHEL系)
将网络参数写入系统级配置文件,可确保重启后自动加载,适用于生产环境部署。该方法依赖network服务或NetworkManager管理,需注意服务冲突风险。
1、确认网卡名称:执行ip link show或ls /sys/class/net/获取真实设备名(如ens33)。
2、编辑对应配置文件:打开/etc/sysconfig/network-scripts/ifcfg-ens33,将BOOTPROTO设为static。
3、添加静态IP配置项:在文件末尾追加以下三行:IPADDR=192.168.100.90NETMASK=255.255.255.0GATEWAY=192.168.100.1
4、确保开机激活:确认文件中包含ONBOOT=yes。
5、重启网络服务:执行systemctl restart network,或根据系统版本使用service network restart。
四、通过Netplan实现永久网络配置(Ubuntu 18.04+)
Netplan是Ubuntu官方推荐的声明式网络配置工具,采用YAML格式统一管理物理、虚拟、桥接、VLAN等复杂拓扑,避免手动编辑多处配置文件带来的不一致问题。
1、定位Netplan配置文件:通常为/etc/netplan/01-network-manager-all.yaml或/etc/netplan/50-cloud-init.yaml。
2、备份原文件:执行sudo cp /etc/netplan/*.yaml /etc/netplan/backup.yaml。
3、编辑配置内容:确保包含如下结构(以ens33为例):network: version: 2 ethernets: ens33: dhcp4: false addresses: [192.168.100.90/24] gateway4: 192.168.100.1 nameservers: addresses: [218.85.157.99, 114.114.114.114]
4、应用配置:执行sudo netplan apply,系统将自动校验语法并重载网络堆栈。
五、DNS服务器配置的多路径设置方法
DNS解析行为受多个配置层级影响,其优先级顺序为:/etc/hosts > 网卡配置文件中的DNSx参数 > /etc/resolv.conf。若使用NetworkManager,直接修改/etc/resolv.conf可能被覆盖,应优先调整上游配置源。
1、在网卡配置文件中指定DNS(RHEL/CentOS):向/etc/sysconfig/network-scripts/ifcfg-ens33追加两行:DNS1=218.85.157.99DNS2=114.114.114.114,随后重启network服务。
2、直接编辑resolv.conf(仅适用于无NetworkManager环境):执行echo -e "nameserver 218.85.157.99\nnameserver 114.114.114.114" | sudo tee /etc/resolv.conf。
3、通过NetworkManager全局配置(推荐):编辑/etc/NetworkManager/NetworkManager.conf,在[main]节下添加dns=no,再编辑/etc/resolv.conf并设置chattr +i /etc/resolv.conf防止覆盖。
4、在Netplan中集成DNS(Ubuntu):如上文第四节YAML示例所示,在nameservers字段内声明地址列表,netplan apply后自动注入/run/systemd/resolve/stub-resolv.conf。








