CentOS 网络配置实用指南
适用范围与说明
你提到的“centos dopra”应为CentOS。以下给出在 CentOS 上配置网络的常用做法,覆盖查看网卡、配置静态或动态 IP、使配置生效与验证等核心步骤,适用于常见的 CentOS 7/8 环境(传统 ifcfg 文件与 NetworkManager 两种方式)。
查看与确认网卡信息
- 查看网卡与地址:执行 ip addr show 或 ifconfig -a,确认要配置的网卡名称(如 ens33、eth0)。
- 查看默认路由与网关:ip route show default。
- 测试连通性:ping 网关或外网地址(如 8.8.8.8),验证 DNS 可用 nslookup 或 dig。
- 注意:远程操作修改网络存在断连风险,建议在控制台或带外管理下执行,或先准备好回滚方案。
配置静态 IP(ifcfg 文件方式)
- 进入网卡配置目录并编辑对应文件:cd /etc/sysconfig/network-scripts/,编辑 ifcfg-<接口名>(如 ifcfg-ens33)。
- 典型静态配置示例(按需替换参数):
DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
说明:部分环境也使用 PREFIX=24 代替 NETMASK;如由 NetworkManager 托管,可设置 NM_CONTROLLED=yes。
- 使配置生效:
- 传统网络服务:systemctl restart NetworkManager 或 systemctl restart network(视系统启用的服务而定)。
- 仅重载连接:nmcli con reload;nmcli con up <连接名>。
- 验证:ip addr show dev ens33;ip route;ping 192.168.1.1;nslookup www.baidu.com。
使用 NetworkManager 配置(nmcli)
- 查看连接:nmcli con show;查看设备:nmcli dev status。
- 修改现有连接为静态 IPv4(示例将 ens33 对应的连接设为 192.168.1.100/24,网关 192.168.1.1,DNS 8.8.8.8):
nmcli con mod ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns “8.8.8.8” autoconnect yes
- 启用连接:nmcli con up ens33;必要时 nmcli networking off && nmcli networking on。
- 如需 DHCP:nmcli con mod ens33 ipv4.method auto。
- 验证:nmcli con show ens33;ip addr;nmcli dev show ens33。
常见问题与进阶
- 多个 DNS 如何设置:在 ifcfg 中使用 DNS1、DNS2;在 nmcli 中用 ipv4.dns “8.8.8.8 8.8.4.4”(空格分隔)。
- 主机名设置:临时 hostname <新主机名>;永久修改编辑 /etc/hostname 或使用 hostnamectl set-hostname <新主机名>。
- 多 IP 与别名:
- 传统别名:ip addr add 192.168.2.100/24 dev eth0 label eth0:1(对应配置文件方式较少用)。
- NetworkManager:nmcli con mod ens33 +ipv4.addresses 192.168.2.100/24。
- VLAN:ip link add link eth0 name vlan10 type vlan id 10;ip addr add 192.168.10.10/24 dev vlan10;ip link set vlan10 up。
- 带宽限制:tc qdisc add dev eth0 root handle 1: htb default 30;tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit。
- 防火墙:如使用 firewalld,按需放行服务或端口(firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload)。