在Linux系统中,网卡服务是保障网络连接的核心,若服务未开启或异常,会导致系统无法访问网络,开启网卡服务需结合具体发行版(如CentOS/RHEL使用systemd,Ubuntu/Debian可能用NetworkManager或netplan)及当前网络管理工具,以下是详细操作步骤和注意事项。
检查当前网卡与服务状态
在开启服务前,需先确认网卡是否被系统识别、网络服务是否异常。
- 查看网卡识别情况:使用
ip addr
或ifconfig
命令(若ifconfig
未安装,可通过yum install net-tools
或apt install net-tools
安装),列出所有网卡信息,找到目标网卡名(通常为eth0
、ens33
或wlan0
等),若网卡未显示,需检查驱动是否加载(lspci | grep Ethernet
查看网卡硬件,modprobe 网卡驱动模块
加载驱动)。 - 检查网络服务状态:
- 对于systemd管理的系统(CentOS 7+、Ubuntu 16+),执行
systemctl status network
或systemctl status NetworkManager
(若使用NetworkManager); - 对于传统sysvinit系统(CentOS 6及以下),执行
service network status
。
- 对于systemd管理的系统(CentOS 7+、Ubuntu 16+),执行
开启网卡服务
(一)基于systemd的通用方法(适用于CentOS 7+/RHEL 7+/Ubuntu 16+)
- 启动网络服务:
- 若使用
network
服务(传统非NetworkManager管理),执行:systemctl start network
- 若使用NetworkManager(Ubuntu默认、CentOS 7+可选),执行:
systemctl start NetworkManager
- 若使用
- 设置开机自启:确保系统重启后服务自动开启,执行:
systemctl enable network # 或 systemctl enable NetworkManager
(二)基于NetworkManager的图形化与命令行操作
Ubuntu等系统默认使用NetworkManager,可通过nmcli
命令行工具管理:
- 启动并启用NetworkManager:
systemctl start NetworkManager && systemctl enable NetworkManager
- 激活网卡连接:若网卡未激活(
ip addr
显示DOWN
状态),可通过nmcli
连接:nmcli connection up "连接名称" # 连接名称可通过"nmcli connection show"查看
(三)手动配置网卡文件(静态IP场景)
若需配置静态IP,需编辑网卡配置文件,确保服务能正确读取配置:
- CentOS/RHEL:配置文件路径为
/etc/sysconfig/network-scripts/ifcfg-网卡名
(如ifcfg-ens33
示例:TYPE=Ethernet BOOTPROTO=static # 静态IP,若为DHCP则填dhcp IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes # 关键:开机时是否激活网卡
保存后执行
systemctl restart network
使配置生效。 - Ubuntu/Debian:使用
netplan
(Ubuntu 18+)时,配置文件为/etc/netplan/01-netcfg.yaml
,示例:network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]
保存后执行
netplan apply
应用配置。
不同发行版网络管理工具对比
为便于操作,以下表格汇总主流发行版的网络服务管理差异:
发行版系列 | 默认网络服务 | 配置文件路径 | 常用管理命令 |
---|---|---|---|
CentOS 7+/RHEL 7+ | NetworkManager | /etc/sysconfig/network-scripts/ |
systemctl start/enable NetworkManager |
CentOS 6及以下 | network | /etc/sysconfig/network-scripts/ |
service network start/enable |
Ubuntu 18+ | netplan+NetworkManager | /etc/netplan/ |
netplan apply 、nmcli 命令 |
Debian 10+ | systemd-networkd | /etc/systemd/network/ |
systemctl start/enable systemd-networkd |
常见问题排查
若服务开启后仍无法联网,可检查:
- 防火墙是否阻止:执行
firewall-cmd --list-ports
查看开放端口,或临时关闭防火墙测试(systemctl stop firewalld
); - 网线或Wi-Fi连接:确保物理链路正常,
ping 网关IP
测试本地网络连通性; - DNS配置:检查
/etc/resolv.conf
中的DNS地址是否正确,或临时配置echo "nameserver 8.8.8.8" >> /etc/resolv.conf
测试。
相关问答FAQs
Q1:为什么执行systemctl start network
后网卡仍未启动?
A:可能原因包括:① 网卡配置文件中ONBOOT=no
,需修改为yes
;② 服务冲突(如NetworkManager未关闭,可通过systemctl stop NetworkManager
关闭后测试);③ 网卡驱动未加载,执行lspci | grep Ethernet
确认网卡是否被识别,未识别则需安装驱动(如yum install kmod-e1000e
)。
Q2:如何确认网卡服务是否已设置为开机自启?
A:使用systemctl is-enabled 服务名
命令,例如systemctl is-enabled network
,若返回enabled
则已设置开机自启,返回disabled
则未设置,对于NetworkManager,可通过nmcli connection show --active
查看活跃连接,或systemctl is-enabled NetworkManager
确认服务自启状态。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37803.html