在CentOS系统中配置网络IP地址是一项核心且基础的管理任务,无论是搭建服务器、部署应用还是进行日常维护,都离不开一个稳定可靠的网络环境,本文将系统、详细地介绍在CentOS(主要涵盖CentOS 7/8/9及后续版本)中配置IP地址的多种方法,包括动态获取(DHCP)和静态设置,并涵盖图形化、文本界面以及纯命令行操作,以满足不同场景的需求。
理解网络配置文件
在深入具体操作之前,首先需要了解CentOS网络配置的核心——配置文件,这些文件通常位于/etc/sysconfig/network-scripts/
目录下,每个网络接口(如以太网卡)都有一个对应的配置文件,命名规则通常为ifcfg-<接口名称>
,例如ifcfg-ens33
或ifcfg-enp0s3
。
一个典型的配置文件包含多个参数,下表解释了其中最关键的几个:
参数 | 描述 | 示例值 |
---|---|---|
TYPE | 接口类型,通常为Ethernet | Ethernet |
BOOTPROTO | 引导协议,决定IP获取方式 | dhcp (动态)、static (静态)、none (手动) |
ONBOOT | 是否在系统启动时激活此接口 | yes (是)、no (否) |
IPADDR | 静态IP地址 | 168.1.100 |
NETMASK | 子网掩码 | 255.255.0 |
GATEWAY | 默认网关地址 | 168.1.1 |
DNS1 | 首选DNS服务器地址 | 8.8.8 |
DNS2 | 备用DNS服务器地址 | 114.114.114 |
NAME | 连接的名称,可自定义 | Wired Connection 1 |
DEVICE | 网络设备的物理名称 | ens33 |
现代CentOS版本主要通过NetworkManager
服务来管理这些配置文件,因此推荐使用NetworkManager
提供的工具进行配置,以避免手动编辑带来的潜在错误和冲突。
使用文本用户界面(nmtui)
nmtui
(NetworkManager Text User Interface)是一个基于文本的图形化工具,对于不熟悉复杂命令的用户来说,它是最直观、最友好的配置方式。
启动nmtui:
在终端中直接输入命令nmtui
并按回车键。nmtui
选择操作:
启动后,你会看到一个简洁的菜单,使用上下箭头键移动光标,选择“Edit a connection”,然后按回车。选择网络接口:
在弹出的列表中,选择你要配置的网络接口(如ens33
),然后选择“Edit…”并回车。配置IPv4:
在编辑界面,使用向下箭头键找到“IPv4 CONFIGURATION”栏,按回车键打开选项列表。- 动态获取IP(DHCP):选择
<Automatic>
,然后按回车确认。 - 静态设置IP:选择
<Manual>
,按回车后,光标移到下方的“Addresses”栏,按回车,在弹出的窗口中依次输入IP地址、子网掩码(或CIDR前缀,如/24
)和网关,多个地址可在“<Add…>”处继续添加,配置完成后,选择“OK”返回。 - 配置DNS:同样在编辑界面,找到“DNS servers”栏,按回车,输入DNS服务器地址(如
8.8.8 114.114.114.114
),用空格分隔。
- 动态获取IP(DHCP):选择
保存并退出:
所有设置完成后,选择界面底部的“OK”保存配置,返回主菜单后,选择“Back”,然后选择“Quit”退出nmtui
。激活配置:
新的配置不会立即生效,需要重启网卡连接,可以在终端中执行:nmcli con down <接口名称> && nmcli con up <接口名称> # 或者更简洁的重载并激活 nmcli con reload && nmcli con up <接口名称>
使用命令行工具(nmcli)
nmcli
(NetworkManager Command-Line Interface)是NetworkManager
的命令行工具,功能强大且适合在脚本或远程SSH环境中使用。
动态获取IP(DHCP)
假设你的网络接口名为 ens33
,执行以下命令将其设置为DHCP模式并激活:
# 修改连接的IPv4方法为dhcp(自动) nmcli con mod ens33 ipv4.method auto # 重新加载配置并激活连接 nmcli con reload && nmcli con up ens33
nmcli
会自动处理BOOTPROTO=dhcp
并激活ONBOOT=yes
。
静态设置IP
同样以 ens33
接口为例,设置静态IP 168.1.150
,子网掩码 255.255.0
(即CIDR /24
),网关 168.1.1
和DNS服务器 8.8.8
。
# 1. 修改IPv4获取方式为手动(静态) nmcli con mod ens33 ipv4.method manual # 2. 设置IP地址和子网掩码 nmcli con mod ens33 ipv4.addresses 192.168.1.150/24 # 3. 设置网关 nmcli con mod ens33 ipv4.gateway 192.168.1.1 # 4. 设置DNS服务器(可以设置多个,用空格隔开) nmcli con mod ens33 ipv4.dns "8.8.8.8 114.114.114.114" # 5. 确保连接开机自启 nmcli con mod ens33 connection.autoconnect yes # 6. 重新加载配置并激活连接,使设置生效 nmcli con reload && nmcli con up ens33
执行完毕后,nmcli
会自动更新/etc/sysconfig/network-scripts/ifcfg-ens33
文件中的所有相关参数。
验证与故障排查
配置完成后,必须进行验证以确保网络已正常工作。
查看IP地址:
ip addr show ens33 # 或使用旧命令 (可能未安装) ifconfig ens33
该命令会显示接口的IP地址、MAC地址、状态等信息。
查看路由表(网关):
ip route show # 或使用旧命令 route -n
确认默认路由(
default via ...
)指向了正确的网关。测试网络连通性:
- 测试网关:
ping 192.168.1.1
- 测试外网:
ping 8.8.8.8
- 测试DNS解析:
ping www.baidu.com
或nslookup www.baidu.com
- 测试网关:
如果以上任何一步失败,请检查配置文件中的参数是否正确(特别是IP、掩码、网关是否在同一网段),以及NetworkManager
服务是否正常运行(systemctl status NetworkManager
)。
相关问答FAQs
Q1:为什么我手动编辑了/etc/sysconfig/network-scripts/ifcfg-ens33
文件,但重启后IP配置没有生效?
A1:这种情况通常有几个原因,在CentOS 7/8/9中,直接手动编辑文件后,需要通知NetworkManager
重新加载配置,最安全的方式是运行nmcli con reload
,而不是systemctl restart network
(后者在某些版本可能已被弃用),请确保文件中的ONBOOT=yes
,否则接口不会在开机时自动激活,检查文件中是否存在语法错误,比如等号两边有空格、参数拼写错误等,NetworkManager
在遇到错误时会忽略该配置,使用journalctl -u NetworkManager
可以查看服务日志,寻找可能的错误线索。
Q2:ip addr
命令和ifconfig
命令有什么区别?我应该用哪个?
A2:ip
命令是iproute2
软件包的一部分,是现代Linux系统(包括CentOS)推荐并默认安装使用的网络配置工具,它功能更强大,支持更丰富的网络策略和路由规则,并且输出信息格式化更好。ifconfig
命令则来自net-tools
软件包,是一个较旧的工具,在很多新发行版中已经不再默认安装,虽然对于查看基本IP地址,两者都能完成任务,但强烈建议习惯使用ip addr
、ip route
等ip
命令族的工具,因为它们代表未来的标准,功能也更全面。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复