Linux 日志管理

rsyslog 日志配置

最佳实践

  1. 故障1:sshd_config文件丢失

    模拟:

    [root@server ~]# mv /etc/ssh/sshd_config .
    [root@server ~]# systemctl restart sshd
    

    1.将/etc/ssh/目录下的sshd_config移动到当前目录下

    2.重启ssh服务——会失败,因为在/etc/ssh/目录下找不到sshd_config文件

    监控日志:

    [root@server ~]# tail -f /var/log/messages 
    Dec 29 11:39:41 server systemd: Stopped OpenSSH server daemon.
    Dec 29 11:39:41 server systemd: Starting OpenSSH server daemon...
    #######################################################################################
    Dec 29 11:39:41 server sshd: /etc/ssh/sshd_config: No such file or directory
    #######################################################################################
    Dec 29 11:39:41 server systemd: sshd.service: main process exited, code=exited, status=1/FAILURE
    Dec 29 11:39:41 server systemd: Failed to start OpenSSH server daemon.
    Dec 29 11:39:41 server systemd: Unit sshd.service entered failed state.
    Dec 29 11:39:41 server systemd: sshd.service failed.
    

    根据提示恢复文件。

    [root@server ~]# mv sshd_config /etc/ssh/
    [root@server ~]# systemctl restart sshd
    
  2. 故障2:sshd_config配置错误

    模拟故:echo hello world >> /etc/ssh/sshd_config

    [root@server ~]# echo hello world >> /etc/ssh/sshd_config
    

    监控日志:

    [root@server ~]# tail -f /var/log/messages 
    Dec 29 11:49:01 server systemd: Stopping OpenSSH server daemon...
    Dec 29 11:49:01 server systemd: Stopped OpenSSH server daemon.
    Dec 29 11:49:01 server systemd: Starting OpenSSH server daemon...
    #######################################################################################
    Dec 29 11:49:01 server sshd: /etc/ssh/sshd_config: line 144: Bad configuration option: hello
    Dec 29 11:49:01 server sshd: /etc/ssh/sshd_config: terminating, 1 bad configuration options
    #######################################################################################
    Dec 29 11:49:01 server systemd: sshd.service: main process exited, code=exited, status=255/n/a
    Dec 29 11:49:01 server systemd: Failed to start OpenSSH server daemon.
    Dec 29 11:49:01 server systemd: Unit sshd.service entered failed state.
    Dec 29 11:49:01 server systemd: sshd.service failed.
    

    根据提示修复配置文件错误。

补充

  • 虽然系统提供了日志服务,但并不会记录所有内容。

  • 系统中的应用程序是否使用 rsyslog 服务记录日志,取决于应用程序设计。

    例如:

    • httpd 服务使用自己的日志记录。

    • sshd 服务使用 rsyslog 服务记录登录和退出日志。

[root@server ~]# grep AUTHPRIV /etc/ssh/sshd_config 
SyslogFacility AUTHPRIV

[root@server ~]# grep ^authpri /etc/rsyslog.conf 
authpriv.*                                              /var/log/secure

[root@server ~]# tail -1 /var/log/secure 
Jul 25 14:10:39 server sshd[20527]: pam_unix(sshd:session): session opened for user root by (uid=0)

systemd-journald 日志

systemd-journald 日志持久化保存

systemd-journald 配置文件 /etc/systemd/journald.conf

详情参考 journald.conf(5)

Storage 参数,更改参数值后需要重启systemd-journald服务。

  • persistent:将日志存储在/var/log/journal目录中,这可在系统重启后持久保留。如果/var/log/journal目录不存在,systemd-journald服务会创建它。
  • volatile:将日志存储在易失性/run/log/journal目录中。因为/run文件系统是临时的,仅存在于运行时内存中,存储在其中的数据(包括系统日志)不会在系统启后持久保留。
  • auto:如果/var/log/journal目录存在,那么rsyslog会使用持久存储,否则使用易失性存储。如果未设置Storage参数,此为默认操作。
[root@server ~]# vim /etc/systemd/journald.conf 
......
[Journal]
# Storage=auto
Storage=persistent
......
[root@server ~]# systemctl restart systemd-journald

systemd-journald 日志分析

journalctl 命令

作用:是systemd的日志查看工具

语法:journalctl [选项] [匹配条件]

常见选项:

