网络管理 - 网络基础管理

1. 网络基础概述

Linux作为一个成熟的操作系统, 在服务器市场、嵌入式设备等方面都取得了巨大的成功, 在网络上的应用也越来越多。 所以掌握如何在Linux系统中配置、管理网络就变得非常必要。

1.1 Linux7网卡命名规则

传统的rhel系统以eth0eth1名来命名网卡, 在rhel7系统开始使用新的命名规则:

基于固件、设备结构、设备类型

命名规则说明

1. 由两个字母开头标示固件:

  • 以太网网卡以 en 开头
  • 无线网卡以 wl 开头

2. 设备结构:

  • o 表示板载网卡(on-board)
  • s 热插拔结构(hotplug slot)
  • p PCI插槽位置

网卡命名示例

命名 说明 示例
eno1 板载以太网卡 eno16777728
ens33 PCI插槽以太网卡 ens33
enp2s0 PCI插槽2,插槽0的以太网卡 enp2s0
wlp3s0 PCI插槽3,插槽0的无线网卡 wlp3s0

2. 网络接口信息查看

2.1 查看网络接口配置信息

使用ifconfig命令

1
2
3
4
5
6
7
8
# 查看当前处于活动状态的网络接口
[root@liyanzhao ~]# ifconfig

# 仅查看eth0网卡状态信息
[root@liyanzhao ~]# ifconfig eth0

# 查看所有网卡状态信息, 包括禁用和启用
[root@liyanzhao ~]# ifconfig -a

ifconfig输出信息说明

