彭于晏一个月带你玩转Linux操作系统7
Linux 日志管理
rsyslog 日志配置
最佳实践
-
故障1:sshd_config文件丢失
模拟:
[root@server ~]# mv /etc/ssh/sshd_config . [root@server ~]# systemctl restart sshd1.将/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: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
7月 28 13:52:26 server.laoma.cloud systemd[1]: Starting OpenSSH server daemon...
7月 28 13:52:26 server.laoma.cloud sshd[2045]: /etc/ssh/sshd_config: No such file or directory
7月 28 13:52:26 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=1/
7月 28 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
7月 28 14:30:03 server.laoma.cloud systemd[1]: Stopped OpenSSH server daemon.
7月 28 14:30:03 server.laoma.cloud systemd[1]: Starting OpenSSH server daemon...
7月 28 14:30:03 server.laoma.cloud sshd[2806]: /etc/ssh/sshd_config line 141: unsupported option "hahaha".
7月 28 14:30:03 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=25
7月 28 14:30:03 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
7月 28 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
7月 28 14:34:49 server.laoma.cloud systemd[1]: Starting The Apache HTTP Server...
7月 28 14:34:49 server.laoma.cloud httpd[2877]: AH00526: Syntax error on line 42 of /etc/httpd/conf/httpd.conf:
7月 28 14:34:49 server.laoma.cloud httpd[2877]: Invalid address or port
7月 28 14:34:49 server.laoma.cloud systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
7月 28 14:34:49 server.laoma.cloud systemd[1]: Failed to start The Apache HTTP Server.
7月 28 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'
2022年 11月 11日 星期五 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:批量增加内容,例如注释多行内容
- 光标定位到目标位置,ctrl+v
- 向下移动光标,按需选中多行
- I 进行插入,写入#
- esc
功能2:列删除,例如批量解除注释
- 光标定位到目标位置,ctrl+v
- 向下移动光标,按需选中多行
- x或d
功能3:列复制并粘贴,例如批量增加主机名后缀
- 光标定位到目标位置,ctrl+v
- 向下移动光标(可以上下左右同时移动,选冲矩形块),按需选中
- y复制
- 光标定位到目标位置,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 模型

- 物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
- 数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
- 网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
- 传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。
- 会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
- 表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
- 应用层:提供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
说明:
- 直连网络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 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
现象:
- 重启sshd服务,状态是inactive。
- 客户端可以正常ssh登录服务器
处理过程:
- 确认服务状态。
[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)
7月 24 15:43:09 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
7月 24 15:43:09 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
7月 24 15:43:09 server.laoma.cloud systemd[1]: Unit sshd.service entered failed state.
7月 24 15:43:09 server.laoma.cloud systemd[1]: sshd.service failed.
- 尝试重启,确认重启失败原因。
[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.
# 查看
- 查看日志
[root@server ~ 15:47:25]# journalctl -u sshd
....
############################################################################################
7月 24 15:45:58 server.laoma.cloud sshd[6809]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
7月 24 15:45:58 server.laoma.cloud sshd[6809]: error: Bind to port 22 on :: failed: Address already in use.
7月 24 15:45:58 server.laoma.cloud sshd[6809]: fatal: Cannot bind any address.
############################################################################################
7月 24 15:45:58 server.laoma.cloud systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
7月 24 15:45:58 server.laoma.cloud systemd[1]: Failed to start OpenSSH server daemon.
7月 24 15:45:58 server.laoma.cloud systemd[1]: Unit sshd.service entered failed state.
日志表明:22端口被占用。
- 查看谁占用22端口:发现sshd已经运行了。可以理解当前客户端为什么能够登录。
[root@server ~ 15:49:51]# ss -lntu4p|grep :22
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=6670,fd=3))
- 但是不受systemd管理了。解决办法:kill 当前sshd进程,通过systemctl start sshd。
[root@server ~ 15:52:21]# pkill -9 sshd
# 尝试重启sshd服务:正常重启
[root@server ~ 15:53:21]# systemctl restart sshd
配置网络
网络配置是由 NetworkManager 服务管理的,确保该服务开机自启。
环境准备
-
虚拟机新增加一个NAT网卡。
-
自动获取的前提条件是直连的网络中有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配置三步走:
- nmcli connection add … 添加连接并指定 IP
- nmcli connection modify … 追加网关和 DNS
- 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服务器解析名称顺序如下:
- /etc/hosts 文件
- 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: 未知的名称或服务
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)