选项 作用
-f 实时追踪日志
-b 数字(之前的要带’-'号) 查看之前某次启动的日志
-n 数字 只显示最近的 N 条日志
-p err 只看错误级别
–since “时间” 查看指定时间之后的日志
–until “时间” 查看指定时间之前的日志
-u 服务名 查看指定 systemd 服务的日志
-o verbose 显示所有字段的详细信息
[root@server ~]# ls /var/log/journal/
b8b0960cabe3452ca432f45acb1df028

# systemd-journald日志是以二进制方式存储,不能使用常规文本工具查看
# 查看所有日志条目,默认使用less查看文档
[root@server ~]# journalctl

# 动态查看所有日志条目
[root@server ~]# journalctl -f

# 查看本次系统启动到现在所有日志条目
[root@server ~]# journalctl -b 0
# 1 第1次启动的日志
# 2 第2次启动的日志
# N 第n次启动的日志

# 查看最近5条日志
[root@server ~]# journalctl -n 5

# 查看error级别日志
[root@server ~]# journalctl -p err
[root@server ~]# journalctl -p err | cat 

# 根据时间查看日志
[root@server ~]# journalctl --since today
[root@server ~]# journalctl --since "2019-02-10 20:30:00" --until "2019-02-13 12:00:00"
[root@server ~]# journalctl --since "-1 hour"

# 详细查看所有日志
[root@server ~]# journalctl -o verbose

# 查看特定unit日志
[root@server ~]# journalctl -u sshd.service

最佳实践

故障1:配置文件丢失
[root@server ~]# mv /etc/ssh/sshd_config .
[root@server ~]# systemctl restart sshd

处理过程:通过日志发现 /etc/ssh/sshd_config: No such file or directory,文件丢失。

# 重启服务时,动态监控日志
[root@server ~]# journalctl -f
728 13:52:26 server.laoma.cloud systemd[1]: Starting OpenSSH server daemon...
728 13:52:26 server.laoma.cloud sshd[2045]: /etc/ssh/sshd_config: No such file or directory
728 13:52:26 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=1/
728 13:52:27 server.laoma.cloud systemd[1]: Failed to start OpenSSH server
......

# 移动回来,并重启服务
[root@server ~]# mv sshd_config /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd
故障2:配置文件参数错误
[root@server ~]# echo 'PermitRootLogin hahaha' >> /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd

处理过程:通过日志发现/etc/ssh/sshd_config line 141: unsupported option "hahaha".

# 重启服务时,动态监控日志
[root@server ~]# journalctl -f
728 14:30:03 server.laoma.cloud systemd[1]: Stopped OpenSSH server daemon.
728 14:30:03 server.laoma.cloud systemd[1]: Starting OpenSSH server daemon...
728 14:30:03 server.laoma.cloud sshd[2806]: /etc/ssh/sshd_config line 141: unsupported option "hahaha".
728 14:30:03 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=25
728 14:30:03 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
728 14:30:03 server.laoma.cloud systemd[1]: Unit sshd.service entered failed state.

# 清理对应无效记录,并重启服务
[root@server ~ 14:33:32]# sed -i '/hahaha/d' /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd

补充:

sed命令

作用:对文本进行查找、替换、删除、插入等操作

语法:sed [选项] ‘命令’ 文件名

sed的工作方式:逐行读取文件,对每一行执行指定的操作,然后输出结果(默认不修改源文件)

常见选项:

选项 作用 示例
-n 安静模式(只输出被处理的行) sed -n ‘3p’ file.txt
-i 直接修改文件(不输出到屏幕) sed -i ‘s/old/new/g’ file.txt
-i.bak 修改前先备份(生成 .bak 文件) sed -i.bak ‘s/old/new/g’ file.txt
-e 执行多个命令 sed -e ‘s/old/new/’ -e ‘3d’ file.txt
-r-E 使用扩展正则表达式 sed -r ‘s/(old)/new/g’ file.txt

常用命令:

命令 作用 示例
sed ‘s/旧/新/g’ 文件 替换所有匹配的字符串 sed ‘s/root/admin/g’ /etc/passwd
sed ‘3d’ 文件 删除第 3 行 sed ‘3d’ file.txt
sed ‘/pattern/d’ 文件 删除匹配行 sed ‘/^#/d’ file.txt
sed -n ‘1,5p’ 文件 打印第 1 到 5 行 sed -n ‘1,5p’ file.txt
sed -i ‘s/旧/新/g’ 文件 直接修改文件(危险!) sed -i ‘s/old/new/g’ file.txt

常用命令详解(单引号内的部分):

字母 含义
s 替换
d 删除
p 打印
i/a 插入和追加
c 替换整行
故障3:配置文件参数错误
[root@server ~]# yum install -y httpd
[root@server ~]# sed -i 's/Listen 80/Listen 80000/g' /etc/httpd/conf/httpd.conf
[root@server ~]# systemctl restart httpd

处理过程:通过日志发现 AH00526: Syntax error on line 42 of /etc/httpd/conf/httpd.conf

# 重启服务时,动态监控日志
[root@server ~]# journalctl -f
728 14:34:49 server.laoma.cloud systemd[1]: Starting The Apache HTTP Server...
728 14:34:49 server.laoma.cloud httpd[2877]: AH00526: Syntax error on line 42 of /etc/httpd/conf/httpd.conf:
728 14:34:49 server.laoma.cloud httpd[2877]: Invalid address or port
728 14:34:49 server.laoma.cloud systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
728 14:34:49 server.laoma.cloud systemd[1]: Failed to start The Apache HTTP Server.
728 14:34:49 server.laoma.cloud systemd[1]: Unit httpd.service entered failed state.

# 修改回来,并重启服务
[root@server ~]# sed -i 's/Listen 80000/Listen 80/g' /etc/httpd/conf/httpd.conf
[root@server ~]# systemctl restart httpd

Linux 时间管理

系统时间设置

date 命令

设置为特定时间,时间字符串必须是英文格式

# 设置语言为英语
[root@centos7 ~]# LANG=en_US.utf8 date
Thu Nov 10 11:30:59 CST 2022
# 中文语言代码为zh_CN.utf-8

# 设置为特定时间,时间字符串必须是英文格式
[root@centos7 ~]# date -s '2022年 11月 11日 星期四 11:30:10 CST'
date: 无效的日期"2022年 11月 11日 星期四 11:30:10 CST"

[root@centos7 ~]# date -s 'Thu Nov 11 11:30:59 CST 2022'
20221111日 星期五 11:30:59 CST

hwclock 命令

作用:查看和设置硬件时钟(RTC,实时时钟)

语法:hwclock [选项] [时间参数]

常见选项:

选项 作用 示例
无选项 显示硬件时钟当前时间 hwclock
-r或–show 显示硬件时钟时间 hwclock -r
-w–systohc 系统时间 → 写入硬件时钟(将当前系统时间保存到硬件) hwclock -w
-s–hctosys 硬件时钟 → 写入系统时间(用硬件时间校准系统时间) hwclock -s
# 读取硬件时钟
[root@centos7 ~]# hwclock -r
2022年11月11日 星期五 11时35分56秒  -0.320836# 将硬件时钟时间设置与系统时间一致
[root@centos7 ~]# hwclock -w

# 将系统时间设置与硬件时钟时间一致
[root@centos7 ~]# hwclock -s

timedatectl 命令

作用:用于查看和设置系统时间、时区、NTP同步等命令

语法:timedatectl [选项] [子命令] [参数]

常用命令:

命令 作用
timedatectl 查看当前系统时间、时区、NTP 状态等全部信息
timedatectl list-timezones 列出所有可用时区(用于查找时区名)
timedatectl set-timezone 时区 设置系统时区
timedatectl set-time “时间” 手动设置系统时间(需先关闭 NTP 同步)
timedatectl set-ntp true/false 开启/关闭 NTP 自动同步
[root@centos7 ~]# timedatectl
      Local time: 五 2022-11-11 11:38:00 CST
  Universal time: 五 2022-11-11 03:38:00 UTC
        RTC time: 五 2022-11-11 03:38:07
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

# RTC real time clock,也就是硬件时钟时间。
# NTP enabled: yes,代表对时服务chronyd应开机自启。

# 关闭自动对时
[root@centos7 ~]# timedatectl set-ntp no
[root@centos7 ~]# timedatectl 
      Local time: Thu 2022-11-10 11:43:16 CST
  Universal time: Thu 2022-11-10 03:43:16 UTC
        RTC time: Thu 2022-11-10 03:43:16
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

[root@centos7 ~]# timedatectl set-time '2022-11-10 11:42:54'

# 如果自动对时未关闭,显示如下
[root@centos7 ~]# timedatectl set-time '2022-11-10 11:42:54'
Failed to set time: Automatic time synchronization is enabled

# 设置时区
[root@centos7 ~]# timedatectl set-timezone Asia/Shanghai

tzselect 命令

作用:查询时区名称

[root@centos7 ~]# tzselect 
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan		  18) Israel		    35) Palestine
 2) Armenia		  19) Japan		    36) Philippines
 3) Azerbaijan		  20) Jordan		    37) Qatar
 4) Bahrain		  21) Kazakhstan	    38) Russia
 5) Bangladesh		  22) Korea (North)	    39) Saudi Arabia
 6) Bhutan		  23) Korea (South)	    40) Singapore
 7) Brunei		  24) Kuwait		    41) Sri Lanka
 8) Cambodia		  25) Kyrgyzstan	    42) Syria
 9) China		  26) Laos		    43) Taiwan
