CentOS 7.9 系统网络排故和配置详解
本文介绍了Linux网络管理的基本操作,主要包括网络配置查看和连通性测试。在查看网络配置部分,详细说明了网卡命名规则(如ens32、wlp4s0等)、使用ip命令查看link信息(MAC地址)、IP地址和路由表(包括默认网关),以及DNS服务器配置。网络连通性测试部分介绍了ping命令检查网络连通性、mtr工具进行路由跟踪,以及ss命令查看网络连接状态(如LISTEN和ESTABLISHED)。这
文章目录
网络管理
查看网络配置
网卡信息
网卡名称:
- 旧名称,eth0 eth1 (Ethernet)
- 新名称,根据网卡的拓扑类型命名。例如ens32,eno4。
**linux网络接口传统的名称为eth0 eth1 eth2 …ethN。**然而这种机制会引起一些问题,例如网络接口的增加和删除。
在rhel7或者更高版本中,接口命名规则如下:
- 前2个字符:Ethernet 接口以en开头,WLAN接口以wl开头,WWAN接口以ww开头。
- 下一个字符:o(onboard)代表板载设备,s(slot)代表PCI热插拔,p代表pci接口网卡。
- 最后N表示index ID或者port。
例如
-
eno1,代表Ethernet 类型、板载设备、端口号是1的网卡。
-
wlp4s0,代表位于PCI总线4上插槽0中的WLAN卡。如果该卡是一个多功能设备(具有多个端口或者具有一些其他功能)。示例,enp0s1f0代表位于PCI总线0上插槽1中的以太网卡的功能0。
-
如果无法分配固定接口名,将使用传统方式ethN命名。
查看 link
关注mac地址。
# 查看网络设备清单
[root@centos7 ~]# ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens32 UP 00:0c:29:38:6d:bd <BROADCAST,MULTICAST,UP,LOWER_UP>
... ...
# 查看单个网络设备信息
[root@centos7 ~]# ip link show ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:38:6d:bd brd ff:ff:ff:ff:ff:ff
查看 IP
关注IP地址和掩码位数:10.1.8.10/24。
[root@centos7 ~]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.10/24 fe80::6763:8ca5:3559:2caa/64
[root@centos7 ~]# ip addr show ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:38:6d:bd brd ff:ff:ff:ff:ff:ff
inet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::6763:8ca5:3559:2caa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
查看 route
default代表主机的网关,也就是10.1.8.2。
[root@centos7 ~]# ip route
default via 10.1.8.2 dev ens32 proto static metric 100
10.1.8.0/24 dev ens32 proto kernel scope link src 10.1.8.10 metric 100
# 还可以使用以下命令
[root@centos7 ~]# route -n
# 或者
[root@centos7 ~]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.8.2 0.0.0.0 UG 100 0 0 ens32
10.1.8.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
说明:
- 直连网络10.1.8.0/24和192.168.122.0/24,可以 直接通信。
- 其他网络中主机,通过默认路由发送到目标,这里是default对应的条目,也就是10.1.8.2。
查看 dns
/etc/resolv.conf 文件中nameserver指明服务想哪个DNS服务器查询域名对应IP。
[root@centos7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search laoma.cloud
nameserver 223.5.5.5
nameserver 223.6.6.6
测试网络连通性
ping 测试
# ping 测试,选项-c控制ping次数,选项-w控制ping超时时间
[root@centos7 ~]# ping baidu.com -c 4 -w 2
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=34.1 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=31.9 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=3 ttl=128 time=32.9 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=4 ttl=128 time=32.2 ms
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 31.985/32.808/34.118/0.839 ms
# 说明:
# 1- 能够解析出ip 说明DNS配置正确
# 2- 能ping 通说明我们的网关配置正确
mtr 路由跟踪
# ping 主机不通,此时跟踪路由,查看数据最远到达的位置
[root@centos7 ~]# yum install -y mtr
[root@centos7 ~]# mtr -n 1.1.1.1
ss 工具
/etc/services 文件存储常见端口和服务对应关系。
[root@server ~]# vim /etc/services
...
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
...
domain 53/tcp # name-domain server
domain 53/udp
...
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
...
https 443/tcp # http protocol over TLS/SSL
https 443/udp # http protocol over TLS/SSL
...
ss 命令用于查看系统中网络状态信息。
以前使用 **netstat **查看网络状态信息,使用方法等效与 ss 命令。
# 默认显示是 ESTAB 状态
[root@server ~]# ss | grep :ssh
tcp ESTAB 0 0 10.1.8.10:ssh 10.1.8.1:60081
tcp ESTAB 0 36 10.1.8.10:ssh 10.1.8.1:60229
# 只看 LISTEN,包含IPv4和IPv6
[root@server ~]# ss -l |grep :ssh
tcp LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
tcp LISTEN 0 128 [::]:ssh [::]:*
# 查看 ipv4 所有(LISTEN和ESTAB)网络状态
[root@server ~]# ss -a4|grep :ssh
tcp LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
tcp ESTAB 0 0 10.1.8.10:ssh 10.1.8.1:60081
tcp ESTAB 0 36 10.1.8.10:ssh 10.1.8.1:60229
# -n 将服务的名称显示为数字
[root@server ~]# ss -an4|grep :22
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp ESTAB 0 0 10.1.8.10:22 10.1.8.1:60081
tcp ESTAB 0 36 10.1.8.10:22 10.1.8.1:60229
# -p 显示相应的进程
[root@server ~]# ss -lnp4|grep :22
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=3186,fd=3)
模拟环境
[root@server ~]# yum install -y nginx
[root@server ~]# systemctl start nginx.service
[root@server ~]# echo "Hello World" > /usr/share/nginx/html/index.html
[root@server ~]# curl http://10.1.8.10
Hello World
[root@server ~]# yum install -y httpd
[root@server ~]# systemctl start httpd
[root@server ~]# systemctl status httpd.service|grep use
Jul 25 17:14:47 server.laoma.cloud httpd[14016]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Jul 25 17:14:47 server.laoma.cloud httpd[14016]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
查找端口被哪个程序使用
[root@server ~]# ss -lnp4|grep :80
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=14009,fd=6),("nginx",pid=14008,fd=6),("nginx",pid=14007,fd=6))
解决方法
[root@server ~]# systemctl stop nginx
[root@server ~]# systemctl start httpd
配置网络
网络配置是由 NetworkManager 服务管理的,确保该服务开机自启。
环境准备
-
虚拟机新增加一个NAT网卡。
-
自动获取的前提条件是直连的网络中有dhcp服务器。
对于 vmware workstations:

nmtui 命令
自动配置
# 服务器配置
[root@centos7 ~]# nmtui
使用上下键、tab进行移动,回车选中条目。

使用方向键,下移到最下面
返回

更改完成后,选择启用连接,重新激活ens33。
手动配置
部分截图
更改完成后,重新激活ens33。
**思考:**什么情况下用自动配置和手动配置?
- 自动配置:无静态IP地址需求的其他情况。例如:办公环境员工的电脑,公共场所无线。
- 手动配置:需要一个静态IP地址,例如:对外提供服务的数据库服务器,需要一个静态的IP地址。
nmcli 命令
网络启停
如果网络停用,右上角网络链接图标消失。图形化界面效果如下:
消失前

消失后

# 停用网络,并不会停止 NetworkManager 服务。
[root@server ~]# nmcli networking off
# 网卡状态变化:activated -> deactivating -> disconnected -> unmanaged -> unavailable
# 启用网络
[root@server ~]# nmcli networking on
# 网卡状态变化:unavailable -> disconnected -> auto-activating
设备控制
- DEVICE,是设备,也就是网卡。
- CONNECTION,是连接,也就是网卡的配置。
一个 DEVICE 可以有多个配置,同一时刻只能激活一个配置。
# 显示设备列表状态信息
[root@server ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
ens192 ethernet 已连接 ens192
virbr0 bridge 未托管 --
lo loopback 未托管 --
# 断开设备链接
[root@server ~]# nmcli device disconnect ens192
成功断开设备 "ens192"。
[root@server ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
ens192 ethernet 已断开 --
virbr0 bridge 未托管 --
lo loopback 未托管 --
# 连接设备
[root@server ~]# nmcli device connect ens192
成功用 "ens1920f5eac2c-9a92-494e-9cca-f97230d2314a" 激活了设备 ""。
[root@server ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
ens192 ethernet 已连接 ens192
virbr0 bridge 未托管 --
lo loopback 未托管 --
# 显示特定设备详细信息
[root@server ~]# nmcli device show ens192
GENERAL.DEVICE: ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:08:CF:C7
GENERAL.MTU: 1500
GENERAL.STATE: 100(已连接)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/15
WIRED-PROPERTIES.CARRIER: 开
IP4.ADDRESS[1]: 10.1.8.10/24
IP4.GATEWAY: 10.1.8.2
IP4.ROUTE[1]: dst = 10.1.8.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.1.8.2, mt = 101
IP4.DNS[1]: 223.5.5.5
IP4.DNS[2]: 114.114.114.114
IP6.ADDRESS[1]: fe80::20c:29ff:fe08:cfc7/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256
[root@server ~]# nmcli device show ens192 | grep IP4
IP4.ADDRESS[1]: 10.1.8.10/24
IP4.GATEWAY: 10.1.8.2
IP4.ROUTE[1]: dst = 10.1.8.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.1.8.2, mt = 101
IP4.DNS[1]: 223.5.5.5
IP4.DNS[2]: 114.114.114.114
动态获取
# 查看connection清单
[root@server ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
ens192 0f5eac2c-9a92-494e-9cca-f97230d2314a ethernet ens192
# 删除连接
[root@server ~]# nmcli connection delete ens192
成功删除连接 "ens192" (0f5eac2c-9a92-494e-9cca-f97230d2314a)。
[root@server ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
# 添加网卡配置:自动获取IP地址
[root@server ~]# nmcli connection add type ethernet ifname ens192 con-name ens192-dynamic
连接 "ens192-dynamic" (27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1) 已成功添加。
[root@server ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
ens192-dynamic 27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1 ethernet ens192
[root@server ~]# nmcli connection show ens192-dynamic
connection.id: ens192-dynamic
connection.uuid: 27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens192
...
ipv4.method: auto
...
ipv6.method: auto
...
# 修改配置指定获取IP方式
[root@server ~]# nmcli connection modify ens192-dynamic ipv4.method auto
# 激活配置
[root@server ~]# nmcli connection up ens192-dynamic
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/18)
静态配置
# 添加一个静态配置的连接
[root@server ~]# nmcli connection add type ethernet ifname ens192 con-name ens192-static ipv4.method manual ipv4.addresses 10.1.8.10/24
连接 "ens192-static" (652c8436-ac91-4697-b4ad-43d8dac83f8f) 已成功添加。
# 修改 ipv4 相关属性
[root@server ~]# nmcli connection modify ens192-static ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2
# 激活连接
[root@server ~]# nmcli connection up ens192-static
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/19)
# 查看状态
[root@server ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
ens192-static 652c8436-ac91-4697-b4ad-43d8dac83f8f ethernet ens192
ens192-dynamic 27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1 ethernet --
其他操作
# 停用连接
[root@server ~]# nmcli connection down ens192-static
成功停用连接 "ens192-static"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/20)
[root@server ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
ens192-dynamic 27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1 ethernet ens192
ens192-static 652c8436-ac91-4697-b4ad-43d8dac83f8f ethernet --
# 根据需要配置路由
[root@server ~]# nmcli connection modify ens192-static ipv4.routes "192.168.50.0/24 10.1.8.2"
网络配置文件
**提示:**尽量不要通过手动修改配置,来配置网络。
# 动态配置
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192-dynamic
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens192-dynamic
UUID=27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1
DEVICE=ens192
ONBOOT=yes
# 静态配置
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192-static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.1.8.10
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens192-static
UUID=652c8436-ac91-4697-b4ad-43d8dac83f8f
DEVICE=ens192
ONBOOT=yes
GATEWAY=10.1.8.2
DNS1=10.1.8.2
# 某个网卡的路由配置
[root@server ~]# cat /etc/sysconfig/network-scripts/route-ens192-static
ADDRESS0=192.168.50.0
NETMASK0=255.255.255.0
GATEWAY0=10.1.8.2
手动修改配置文件后,续需要重新加载才能生效:
[root@server ~]# nmcli connection reload
[root@server ~]# nmcli connection up ens192-static
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)