1
2
3
4
5
6
7
8
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.69.112 netmask 255.255.255.0 broadcast 192.168.69.255
inet6 fe80::bd23:46cf:a12e:c0a1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:34:92:fc txqueuelen 1000 (Ethernet)
RX packets 73137 bytes 17214613 (16.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 45428 bytes 13141869 (12.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

网卡配置信息含义:

字段 说明
UP 网卡处于活动状态
BROADCAST 支持广播
RUNNING 网线已接入
MULTICAST 支持组播
MTU 最大传输单元(字节),即此接口一次所能传输的最大封包
inet 显示IPv4地址行
inet6 显示IPv6地址行
link/ether 指设备硬件(MAC)地址
txqueuelen 传输缓存区长度大小
RX packets 接收的数据包
TX packets 发送的数据包
errors 总的收包的错误数量
dropped 由于各种原因, 导致拷贝在内存过程中被丢弃
collisions 网络信号冲突情况, 值不为0则可能存在网络故障

2.2 使用ip命令查看

查看IP地址

1
2
# 其他查看ip指令
[root@liyanzhao ~]# ip addr show eth0

ip命令输出说明

1
2
3
4
5
6
2:eth0: <BROADCAST,MULTICAST,①UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:34:92:fc brd ff:ff:ff:ff:ff:ff
③inet 192.168.69.112/24 brd④ 192.168.69.255 scope global ens32
valid_lft forever preferred_lft forever
⑤inet6 fe80::bd23:46cf:a12e:c0a1/64 scope link
valid_lft forever preferred_lft forever

说明:

  • : 活动接口为UP
  • : Link行指定设备的MAC地址
  • : inet行显示IPv4地址和前缀
  • : 广播地址、作用域和设备名称在此行
  • : inet6行显示IPv6信息

查看网络统计信息

1
2
3
4
5
6
7
8
# ip命令也可用于显示关于网络性能的统计信息, 比如: 发送和传送的数据包、错误、丢弃
[root@liyanzhao ~]# ip -s link show eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
link/ether 14:18:77:35:0d:f5 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
518292951 4716385 0 0 0 709280
TX: bytes packets errors dropped carrier collsns
23029861512 15391427 0 0 0 0

3. NetworkManager管理网络

RHEL/CentOS7系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。

3.1 NetworkManager概述

NetworkManager提供的命令行和图形配置工具对网络进行设定, 设定保存的配置文件在/etc/sysconfig/network-scripts目录下, 工具有nmcli, nmtui, nm-connection-editor

概念说明:

  • device: 物理设备, 例如 enp2s0, virbr0, team0
  • connection: 连接设置, 具体网络配置方案

重要特性:

  1. 不同的网络连接配置可以应用到相同的物理设备,但物理设备同一时间只能应用其中某个网络连接
  2. 针对物理网络接口, 设定不同的网络连接, 在不同的使用环境中激活相应的网络连接,就可以实现网络配置信息的自动切换了

3.2 使用nmcli命令查看设备以及连接情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看设备状态
[root@liyanzhao ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens32 ethernet connected ens32
lo loopback unmanaged --

# 指定查看设备的详细状态
[root@liyanzhao ~]# nmcli dev show ens32

# 查看连接状态
[root@liyanzhao ~]# nmcli connection
NAME UUID TYPE DEVICE
ens32 a4319b27-80dc-4d63-a693-2927ea1018e7 802-3-ethernet ens32
virbr0 64dbcb5f-b63a-4c88-8d1c-f93ead70a1b8 bridge virbr0

# 所有活动的连接
[root@liyanzhao ~]# nmcli con show --active

# 查看指定ID连接的详细情况
[root@liyanzhao ~]# nmcli con show "ens32"

3.3 使用nmcli创建新的连接

创建DHCP连接

1
2
3
4
5
6
7
8
9
10
# 定一个名为dhcp的连接, 配置DHCP地址
# 实质是添加/etc/sysconfig/network-scripts/ifcfg-ens33-dhcp配置文件
[root@linux-node1 ~]# nmcli connection add \
con-name ens33-dhcp ifname eth0 autoconnect yes \
type ethernet ipv4.method auto

[root@linux-node1 ~]# nmcli connection
NAME UUID TYPE DEVICE
eth0 000b9696-19d5-4ade-bca6-7ee0266ddcf0 802-3-ethernet eth0
ens33-dhcp 33bcddf0-9cc4-47fe-9acf-ede449757d8a 802-3-ethernet --

创建静态IP连接

静态地址添加流程:

  1. 添加一个连接的配置
  2. 给连接指定一个名称
  3. 连接配置绑定物理网卡
  4. 网卡的类型,网卡开机启动
  5. 网卡通过什么途径获取地址(静态、dhcp)
  6. 配置对应的IP地址、掩码、网关、DNS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新增一个静态地址的连接, 配置IP、掩码、网关等
[root@linux-node1 ~]# nmcli connection add con-name eht1-static ifname eth1 \
type ethernet autoconnect yes \
ipv4.method manual \
ipv4.addresses 192.168.56.100/24 \
ipv4.gateway 192.168.56.2 \
ipv4.dns 192.168.56.2 \
+ipv4.dns 8.8.8.8

# 激活指定的连接名为eht1-static的连接
[root@linux-node1 ~]# nmcli connection up eht1-static

[root@liyanzhao ~]# nmcli connection show
NAME UUID TYPE DEVICE
eht1-static 6fdebe6e-5ef0-4a05-8235-57e317fdada0 802-3-ethernet eth0

3.4 使用nmcli修改已有的网络连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 1.取消开机自动激活网络
[root@liyanzhao ~]# nmcli connection modify eht1-static \
autoconnect no

# 2.修改连接的dns
[root@liyanzhao ~]# nmcli connection modify eht1-static \
ipv4.dns 8.8.8.8

# 3.给连接再增加dns,有些设定值通过+/-可以增加或则移除设定
[root@liyanzhao ~]# nmcli connection modify eht1-static \
+ipv4.dns 8.8.8.8

# 4.替换连接的静态IP和默认网关
[root@liyanzhao ~]# nmcli connection modify eht1-static \
ipv4.addresses 192.168.69.252/24 ipv4.gateway 192.168.69.22

# 5.添加一个没有默认网关的IP
[root@liyanzhao ~]# nmcli connection modify eht1-static \
+ipv4.addresses 192.168.70.12/24

# 6.修改完毕,nmcli仅仅修改并保存了配置,要激活更改,需要重激活连接
[root@linux-node1 ~]# nmcli connection down eht1-static && \
nmcli connection up eht1-static

# 删除自建的connection
[root@liyanzhao ~]# nmcli connection delete eht1-static

# 图形工具配置
nm-connection-editor

3.5 使用nmcli管理网络配置文件

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 修改eht1-static配置文件
[root@liyanzhao ~]# vim /etc/sysconfig/network-scripts/ifcfg-eht1-static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.69.232
PREFIX=24
GATEWAY=192.168.69.1
DNS1=211.161.122.200
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens32-staic
UUID=6fdebe6e-5ef0-4a05-8235-57e317fdada0
DEVICE=ens32
ONBOOT=yes

# 手工编辑正在使用的配置文件,需要重载配置,然后重启
[root@liyanzhao ~]# nmcli connection reload
[root@liyanzhao ~]# nmcli connection down eht1-static && \
nmcli connection up eht1-static

4. 使用原生Network管理网络

CentOS/RHEL的网络配置文件默认目录为/etc/sysconfig/network-scripts

默认第一块物理网卡配置文件为ifcfg-eth0, 如果有第二块物理网卡, 配置文件则为ifcfg-eth1以此类推。 注意: 如果新增物理网卡没有配置文件,可选择复制系统默认的进行修改。

4.1 停止NetworkManager服务

1
2
3
# 删除NetworkManger建立连接, 同时停止NetworkManger服务
[root@liyanzhao ~]# systemctl disable NetworkManager
[root@liyanzhao ~]# systemctl stop NetworkManager

4.2 添加网络连接配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 复制配置eth0配置文件为eth1
[root@liyanzhao ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth1}

# 编辑网卡配置文件
[root@nginx ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.56.12
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
DNS1=192.168.56.2

# 重启network网络服务加载网络
[root@liyanzhao ~]# systemctl restart network.service

4.3 网卡配置文件选项说明

选项 描述 示例
BOOTPROTO 获取地址方式[none|dhcp|static] BOOTPROTO=none
IPADDR 固定IP地址 IPADDR=192.168.56.12
PREFIX 掩码 PREFIX=24
NETMASK 子网掩码 NETMASK=255.255.255.0
GATEWAY 网关 GATEWAY=192.168.56.2
DNS1 域名解析 DNS1=192.168.56.2
DEVICE 设备名称 DEVICE=eth1
NAME 连接名称 NAME="eth1"
ONBOOT 开机自启动 ONBOOT=yes
DEFROUTE 将接口设定为默认路由[yes|no] DEFROUTE=yes
USERCTL 允许非root用户管理接口[yes|no] USERCTL=yes

5. Route设置路由以及网关

Linux主机之间是使用IP进行通信, 假设A主机和B主机同在一个网段内且网卡都处于激活状态, 则A具备和B直接通信的能力, 但如果A主机和B主机处于两个不同的网段, 则A必须通过路由器才能和B通信, 路由器属于IT设备的基础设施, 每一个网段都应该至少有一个网关。

5.1 路由管理命令

增加路由

1
2
3
4
5
6
# 增加网段路由
[root@liyanzhao ~]# route add -net 192.168.90.0/24 gw 192.168.56.254
[root@liyanzhao ~]# route add -net 0.0.0.0/0 gw 192.168.56.254

# 增加主机路由
[root@liyanzhao ~]# route add -host 192.168.70.1 gw 192.168.56.254

删除路由

1
2
3
4
5
6
# 删除网段路由
[root@liyanzhao ~]# route del -net 192.168.90.0/24
[root@liyanzhao ~]# route del -net 0.0.0.0/0 gw 192.168.56.254

# 删除主机路由
[root@liyanzhao ~]# route del -host 192.168.70.1/32

查看路由表

1
2
3
4
5
6
# 查看当前路由表
route -n

# 使用ip命令查看路由
ip route show
ip route

5.2 永久保存路由

如果重启, 配置信息就不存在, 必须将这种配置信息写到相关的配置文件中才能永久保存,比如网卡配置文件的GATEWAY。

方法1: 在网卡配置文件中设置

1
2
# 在/etc/sysconfig/network-scripts/ifcfg-eth0中设置
GATEWAY=192.168.56.2

方法2: 创建路由配置文件

1
2
3
# 创建路由配置文件
vim /etc/sysconfig/network-scripts/route-eth0
192.168.90.0/24 via 192.168.56.254

方法3: 使用ip route命令

1
2
3
4
5
# 添加永久路由
ip route add 192.168.90.0/24 via 192.168.56.254 dev eth0

# 保存到配置文件
ip route save > /etc/sysconfig/network-scripts/route-eth0

6. 主机名设定与名称解析服务

生产环境中必须配置主机名,同时主机名也需要遵循一定的规范。

6.1 主机名规范

公有云命名规范: 地区-项目-业务-服务-节点-地址

  • wh-shop-register-nginx-node1-192.168.56.13
  • wh-med-pay-mysql-master01-192.168.56.11
  • wh-med-pay-mysql-slave01-192.168.56.12

6.2 主机名查看与配置

使用hostname命令

1
2
3
# hostname命令可以查看主机名, 也可以用于临时修改主机名
[root@liyanzhao ~]# hostname
[root@liyanzhao ~]# hostname "test" # 临时修改

使用hostnamectl命令(推荐)

rhel7系统建议使用hostnamectl修改和查看主机名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 设定永久名称
[root@liyanzhao ~]# hostnamectl set-hostname nginx.node1.liyanzhao.com

# 永久修改主机名会修改/etc/hostname文件
[root@liyanzhao ~]# cat /etc/hostname
nginx.node1.liyanzhao.com

# 检查状态信息
[root@liyanzhao ~]# hostnamectl
Static hostname: nginx.node1.liyanzhao.com
Icon name: computer-vm
Chassis: vm
Machine ID: af0cdce735c041eab3a8df17dd08c112
Boot ID: 72d7e90f0edb4880978eb18e73d4764c
Virtualization: vmware
Operating System: Red Hat Enterprise Linux Server 7.4 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64

6.3 DNS客户端配置

/etc/hosts文件

/etc/hosts文件, 加快域名解析, 方便小型局域网用户使用内部设备。

假设公司有A B两台主机, B主机添加的IP为192.168.69.12,为了方便访问B主机, 可以在A主机的/etc/hosts文件中添加一条记录:

1
192.168.69.12 hostB

完成后在A主机上使用ping命令测试到B主机的连通性, 如果没有添加记录, 将会显示unknown host hostB的错误。

hosts文件示例:

1
2
3
4
5
# /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.69.12 hostB
192.168.69.11 hostA

/etc/resolv.conf文件

使用hosts文件仅能为有限的主机记录, 无法将所有已知的主机名记录到hosts文件中, 因此当今几乎所有的主机都在使用DNS来解析地址, DNS是全互联网上主机名及其IP地址对应关系的数据库, 配置文件/etc/resolv.conf

1
2
3
4
[root@liyanzhao ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search node1.sunrisenan.com
nameserver 211.161.122.200

resolv.conf配置说明:

选项 说明 示例
nameserver DNS服务器地址 nameserver 8.8.8.8
search 搜索域 search example.com
domain 本地域名 domain example.com

6. 网络检测工具与故障排查

6.1 ping命令

ping命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况。

ping常用选项

选项 功能 示例
-c 指定ping的次数 ping -c 5 192.168.1.1
-i 指定ping包的发送间隔 ping -i 2 192.168.1.1
-w 如果ping没有回应, 则在指定超时时间后退出 ping -w 5 192.168.1.1

ping示例

1
2
3
4
5
6
7
8
9
10
11
# 基本ping
ping 192.168.1.1

# 指定次数
ping -c 5 192.168.1.1

# 指定间隔
ping -i 2 192.168.1.1

# 指定超时
ping -w 5 192.168.1.1

6.2 host/nslookup命令

host/nslookup命令是用来查询DNS记录的,如果使用域名作为host的参数, 命令返回该域名的IP。

1
2
3
4
5
6
7
8
9
[root@liyanzhao~]# host sunrisenan.com
sunrisenan.com has address 118.190.174.159

[root@liyanzhao~]# nslookup sunrisenan.com
Server: 211.161.122.200
Address: 211.161.122.200#53

Name: sunrisenan.com
Address: 118.190.174.159

6.3 traceroute命令

traceroute命令是用来路由跟踪, 检测网络故障出现在ISP运营商或是对端服务无法响应。

1
2
3
4
5
6
7
[root@liyanzhao~]# traceroute liyanzhao.com
traceroute to liyanzhao.com (118.190.174.159), 64 hops max, 52 byte packets
1 192.168.160.2 (192.168.160.2) 1.498 ms 1.322 ms 1.272 ms
2 172.16.1.1 (172.16.1.1) 1.449 ms 1.259 ms 1.150 ms
3 211.161.160.1 (211.161.160.1) 2.420 ms 3.109 ms 2.672 ms
4 * * *
5 * * *

6.4 ss/netstat命令

ss/netstat命令查看网络连接状态。

ss命令常用选项

选项 功能 示例
-t tcp协议的连接 ss -t
-a 所有状态的连接 ss -a
-n 数字化输出 ss -n
-u udp协议的连接 ss -u
-l 处于listen状态的连接 ss -l
-p 输出相应进程的名字 ss -p

ss命令示例

1
2
3
4
5
6
# Show TCP sockets (LISTEN)
[root@liyanzhao~]# ss -tnl
[root@liyanzhao~]# ss -tnl |grep :80
[root@liyanzhao~]# ss -tnl |grep :21
[root@liyanzhao~]# ss -atn
[root@liyanzhao~]# ss -atn |grep :22

6.5 常见端口

服务 端口 协议
http 80/tcp TCP
https 443/tcp TCP
ssh 22/tcp TCP
ftp 20,21/tcp TCP
mysql 3306/tcp TCP
rsync 873/tcp TCP
redis 6379/tcp TCP

6.6 网络故障排查

网络故障分类

网络故障分为硬件\软件故障:

  • 硬件故障: 网卡损坏、链路故障、网卡驱动不兼容
  • 软件故障: 配置错误、服务未启动、防火墙阻止

网络排查思路

  1. ping本地回环口, 确定本机TCP/IP协议栈是否正常

    1
    ping 127.0.0.1
  2. ping本机IP地址, 确定本地设备以及驱动是否正常

    1
    ping 192.168.1.100
  3. ping同网段主机, 确定二层网络是否正常工作

    1
    ping 192.168.1.101
  4. ping网关地址, 确定本地与网络是否正常

    1
    ping 192.168.1.1
  5. ping公网地址, 确定本地路由是否正常

    1
    ping 8.8.8.8
  6. ping公网域名, 确定DNS客户端是否正常

    1
    ping www.baidu.com

服务故障排查思路

  1. 使用telnet检测端口是否开放

    1
    telnet 192.168.1.100 80
  2. 检查服务端防火墙以及SElinux

    1
    2
    systemctl status firewalld
    getenforce
  3. 检查相应的权限是否配置正常

    1
    ls -l /etc/nginx/nginx.conf
  4. 检查日志是否有异常

    1
    2
    tail -f /var/log/messages
    journalctl -xe
  5. 检查完毕后持续测试

    1
    curl http://192.168.1.100

建议: 所有的排查思路都从OSI七层模型由下往上逐一进行排查(学会看日志)


7. Linux7修改网卡为eth0

7.1 已安装系统修改网卡命名

已安装Linux7系列操作系统, 修改网卡命名规则为eth0 eth1。

步骤1: 修改网卡配置文件

1
2
3
4
5
[root@linux-node2~]# cd /etc/sysconfig/network-scripts/
[root@linux-node2 network-scripts]# mv ifcfg-eno16777728 ifcfg-eth0
[root@linux-node2 network-scripts]# vim ifcfg-eth0
NAME=eth0
DEVICE=eth0

步骤2: GRUB添加kernel参数

1
2
3
4
[root@liyanzhao~]# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="...net.ifnames=0 biosdevname=0 quiet"

[root@liyanzhao~]# grub2-mkconfig -o /boot/grub2/grub.cfg

步骤3: 重启系统生效

1
[root@liyanzhao~]# reboot

步骤4: 安装net-tools包

默认centos7不支持ifconfig命令安装net-tools包

1
2
3
4
5
6
7
8
9
10
11
[root@liyanzhao~]# yum install net-tools
[root@liyanzhao~]# ifconfig eth0 # 再次查看网卡信息
eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.12 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe5c:7bb1 prefixlen 64
scopeid 0x20<link>
ether 00:0c:29:5c:7b:b1 txqueuelen 1000 (Ethernet)
RX packets 152 bytes 14503 (14.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 98 bytes 14402 (14.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

7.2 安装系统时修改网卡命名

在安装系统选择Install Centos7按下Tab设定kernel内核参数。

增加内核参数: net.ifnames=0 biosdevname=0

这样安装完成后,网卡就会使用传统的eth0命名方式。


8. 网络管理命令总结

8.1 网络接口查看命令

命令 功能 示例
ifconfig 查看网络接口 ifconfig
ifconfig -a 查看所有接口 ifconfig -a
ip addr 查看IP地址 ip addr show
ip link 查看链路信息 ip link show

8.2 NetworkManager命令

命令 功能 示例
nmcli device 查看设备状态 nmcli device
nmcli connection 查看连接 nmcli connection
nmcli con add 创建连接 nmcli con add ...
nmcli con modify 修改连接 nmcli con modify ...
nmcli con up 激活连接 nmcli con up eth0
nmcli con down 停用连接 nmcli con down eth0
nmcli con delete 删除连接 nmcli con delete eth0

8.3 路由管理命令

命令 功能 示例
route -n 查看路由表 route -n
route add 添加路由 route add -net 192.168.90.0/24 gw 192.168.56.254
route del 删除路由 route del -net 192.168.90.0/24
ip route 查看路由 ip route show
ip route add 添加路由 ip route add 192.168.90.0/24 via 192.168.56.254

8.4 网络检测命令

命令 功能 示例
ping 测试连通性 ping 192.168.1.1
host DNS查询 host example.com
nslookup DNS查询 nslookup example.com
traceroute 路由跟踪 traceroute example.com
ss 查看网络连接 ss -tnl
netstat 查看网络连接 netstat -tnl

8.5 主机名命令

命令 功能 示例
hostname 查看/设置主机名 hostname
hostnamectl 管理主机名 hostnamectl set-hostname name

9. 网络配置文件位置

9.1 主要配置文件

文件 说明
/etc/sysconfig/network-scripts/ifcfg-* 网卡配置文件
/etc/hosts 主机名解析文件
/etc/resolv.conf DNS配置文件
/etc/hostname 主机名文件
/etc/sysconfig/network 网络全局配置

9.2 配置文件示例

ifcfg-eth0示例

1
2
3
4
5
6
7
8
9
10
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
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

10. 网络管理最佳实践

10.1 配置建议

  1. 使用NetworkManager: CentOS7推荐使用NetworkManager管理网络
  2. 使用UUID: 网卡配置使用UUID而不是设备名
  3. 规范命名: 主机名遵循命名规范
  4. 备份配置: 修改网络配置前备份配置文件

10.2 故障排查建议

  1. 分层排查: 从OSI七层模型底层开始排查
  2. 查看日志: 使用journalctl/var/log/messages查看日志
  3. 测试工具: 使用ping、traceroute等工具逐步排查
  4. 文档记录: 记录网络配置和变更历史

实战优化