10) Cyprus		  27) Lebanon		    44) Tajikistan
11) East Timor		  28) Macau		    45) Thailand
12) Georgia		  29) Malaysia		    46) Turkmenistan
13) Hong Kong		  30) Mongolia		    47) United Arab Emirates
14) India		  31) Myanmar (Burma)	    48) Uzbekistan
15) Indonesia		  32) Nepal		    49) Vietnam
16) Iran		  33) Oman		    50) Yemen
17) Iraq		  34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

	China
	Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:	Mon Jul 28 16:03:22 CST 2025.
Universal Time is now:	Mon Jul 28 08:03:22 UTC 2025.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
	TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /bin/tzselect command in shell scripts:
Asia/Shanghai

windows 自动对时

在这里插入图片描述

自动对时-chronyd 服务

常用命令:

命令 作用
chronyc sources 查看时间源列表(简要)
chronyc sources -v 查看时间源列表(详细)
chronyc sourcestats 查看时间源的统计信息
chronyc tracking 查看系统时钟的详细同步状态
chronyc activity 查看当前 NTP 活动情况
# 安装软件包
[root@centos7 ~]# yum install chrony

# 修改对时服务器
[root@centos7 ~]# vim /etc/chrony.conf
# 与时间池对时
# 时间池是包含多个时间服务器的服务器组
pool 2.rocky.pool.ntp.org iburst

