在CentOS服务器管理中,熟练掌握命令行下的网络配置是核心技能之一,无论是设置静态IP以确保服务稳定,还是排查网络故障,都离不开一系列基础而强大的命令,本文将详细介绍在CentOS系统中,特别是CentOS 7及以后版本,如何使用命令行工具来高效、准确地设置网络。
查看当前网络状态
在进行任何修改之前,首先需要了解当前的网络配置情况,这包括IP地址、子网掩码、网关、DNS以及网络接口名称等信息。
最常用的命令是 ip
,它已经取代了旧的 ifconfig
命令。
# 查看所有网络接口的IP地址信息 ip addr show # 或者简写 ip a
执行该命令后,你会看到类似如下的输出,找到类似 enp0s3
或 eth0
的接口名称,这是后续操作的关键。
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:fe:1c:3b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 brd 192.168.1.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fefe:1c3b/64 scope link
valid_lft forever preferred_lft forever
nmcli
(NetworkManager Command-Line Interface)是现代CentOS版本中推荐的工具,它提供了一个更结构化的方式来查看和管理网络。
# 查看所有网络连接的状态 nmcli connection show # 查看特定设备的详细信息 nmcli device show enp0s3
使用 nmcli 配置网络(推荐方法)
nmcli
是与 NetworkManager 守护进程交互的命令行工具,功能强大且易于使用,是CentOS 7/8/9中的首选方法。
设置静态IP地址
假设我们要为名为 enp0s3
的网络接口设置以下静态IP信息:
- IP地址:
168.1.150
- 子网掩码:
255.255.0
(或用CIDR表示法/24
) - 网关:
168.1.1
- DNS:
8.8.8
和114.114.114
操作步骤如下:
找到连接名称
连接名称与设备名称相同,但最好确认一下。
nmcli connection show NAME UUID TYPE DEVICE enp0s3 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet enp0s3
这里的 enp0s3
就是连接名称。
修改连接配置
使用 nmcli connection modify
命令进行修改,为了清晰,我们可以将多个参数分开设置。
# 设置IP地址和子网掩码 nmcli connection modify enp0s3 ipv4.addresses 192.168.1.150/24 # 设置网关 nmcli connection modify enp0s3 ipv4.gateway 192.168.1.1 # 设置DNS服务器(多个DNS用逗号分隔) nmcli connection modify enp0s3 ipv4.dns "8.8.8.8,114.114.114.114" # 将地址获取方式改为手动(静态) nmcli connection modify enp0s3 ipv4.method manual # 确保连接开机自启 nmcli connection modify enp0s3 connection.autoconnect yes
为了方便查阅,下表小编总结了常用的 modify
参数:
参数 | 说明 | 示例 |
---|---|---|
ipv4.addresses | IP地址与子网掩码 | 168.1.150/24 |
ipv4.gateway | 默认网关 | 168.1.1 |
ipv4.dns | DNS服务器 | 8.8.8,114.114.114.114 |
ipv4.method | 地址获取方式 | manual (静态)或 dhcp (动态) |
connection.autoconnect | 是否开机自启 | yes 或 no |
应用配置
修改完成后,需要重新激活连接使配置生效。
# 先关闭连接 nmcli connection down enp0s3 # 再启动连接 nmcli connection up enp0s3
验证结果
再次使用 ip a
或 nmcli device show enp0s3
命令,检查IP地址是否已更新为 168.1.150
。
设置动态IP地址(DHCP)
如果需要从DHCP服务器自动获取IP地址,操作更为简单。
# 将地址获取方式改为dhcp nmcli connection modify enp0s3 ipv4.method dhcp # 重新激活连接 nmcli connection down enp0s3 && nmcli connection up enp0s3
手动编辑网络配置文件(传统方法)
对于习惯直接操作配置文件的用户,或者在没有 nmcli
的环境中,可以手动编辑网络脚本文件,这些文件位于 /etc/sysconfig/network-scripts/
目录下,文件名格式为 ifcfg-<接口名>
。
要编辑 enp0s3
接口,文件是 /etc/sysconfig/network-scripts/ifcfg-enp0s3
。
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
一个典型的静态IP配置文件内容如下:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 关键:设置为static表示静态IP DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 DEVICE=enp0s3 ONBOOT=yes # 关键:设置为yes表示开机启用此网卡 # 以下是静态IP的具体配置 IPADDR=192.168.1.150 # IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # 主DNS DNS2=114.114.114.114 # 备DNS
修改完成后,保存并退出,然后需要重启网络服务才能使配置生效。
# 对于CentOS 7/8/9 systemctl restart NetworkManager
管理网络服务
在CentOS 7及以后版本,系统使用 systemd
和 systemctl
来管理服务,网络相关的服务主要是 NetworkManager
。
# 启动NetworkManager服务 systemctl start NetworkManager # 设置NetworkManager开机自启 systemctl enable NetworkManager # 停止NetworkManager服务 systemctl stop NetworkManager # 重启NetworkManager服务(应用配置文件修改后常用) systemctl restart NetworkManager # 查看服务状态 systemctl status NetworkManager
设置DNS解析
虽然在使用 nmcli
或编辑 ifcfg-*
文件时可以设置DNS,但DNS的最终配置通常体现在 /etc/resolv.conf
文件中。
cat /etc/resolv.conf
通常如下:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
重要提示:在现代CentOS系统中,/etc/resolv.conf
文件通常由 NetworkManager
自动管理,直接手动编辑此文件,在重启网络服务或系统后可能会被覆盖,强烈建议通过 nmcli
或编辑 ifcfg-*
文件来配置DNS。
修改主机名
主机名是网络中标识一台机器的重要部分,可以使用 hostnamectl
命令轻松修改。
# 查看当前主机名 hostnamectl # 设置新的静态主机名(web-server-01) sudo hostnamectl set-hostname web-server-01
设置后,新的主机名会立即生效,并持久化保存,无需重启服务。
相关问答FAQs
解答:这是一个常见问题,通常是因为配置更改没有被应用,对于 nmcli
,修改后必须执行 nmcli connection down <连接名>
和 nmcli connection up <连接名>
来重新激活连接,对于手动编辑配置文件,则需要执行 systemctl restart NetworkManager
来重启网络管理服务,让它重新读取并应用配置,请确保你完成了应用配置这一关键步骤。
*使用 nmcli
和直接编辑 `ifcfg-` 文件这两种方法有什么区别?我应该选择哪种?解答**:主要区别在于操作层面和便捷性。
是一个高级工具,它作为用户和 NetworkManager
守护进程之间的接口,它的优点是命令标准化、不易出错、修改后能即时生效(通过重新激活连接),并且能自动处理/etc/resolv.conf
等相关文件,这是官方推荐的现代化方法。- *直接编辑 `ifcfg-` 文件** 是一种更底层、更传统的方式,它给予用户完全的控制权,但需要手动重启服务才能生效,且配置文件语法错误可能导致网络服务启动失败。
建议:对于绝大多数用户和场景,优先使用 nmcli
,它更安全、更高效,只有在需要编写自动化脚本,或者在某些特殊环境下无法使用 nmcli
时,才考虑直接编辑配置文件。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复