CentOS命令行设置网络,具体步骤和命令是什么?

在CentOS服务器管理中,熟练掌握命令行下的网络配置是核心技能之一,无论是设置静态IP以确保服务稳定,还是排查网络故障,都离不开一系列基础而强大的命令,本文将详细介绍在CentOS系统中,特别是CentOS 7及以后版本,如何使用命令行工具来高效、准确地设置网络。

CentOS命令行设置网络,具体步骤和命令是什么?


查看当前网络状态

在进行任何修改之前,首先需要了解当前的网络配置情况,这包括IP地址、子网掩码、网关、DNS以及网络接口名称等信息。

最常用的命令是 ip,它已经取代了旧的 ifconfig 命令。

# 查看所有网络接口的IP地址信息
ip addr show
# 或者简写
ip a

执行该命令后,你会看到类似如下的输出,找到类似 enp0s3eth0 的接口名称,这是后续操作的关键。

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.8114.114.114

操作步骤如下:

找到连接名称
连接名称与设备名称相同,但最好确认一下。

nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp0s3  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  enp0s3

这里的 enp0s3 就是连接名称。

修改连接配置
使用 nmcli connection modify 命令进行修改,为了清晰,我们可以将多个参数分开设置。

CentOS命令行设置网络,具体步骤和命令是什么?

# 设置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 是否开机自启 yesno

应用配置
修改完成后,需要重新激活连接使配置生效。

# 先关闭连接
nmcli connection down enp0s3
# 再启动连接
nmcli connection up enp0s3

验证结果
再次使用 ip anmcli 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及以后版本,系统使用 systemdsystemctl 来管理服务,网络相关的服务主要是 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 文件中。

CentOS命令行设置网络,具体步骤和命令是什么?

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 时,才考虑直接编辑配置文件。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-03 04:41
下一篇 2025-10-03 04:43

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信