# 与单个服务器 ntp.aliyun.com 对时
server ntp.aliyun.com iburst

# 启用并启动chronyd服务
[root@centos7 ~]# systemctl enable chronyd --now

# 如果之前已经启动,需要重启
[root@centos7 ~]# systemctl restart chronyd

# 验证对时情况
[root@centos7 ~]# chronyc sources -v
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                2   6    77     9  -1840us[-4378us] +/-   23ms

补充:vim 高级用法

vim 高级用法,可视化模式:
功能1:批量增加内容,例如注释多行内容

  1. 光标定位到目标位置,ctrl+v
  2. 向下移动光标,按需选中多行
  3. I 进行插入,写入#
  4. esc

功能2:列删除,例如批量解除注释

  1. 光标定位到目标位置,ctrl+v
  2. 向下移动光标,按需选中多行
  3. x或d

功能3:列复制并粘贴,例如批量增加主机名后缀

  1. 光标定位到目标位置,ctrl+v
  2. 向下移动光标(可以上下左右同时移动,选冲矩形块),按需选中
  3. y复制
  4. 光标定位到目标位置,p粘贴

部署时间服务器

chrony 既可以作为客户端,也可以作为服务端(为客户端提供对时服务)。

服务端

[root@server ~]# vim /etc/chrony.conf
# 最后添加两条记录

# 配置监听地址
bindaddress 10.1.8.10

# 配置允许哪些网段主机同步
allow 10.1.8.0/24

[root@server ~]# systemctl restart chronyd

# 停止防火墙服务
[root@server ~]# systemctl stop firewalld.service

必须确保服务端时间的准确性、有效性。

客户端

# 修改对时服务器
[root@client ~]# vim /etc/chrony.conf
# 与单个服务器 10.1.8.10 对时
server 10.1.8.10 iburst

[root@client ~]# systemctl restart chronyd
[root@client ~]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* server.laoma.cloud            3   6     7     1    -10us[  +43ms] +/-   76ms

Linux 网络管理

网络基础回顾

OSI 模型

在这里插入图片描述

  1. 物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
  2. 数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
  3. 网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
  4. 传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。
  5. 会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
  6. 表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
  7. 应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

TCP/IP 模型

在这里插入图片描述

在这里插入图片描述

IPV4 地址

在这里插入图片描述

