网络配置文件的位置
在 CentOS 6 中,网络接口的配置信息存储在 /etc/sysconfig/network-scripts/ 目录下,每个网络接口(如 eth0, eth1)都有一个对应的配置文件,通常命名为 ifcfg-<接口名>。

查看当前网络状态
在修改配置前,先了解如何查看当前的网络状态。
查看网络接口信息
使用 ifconfig 命令(如果系统没有安装,可以使用 yum install net-tools 安装)。
ifconfig # 或者更现代一点的 ip addr 命令 ip addr
你会看到类似 eth0, lo (回环接口) 等信息,包括它们的 IP 地址、MAC 地址等。
查看路由信息
route -n # 或者 ip route
查看网络连接状态
netstat -tulnp # 或者更现代的 ss 命令 ss -tulnp
测试网络连通性
ping www.baidu.com
配置静态 IP 地址
这是最常见的需求,假设我们要配置 eth0 接口,使其获得一个固定的 IP 地址。

步骤 1:定位并编辑配置文件
文件路径为 /etc/sysconfig/network-scripts/ifcfg-eth0,使用 vi 或 nano 编辑器打开它。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
步骤 2:配置文件参数详解
一个典型的静态 IP 配置文件内容如下,我会对每个参数进行解释:
# 设备是否被激活,yes 表示激活。 DEVICE=eth0 # 网络接口的别名,通常和 DEVICE 保持一致。 NAME=eth0 # 是否在系统启动时激活此接口,yes 表示激活。 ONBOOT=yes # IP 地址配置方式,static 表示静态,dhcp 表示动态获取。 BOOTPROTO=static # IP 地址 IPADDR=192.168.1.100 # 子网掩码 NETMASK=255.255.255.0 # 网关地址 GATEWAY=192.168.1.1 # DNS 服务器地址,可以写多个,用空格隔开。 DNS1=8.8.8.8 DNS2=114.114.114.114 # IPv6 的配置,如果不需要可以保持默认或注释掉。 # IPV6INIT=yes # IPV6_AUTOCONF=yes # IPV6ADDR=... # 网络接口类型,通常是 Ethernet。 TYPE=Ethernet # MAC 地址,通常系统会自动识别,无需手动设置。 # HWADDR=00:0C:29:AB:CD:EF # 是否允许此接口被 NetworkManager 管理,CentOS 6 默认不使用 NetworkManager, # 所以通常设置为 NO,如果设置为 YES,配置可能会被覆盖。 NM_CONTROLLED=no
关键参数总结:
BOOTPROTO:static(静态) 或dhcp(动态)。IPADDR: 你的静态 IP。NETMASK: 子网掩码。GATEWAY: 默认网关。DNS1,DNS2: DNS 服务器。ONBOOT:yes,确保开机自启。NM_CONTROLLED:no,避免 NetworkManager 干预。
步骤 3:保存并退出文件
在 vi 中,按 ESC,然后输入 wq 并回车。

步骤 4:重启网络服务使配置生效
service network restart
或者使用 init 命令:
init 6 # 重启整个系统 # 或者只重启网络 /etc/init.d/network restart
步骤 5:验证配置
ifconfig eth0 # 查看是否获得了正确的 IP ping 8.8.8.8 # 测试网关是否通 ping www.baidu.com # 测试 DNS 是否生效
配置 DHCP (动态获取 IP)
如果你的网络环境有 DHCP 服务器(比如家用路由器),配置会非常简单。
只需编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,将 BOOTPROTO 设置为 dhcp,并确保 ONBOOT 为 yes。
DEVICE=eth0 NAME=eth0 ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no # IPADDR, NETMASK, GATEWAY, DNS 等参数可以删除或注释掉,因为会由 DHCP 服务器分配。
保存后,执行 service network restart,接口就会自动从 DHCP 服务器获取 IP 地址。
配置多个 IP 地址(IP 别名)
有时需要为一个网卡配置多个 IP 地址,这可以通过创建额外的配置文件来实现。
假设 eth0 的主 IP 是 168.1.100,现在要再添加一个 168.1.101。
- 主配置文件
ifcfg-eth0保持不变,只包含主 IP 的信息。 - 创建别名配置文件:在
/etc/sysconfig/network-scripts/目录下,创建一个名为ifcfg-eth0:0的新文件。vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
- 配置别名文件:
DEVICE=eth0:0 # 设备名,必须是 原设备名:序号 的格式 NAME=eth0:0 BOOTPROTO=static IPADDR=192.168.1.101 # 新的 IP 地址 NETMASK=255.255.255.0 # 子网掩码必须和主网卡一致 ONBOOT=yes NM_CONTROLLED=no
- 重启网络服务:
service network restart
- 验证:
ifconfig eth0:0 # 应该能看到新添加的 IP
可以继续添加 eth0:1, eth0:2 等。
主机名配置
主机名配置在 /etc/sysconfig/network 文件中。
vi /etc/sysconfig/network
修改 HOSTNAME 参数:
NETWORKING=yes HOSTNAME=myserver.example.com # 设置你的主机名
修改后,重启网络或系统使其完全生效,也可以使用 hostname 命令临时修改,但重启后会失效。
常见问题排查
-
服务无法启动:
- 检查配置文件语法是否正确,特别是
BOOTPROTO、IPADDR等参数。 - 检查 IP 地址是否与网络中的其他设备冲突。
- 检查网关和 DNS 地址是否正确。
- 检查配置文件语法是否正确,特别是
-
能
ping通网关,但无法ping通外网:- 90% 的问题是 DNS 配置错误,使用
nslookup www.baidu.com或dig www.baidu.com来测试 DNS 解析是否成功。 - 检查网关是否正确。
ping网关地址(如ping 192.168.1.1)必须成功。
- 90% 的问题是 DNS 配置错误,使用
-
配置文件修改后不生效:
- 确认你使用的是
service network restart或/etc/init.d/network restart。 - 检查
NM_CONTROLLED=no是否设置,如果系统意外安装了 NetworkManager 并启用了它,它会覆盖你的ifcfg文件配置。 - 检查防火墙(
iptables)是否阻止了流量,可以临时关闭防火墙进行测试:service iptables stop。
- 确认你使用的是
-
无法找到配置文件:
- 使用
ls /etc/sysconfig/network-scripts/确认文件名是否正确(是eth0而不是ens33,后者是 CentOS 7+ 的命名方式)。
- 使用
CentOS 6 网络配置流程
| 任务 | 文件/命令 | 关键参数/命令 |
|---|---|---|
| 查看接口 | ifconfig / ip addr |
- |
| 配置静态IP | /etc/sysconfig/network-scripts/ifcfg-eth0 |
BOOTPROTO=static, IPADDR, NETMASK, GATEWAY, DNS1, ONBOOT=yes |
| 配置DHCP | /etc/sysconfig/network-scripts/ifcfg-eth0 |
BOOTPROTO=dhcp, ONBOOT=yes |
| 添加别名IP | /etc/sysconfig/network-scripts/ifcfg-eth0:0 |
DEVICE=eth0:0, IPADDR (新的IP) |
| 设置主机名 | /etc/sysconfig/network |
HOSTNAME=... |
| 使配置生效 | service network restart |
- |
希望这份详细的指南能帮助你在 CentOS 6.9 上顺利配置网络!