在这里插入图片描述

IPV4 路由

在这里插入图片描述

查看网络配置

网卡信息

网卡名称:

  • 旧名称,eth0 eth1 (Ethernet)
  • 新名称,根据网卡的拓扑类型命名。例如ens192,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命名。


拓展:

ip命令

作用:用于网络配置管理

语法:ip [选项] 操作对象 子命令 [参数]

  • 操作对象:如 link(网络接口)、addr(IP 地址)、route(路由表)、neigh(邻居/ARP)等
  • 子命令::对对象执行的动作,如 show(查看)、add(添加)、del(删除)、set(设置)等

常见选项:

选项 作用 示例
-s 显示统计信息(收发数据包数量) ip -s link show ens33
-h 人类可读格式(显示速率) ip -h -s link show ens33
-4 只显示 IPv4 信息 ip -4 addr show
-6 只显示 IPv6 信息 ip -6 addr show
-br 简洁输出(适合脚本) ip -br addr show
-c 彩色输出 ip -c addr show

route命令

作用:查看和修改路由表

语法:route [选项] [子命令] [参数]

常用命令:

命令 作用
route -n 查看路由表(最常用-n 用 IP 显示,不解析域名)
route add default gw 网关 添加默认网关
route add -net 目标网段 gw 网关 添加静态路由
route del default gw 网关 删除默认网关

查看 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> 
virbr0           DOWN           52:54:00:0f:b0:ac <NO-CARRIER,BROADCAST,MULTICAST,UP> 
virbr0-nic       DOWN           52:54:00:0f:b0:ac <BROADCAST,MULTICAST>
... ...

# 查看单个网络设备信息
[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

说明:

  1. 直连网络10.1.8.0/24和192.168.122.0/24,可以 直接通信。
  2. 其他网络中主机,通过默认路由发送到目标,这里是default对应的条目,也就是10.1.8.2。

查看 dns

/etc/resolv.conf 文件中nameserver指明服务想哪个DNS服务器查询域名对应IP。

[root@centos7 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search pengyuyan.cloud
nameserver 223.5.5.5
nameserver 223.6.6.6

网络连通性测试

ping 测试

作用:用来测试网络连通性

语法:ping [选项] 目标主机

常见选项:

选项 作用 示例
-c 次数 发送指定次数后自动停止 ping -c 4 10.1.8.1
-i 秒数 设置发送间隔(默认 1 秒) ping -i 0.5 10.1.8.1
-W 秒数 设置超时时间(默认 10 秒) ping -W 2 10.1.8.1
-s 大小 指定数据包大小(默认 56 字节) ping -s 1000 10.1.8.1
-t TTL 设置 TTL 值 ping -t 64 10.1.8.1
-4 强制使用 IPv4 ping -4 google.com
-6 强制使用 IPv6 ping -6 google.com
-q 安静模式(只显示汇总结果) ping -q -c 4 10.1.8.1

常用命令:

命令 作用
ping 目标IP 测试连通性,持续发送 ICMP 包(Ctrl+C 停止)
ping -c 4 目标IP 发送 4 个 ICMP 包后自动停止(最常用)
ping -c 4 -i 0.5 目标IP 每 0.5 秒发一个包(默认 1 秒)
# 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 路由跟踪

作用:实时显示数据包从本机到目标主机所经过的每一条路由器的连通性和延迟

语法:mtr [选项] 目标主机

  • 目标主机:可以是IP地址和域名

常见选项:

选项 作用 示例
-r 报告模式(只输出一次,适合脚本) mtr -r 10.1.8.1
-c 次数 发送指定次数后停 mtr -c 10 10.1.8.1
-n 不解析域名(显示 IP,更快) mtr -n 10.1.8.1
-i 秒数 设置发包间隔(默认 1 秒) mtr -i 0.5 10.1.8.1
-s 大小 设置数据包大小(字节) mtr -s 1000 10.1.8.1
-4 / -6 强制使用 IPv4 / IPv6 mtr -4 google.com
-w 宽输出(显示更长的主机名) mtr -w 10.1.8.1
# ping 主机不通,此时跟踪路由,查看数据最远到达的位置
[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 命令。

作用:用于查看系统中网络状态信息

语法:ss [选项] [过滤条件]

常见选项:

选项 含义
-l 只显示监听中的套接字(LISTEN)
-a 显示所有套接字(含监听和非监听)
-e 显示扩展信息(uid、ino 等)
-p 显示进程 PID 和程序名
-n 数字显示(不解析域名)
# 默认显示是 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 ~]# cd /usr/share/nginx/html/
[root@server html]# ls
404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  poweredby.png
[root@server html]# mv index.html index.html.ori
[root@server html]# echo "Hello World" > index.html
[root@server html]# 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

案例

模拟:

[root@server ~]# systemctl stop sshd
[root@server ~]# /sbin/sshd

现象:

  1. 重启sshd服务,状态是inactive。
  2. 客户端可以正常ssh登录服务器

处理过程:

  1. 确认服务状态。
[root@server ~ 15:43:09]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since 五 2026-07-24 15:43:09 CST; 21s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 6727 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255)
 Main PID: 6727 (code=exited, status=255)

724 15:43:09 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
724 15:43:09 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
724 15:43:09 server.laoma.cloud systemd[1]: Unit sshd.service entered failed state.
724 15:43:09 server.laoma.cloud systemd[1]: sshd.service failed.
  1. 尝试重启,确认重启失败原因。
[root@server ~ 15:43:31]# systemctl restart sshd.service
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
# 查看
  1. 查看日志
[root@server ~ 15:47:25]# journalctl -u sshd
....
############################################################################################
724 15:45:58 server.laoma.cloud sshd[6809]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
724 15:45:58 server.laoma.cloud sshd[6809]: error: Bind to port 22 on :: failed: Address already in use.
724 15:45:58 server.laoma.cloud sshd[6809]: fatal: Cannot bind any address.
############################################################################################
724 15:45:58 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
724 15:45:58 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
724 15:45:58 server.laoma.cloud systemd[1]: Unit sshd.service entered failed state.

日志表明:22端口被占用。

  1. 查看谁占用22端口:发现sshd已经运行了。可以理解当前客户端为什么能够登录。
[root@server ~ 15:49:51]# ss -lntu4p|grep :22
tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=6670,fd=3))
  1. 但是不受systemd管理了。解决办法:kill 当前sshd进程,通过systemctl start sshd。
[root@server ~ 15:52:21]# pkill -9 sshd
# 尝试重启sshd服务:正常重启
[root@server ~ 15:53:21]# systemctl restart sshd

配置网络

网络配置是由 NetworkManager 服务管理的,确保该服务开机自启。

环境准备

  1. 虚拟机新增加一个NAT网卡。

  2. 自动获取的前提条件是直连的网络中有dhcp服务器。

    对于 vmware workstations:

    在这里插入图片描述

nmtui 命令

自动配置
# 服务器配置
[root@centos7 ~]# nmtui

使用上下键、tab进行移动,回车选中条目。

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

返回

在这里插入图片描述

在这里插入图片描述

更改完成后,选择启用连接,重新激活ens192。

手动配置

部分截图

在这里插入图片描述

更改完成后,重新激活ens192。

**思考:**什么情况下用自动配置和手动配置?

  • 自动配置:无静态IP地址需求的其他情况。例如:办公环境员工的电脑,公共场所无线。
  • 手动配置:需要一个静态IP地址,例如:对外提供服务的数据库服务器,需要一个静态的IP地址。

nmcli 命令

作用:用于查看、配置和管理网络连接

语法:nmcli [选项] 对象 {子命令}

  • 对象:要操作的对象,如 general(常规)、networking(网络)、device(设备)、connection(连接)
  • 子命令:对对象执行的动作,如 show(查看)、up(启用)、down(禁用)、modify(修改)

常用命令:

命令 作用
nmcli networking on 开启网络(所有连接)
nmcli networking off 关闭网络(所有连接)
nmcli networking connectivity 检查网络连通性
网络启停

如果网络停用,右上角网络链接图标消失。图形化界面效果如下:

消失前

在这里插入图片描述

消失后
在这里插入图片描述

# 停用网络,并不会停止 NetworkManager 服务。
[root@server ~]# nmcli networking off
# 网卡状态变化:activated -> deactivating -> disconnected -> unmanaged -> unavailable 

# 启用网络
[root@server ~]# nmcli networking on
# 网卡状态变化:unavailable -> disconnected -> auto-activating
设备控制
  • DEVICE,是设备,也就是网卡。
  • CONNECTION,是连接,也就是网卡的配置。

一个 DEVICE 可以有多个配置,同一时刻只能激活一个配置。

常用命令:

命令 作用
nmcli dev status 查看所有网络设备的状态(最常用
nmcli dev show 查看所有设备的详细信息
nmcli dev show ens33 查看指定网卡的详细信息
nmcli dev connect ens33 连接(激活)一个设备
nmcli dev disconnect ens33 断开(停用)一个设备
nmcli dev wifi list 扫描可用的 Wi-Fi 网络
nmcli dev wifi connect SSID password 密码 连接 Wi-Fi
# 显示设备列表状态信息
[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
动态获取

常见命令:

命令 作用
nmcli con show 查看所有连接配置
nmcli con show --active 查看当前活动的连接
nmcli con show “连接名” 查看某个连接的具体配置
nmcli con up “连接名” 激活一个连接
nmcli con down “连接名” 停用一个连接
nmcli con delete “连接名” 删除一个连接配置
nmcli con add … 添加一个新的连接配置(见下方示例)
nmcli con mod “连接名” … 修改连接配置(见下方示例)
# 查看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)
静态配置

静态IP配置三步走:

  1. nmcli connection add … 添加连接并指定 IP
  2. nmcli connection modify … 追加网关和 DNS
  3. nmcli connection up … 激活生效
# 添加一个静态配置的连接
[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 

配置主机名和名称解析

配置主机名

主机名规范:短名称+域名,例如centos7.laoma.cloud。主机名是centos7,域名是laoma.cloud。

# 查看主机名
[root@centos7 ~]# hostname
centos7.laoma.cloud

# hostnamectl命令修改主机名同时会同修改配置文件/etc/hostname
[root@centos7 ~]# hostnamectl set-hostname centos7.laoma.cloud
# 或者直接修改配置文件
[root@centos7 ~]# vim /etc/hostname
centos7.laoma.cloud

# 重启依然有效
[root@centos7 ~]# reboot

# hostname命令设置的主机名,重启将失效。

配置名称解析

当访问其他主机的时候,名称也会映射为IP地址,与目标主机通信。

linux服务器解析名称顺序如下:

  1. /etc/hosts 文件
  2. DNS 服务器
配置 /etc/hosts
[root@centos7 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.1.8.10   centos7.laoma.cloud centos7 abc haha

[root@centos7 ~]# ping -c2 centos7
PING centos7.laoma.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from centos7.laoma.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from centos7.laoma.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.054 ms

--- centos7.laoma.cloud ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1023ms
rtt min/avg/max/mdev = 0.024/0.039/0.054/0.015 ms

[root@centos7 ~]# ping -c2 abc
PING centos7.laoma.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from centos7.laoma.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from centos7.laoma.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.043 ms

--- centos7.laoma.cloud ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1034ms
rtt min/avg/max/mdev = 0.026/0.034/0.043/0.010 ms

[root@centos7 ~]# ping rocky9
ping: rocky9: 未知的名称或服务
配置 DNS 服务器
# 删除 DNS 服务器配置
[root@centos7 ~]# nmcli connection modify ens160 -ipv4.dns 223.5.5.5
[root@centos7 ~]# nmcli connection up ens160

# 断开另外一个网卡
[root@centos7 ~]# nmcli device disconnect ens192

# 确保以下文件中没有 nameserver 记录
[root@centos7 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search laoma.cloud

[root@centos7 ~]# ping baidu.com
ping: baidu.com: 未知的名称或服务

# 配置DNS服务器,再验证
[root@centos7 ~]# nmcli connection modify ens160 ipv4.dns 223.5.5.5
[root@centos7 ~]# nmcli connection up ens160 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/24)
[root@centos7 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search laoma.cloud
nameserver 223.5.5.5

# ping公网服务器,通过 dns 服务器获取地址
[root@centos7 ~]# ping -c2 baidu.com 
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=35.5 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=34.6 ms

--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 34.667/35.115/35.563/0.448 ms

[root@centos7 ~]# ping -c2 www.baidu.com
PING www.a.shifen.com (180.101.50.242) 56(84) bytes of data.
64 bytes from 180.101.50.242 (180.101.50.242): icmp_seq=1 ttl=128 time=3.15 ms
64 bytes from 180.101.50.242 (180.101.50.242): icmp_seq=2 ttl=128 time=3.19 ms

--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 3.149/3.167/3.185/0.018 ms

# baidu.com 域中没有 hello 该主机,所以 找不到该主机
[root@centos7 ~]# ping hello.baidu.com
ping: hello.baidu.com: 未知的名称或服务
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