RH124
环境初始化
# 清除之前的课程缓存
[kiosk@foundation0 ~]$ rht-clearcourse all
# 指定课程环境为 RH124
[kiosk@foundation0 ~]$ rht-setcourse rh124
# 首先重新部署 classroom 虚拟机环境
[kiosk@foundation0 ~]$ rht-vmctl reset classroom
# 重新部署所有虚拟机
[kiosk@foundation0 ~]$ rht-vmctl reset all
红帽企业 Linux 入门
介绍开源、Linux、Linux 发行版和红帽企业 Linux,并明确相关定义
目标:描述和定义开源、Linux、Linux 发行版和红帽企业 Linux
培训目标:
- 定义和解释 Linux 用途、开源、Linux 发行版和红帽企业 Linux
章节:
- 什么是 Linux?(及测验)
什么是 Linux?
总结
- 开源软件的源代码可由任何人免费使用、研究、修改和共享
- Linux 发行版是一种可安装的操作系统,由 Linux 内核以及提供支持的用户程序和库构建而成
- 红帽为开源项目提供支持并贡献代码,赞助项目软件并将项目软件集成 到社区驱动的发行版中,同时经过调整和优化后产出稳定版软件,以作为受支持的企业就绪型产品提供给用户使用
- 红帽企业 Linux 是由红帽提供的、受商业支持的企业就绪型开源 Linux 发行版
- 免费的红帽开发人员订阅是一种非常实用的方式,可用来获取学习资源和信息,包括红帽企业 Linux 和其他红帽产品的开发人员订阅
访问命令行
登录 Linux 系统并使用 shell 运行简单的命令
目标:登陆 Linux 系统并从 shell 运行简单的命令
培训目标:
- 登陆 Linux 系统并使用 shell 运行简单的命令
- 使用 GNOME 桌面环境登陆 Linux 系统,并在终端程序中从 shell 提示符运行命令
- 从 shell 提示符运行命令时,使用 Bash 快捷键来节省时间
章节:
- 访问命令行(及测验)
- 使用桌面访问命令行(及引导式练习)
- 使用 Bash Shell 执行命令(及测验)
实验:访问命令行
访问命令行
在命令行中,不同的 shell 提示符代表着不同的用户状态
$
代表普通用户的状态#
代表超级用户的状态
使用 Ctrl
+Alt
+F1 - F6
功能键组合,可以切换各个虚拟控制台(tty)
使用桌面访问命令行
红帽企业 Linux 9 中,默认使用 GNOME 40
作为默认桌面环境
可以使用 Alt + F2
快捷键,然后输入 gnome-terminal
来启动桌面环境下的终端
使用 Bash Shell 执行命令
Ctrl + A
:跳到命令行的开头Ctrl + E
:跳到命令行的末尾Ctrl + U
将光标处到命令行开头的内容清除Ctrl + K
:将光标处到命令行末尾的内容清除Ctrl + LeftArrow
:跳到命令行中前一字的末尾Ctrl + RightArrow
:跳到命令行中下一字的末尾Ctrl + R
:在历史记录列表中搜索某一模式的命令
总结
- Bash shell 是一个命令解释器,它提示交互用户指定 Linux 命令
- 很多命令都有一个
--help
选项,可显示用法信息或屏幕 - 您可以使用工作区来整理多个应用窗口
- 顶栏左上角的 Activities 按钮可以提供一个概览模式,帮助用户整理窗口并启动应用。
file
命令可以扫描文件内容的开头,显示该文件的类型head
和tail
命令分别显示文件的开头和结尾部分- 您可以使用 Tab 补全在键入文件名作为命令的参数时将它们补全
- 您可以将图形界面用于许多管理任务。您可以禁用该界面,以保留用于运行应用的资源。
- 您可以使用分号
;
字符在同一行中编写多个命令,并使用反斜杠\
字符在多行中运行单个命令
使用命令行管理文件
通过 bash shell 复制、移动、创建、删除和整理文件
目标:从 Bash shell 中,复制、移动、创建、删除和组织文件
培训目标:
- 描述 Linux 如何组织文件,以及文件系统层次结构中各种目录的用途
- 指定文件的绝对位置和相对于当前工作目录的位置,确定并更改工作目录,以及列出目录的内容
- 创建、复制、移动和删除文件及目录
- 使用硬链接和符号(或 “软”)链接,使多个文件名引用同一文件
- 通过使用 Bash shell 的模式匹配功能,高效地运行影响很多文件的命令
章节:
- 描述 Linux 文件系统层次结构概念(及测验)
- 通过名称指定文件(及测验)
- 使用命令行工具管理文件(及引导式练习)
- 制作文件间的链接(及引导式练习)
- 使用 Shell 扩展匹配文件名(及测验)
实验:从命令行管理文件
描述 Linux 文件系统层次结构概念
TODO 在这里补上后续的内容
通过名称指定文件
使用命令行工具管理文件
制作文件间的链接
使用 Shell 扩展匹配文件名
总结
- Linux 系统中的文件都被组织到一个颠倒的目录树中,称为文件系统层次结构
- 绝对路径以正斜杠(
/
)开头,指定文件在文件系统层次结构中的位置 - 相对路径不以正斜杠(
/
)开头,指定文件相对于当前工作目录的位置 - 您可以将命令与句点(
.
)、双句点(..
)和波形符(~
)特殊字符结合使用,以引用文件系统中的文件位置 mkdir
、rmdir
、cp
、mv
和rm
命令是 Linux 中用于管理文件的关键命令- 硬链接和 软链接是让多个文件名指向同一数据的不同方式
- Bash shell 提供了模式匹配、扩展和替换功能,可帮助您高效地运行命令
获取有关红帽企业 Linux 的帮助
aka:在红帽 Linux 中获取帮助
使用本地帮助系统解决相关问题
目标:通过利用本地帮助系统来解决问题
培训目标:
- 在本地 Linux 系统手册页中查找信息
章节:
- 阅读手册页(及引导式练习)
实验:在红帽企业 Linux 中获取帮助
阅读手册页
总结
- 使用
man
命令可以查看 man page 并显示有关 Linux 系统组件(如文件、命令和功能)的信息 - 按照惯例,在引用 man page 时,页面名称的后面跟着放在括号内的章节号
- 您可以使用正则表达式在 man page 中搜索内容
创建、查看和编辑文本文件
通过命令输出或在文本编辑器中管理 文本文件
目标:通过命令行输出或在编辑器中创建、查看和编辑文本文件
培训目标:
- 通过 shell 重定向将标准输出或标准错误保存到文件中,并利用管道处理多个命令行程序的输出
- 使用
vim
编辑器从命令行创建和编辑文本文件 设置 shell 变量以运行命令,并编辑 Bash 启动脚本以设置 shell 和环境变量,从而修改 shell 以及从 shell 运行的程序的行为章节:
- 将输出重定向到文本或程序(及测验)
- 从 shell 提示符编辑文本文件(及引导式练习)
- 更改 shell 环境(及引导式练习)
实验:创建、查看和编辑文本文件
将输出重定向到文本或程序
从 shell 提示符编辑文本文件
更改 shell 环境
总结
- 运行程序或进程涉及三个标准通信通道:标准输入、标准输出和标准错误
- 您可以使用 I/O 重定向从文件中读 取标准输入,或者将输出或错误从进程写入文件
- 管道可以将标准输出从一个进程连接到另一个进程的标准输入,并可格式化输出或构建复杂命令
- 您应该学会如何使用至少一个命令行文本编辑器,建议您使用 Vim,因为 Linux 发行版中通常会默认安装它
- shell 变量可以帮助您运行命令,它们对于 shell 会话而言是唯一的
- 您可以利用环境变量来修改 shell 或进程的行为
管理本地用户和群组
aka:管理本地用户和组
创建、管理和删除本地用户和群组,并管理本地密码策略。
目标:创建、管理和删除本地用户和组,以及管理本地密码策略
培训目标:
- 描述 Linux 系统上用户和组的用途
- 切换到超级用户账户来管理 Linux 系统,并使用
sudo
命令授予其他用户超级用户访问权限- 创建、修改和删除本地用户账户
- 创建、修改和删除本地组账户
- 为用户设置密码管理策略,并且手动锁定和解锁用户账户
章节:
- 描述用户和组概念(及测验)
- 获取超级用户访问权限(及引导式练习)
- 管理本地用户账户(及引导式练习)
- 管理本地组账户(及引导式练习)
- 管理用户密码(及引导式练习)
实验:管理本地用户和组
描述用户和组概念
获取超级用户访问权限
管理本地用户账户
管理本地组账户
管理用户密码
总结
- Linux 中的用户账户类型有:超级用户、系统用户和普通用户
- 一个用户具有一个主要组,并且可能是多个补充组的成员
/etc/passwd
、/etc/group
和/etc/shadow
这三个重要文件中包含用户和组的信息- 您可以通过
su
和sudo
命令,以超级用户身份运行命令 useradd
、usermod
和userdel
命令可以管理用户groupadd
、groupmod
和groupdel
命令可以管理组passwd
命令可以管理用户的密码chage
命令可显示和配置用户的密码到期设置
控制文件访问权限
aka:控制对文件的访问
设置文件的 Linux 文件系统权限,并解释不同权限设置的安全效果。
目标:设置文件的 Linux 文件系统权限,并解释不通权限设置的安全效果
培训目标:
- 列出文件和目录的文件系统权限,并解释这些权限对用户的组访问权限的影响
- 利用命令行工具更改文件的权限和所有权
- 控制用户创建的文件的默认权限,解释特殊权限的影响,并使用特殊权限和默认权限来设置在特定目录中创建的文件的组的所有者
章节:
- 解释 Linux 文件系统权限(及测验)
- 从命令行管理文件系统权限(及引导式练习)
- 管理默认权限和文件访问(及引导式练习)
实验:控制对文件的访问
解释 Linux 文件系统权限
从命令行管理文件系统权限
管理默认权限和文件访问
总结
- 文件所有权权限具有三个类别。文件由用户、单个组和其他用户拥有。应用最具体的权限。用户权限覆盖组权限,组权限又覆盖其他权限
ls
命令-l
选项可展开文件列表,以包括文件权限和所有权chmod
命令可从命令行更改文件权限chmod
命令可使用以下两种方法之一来表示权限:符号或八进制chown
命令可更改文件所有权。chown
命令-R
选项可以递归更改目录树的所有权- 不带参数运行
umask
命令将显示 shell 的当前 umask 值。系统上的每个进程都有一个 umask - Bash 的默认 umask 值在
/etc/login.defs
文件中定义,可能会受到/etc/profile
和/etc/bashrc
文件、/etc/profile.d
中的文件或您的账户的 shell 初始化文件中的设置影响 suid
、sgid
和sticky
特殊权限提供与文件访问权限相关的其他功能
监控和管理 Linux 进程
目标:评估和控制红帽企业 Linux 系统上正在运行的进程。
培训目标:
- 确定系统上运行的程序的状态、资源使用情况和所有权,以进行控制
- 使用 Bash 作业控制来管理从同一终端会话启动的多个进程
- 使用命令来中止进程与进程通信,定义守护进程的特征,以及停止用户会话和进程
- 定义负载平均值并确定资源密集型服务器进程
章节:
- 进程状态和生命周期(及测验)
- 控制作业(及引导式练习)
- 中止进程(及引导式练习)
- 监控进程活动(及引导式练习)
实验:监控和管理 Linux 进程
进程状态和生命周期
控制作业
中止进程
监控进程活动
总结
- 进程是可执行程序的运行中实例。进程被分配又有一个状态,可以是运行、睡眠、停止或僵停。
ps
命令可以列出进程 - 每个终端都有自己的会话,并且可以具有一个前台进程和多个独立的后台进程。
jobs
命令显示终端会话中的进程 - 信号是向执行中的程序报告事件的软件中断。
kill
、pkill
和killall
命令使用信号来控制进程 - 负载平均值是一种对系统繁忙程度的估算。要显示负载平均值,可使用
top
、uptime
或w
命令
控制服务和守护进程
目标:使用 systemd 服务控制和监视网络服务与系统守护进程。
培训目标:
- 列出由
systemd
服务和套接字单元启动的系统守护进程和网络服务- 使用
systemctl
控制系统守护进程和网络服务章节:
- 识别自动启动的系统进程(及引导式练习)
- 控制系统服务(及引导式练习)
实验:控制服务和守护进程
识别自动启动的系统进程
# 列出并分页显示所有当前加载(active)的服务单元
$ systemctl list-units --type=service
# 列出所有的服务单元
$ systemctl list-units --type=service --all
# 列出所有的套接字单元
$ systemctl list-units --type=socket --all
# 列出所有已安装的单元文件的状态
$ systemctl list-unit-files --type=service
# 查看服务单元的状态(如 sshd 服务)
$ systemctl status sshd.service
# 验证服务是否处于活动状态(正在运行)(如 sshd 服务)
$ systemctl is-active sshd.service
# 验证服务单元是否已启用为在系统引导期间自动启动(如 sshd 服务)
$ systemctl is-enabled sshd.service
# 验证单元是否在启动过程中失败(如 sshd 服务)
$ systemctl is-failed sshd.service
控制系统服务
# 重新启动服务(如 sshd 服务)
$ systemctl restart sshd.service
# 重新加载服务(如 sshd 服务)
$ systemctl reload sshd.service
# 重载或重新启动服务(适用于未知是否支持重载的服务)(如 sshd 服务)
$ systemctl reload-or-restart sshd.service
# 列出启动服务单元所需的依赖项的层次结构映射(如 sshd 服务)
$ systemctl list-dependencies sshd.service
# 列出依赖本服务单元作为依赖项的单元的层次结构映射(如 sshd 服务)
$ systemctl list-dependencies --reverse sshd.service
# 屏蔽服务(避免意外启动与其他服务冲突的服务)(如 sendmail 服务)
$ systemctl mask sendmail.service
# 取消屏蔽服务(如 sendmail 服务)
$ systemctl unmask sendmail
# 使服务在系统引导时自动启动(如 sshd 服务)
$ systemctl enable sshd.service
# 启动服务,并使服务在系统引导时自动启动(如 sshd 服务)
$ systemctl enable --now sshd.service
# 服务在系统引导时不会自动启动(如 sshd 服务)
$ systemctl disable sshd.service
# 停止服务,并使服务在系统引导时不会自动启动(如 sshd 服务)
$ systemctl disable --now sshd.service
# 验证服务当前是启用状态还是禁用状态(如 sshd 服务)
$ systemctl is-enabled sshd.service
总结
systemd
实用程序提供了一种方式,可在系统引导时以及运行中的系统上激活系统资源、服务器守护进程和其他进程- 使用
systemctl
实用程序可以启动、停止、重新加载、启用和禁用服务 - 使用
systemd
实用程序可以管理服务单元、套接字单元和路径单元 - 使用
systemctl status
命令可以确定systemd
启动的系统守护进程和网络服务的状态 systemctl list-dependencies
命令可以列出特定服务单元依赖的所有服务单元systemd
实用程序可屏蔽服务单元,使其即便是为了满足依赖关系的需要也不会运行
配置 SSH 并确保其安全性
aka:配置和保护 SSH
使用 OpenSSH 在远程系统上配置安全的命令行服务。
目标:使用 OpenSSH 配置远程系统上的安全命令行服务
培训目标:
- 使用
ssh
命令登录远程系统并运行命令- 配置用户账户以使用基于密钥的身份验证,从而无需密码就能安全地登录远程系统 禁止直接以
root
身份登录,并为 OpenSSH 服务禁用基于密码的身份验证章节:
- 使用 SSH 访问远程命令行(及引导式练习)
- 配置基于 SSH 密钥的身份验证(及引导式练习)
- 自定义 OpenSSH 服务配置(及引导式练习)
实验:配置和保护 SSH
使用 SSH 访问远程命令行
SSH 连接远程主机时,会在本地的公钥储存中进行检索和核对,本地公钥储存的位置可为
/etc/ssh/ssh_known_hosts
~/.ssh/known_hosts
可以配置 /etc/ssh/ssh_config
文件中配置主机密钥检查的参数,通过启用严格的主机密钥检查,可以做到当远程主机的主机密钥与本地的公钥储存不一致时,中断 SSH 连接
StrictHostKeyChecking yes
计算设备的 SSH 主机密钥(以 workstation 环境举例)
$ ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:ZAM2zE6BVXU8RRfUB+kLSDNy/BLPfwZuPn6hQlNkqLI root@workstation.lab.example.com (ECDSA)
配置基于 SSH 密钥的身份验证
使用 ssh-keygen
命令,可以在本地创建一个密钥对,并将私钥和公钥分别保存在 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
文件中。在 ssh-keygen
程序运行过程中,可以指定私钥密码,以提高安全性
可以通过 ssh-keygen -f <filename>
来指定密钥文件的保存位置
在本地生成一个密钥对之后,可以使用 ssh-copy-id
命令,来将本地的 SSH 公钥添加到远程系统的公钥储存中,以实现无密码登录远程系统。具体命令为 ssh-copy-id -i ~/.ssh/key-with-pass.pub username@remotehost
在使用带有密码保护的私钥时,为了方便以及避免频繁输入密码导致潜在的密码外泄可能,可以使用 ssh-agent
密钥管理器来优化使用密钥的流程
使用 eval $(ssh-agent)
来启动密钥管理器,并使用 ssh-add
命令来添加私钥,语法如 ssh-add ~/.ssh/key-with-pass
当 SSH 连接出现问题的时候,可以通过 -v
、-vv
和 -vvv
三种不同等级的日志显示参数来对问题进行排查
~/.ssh/config
文件包含有 SSH 客户端的相关配置信息,可以在其中配置 SSH 连接过程中的行为
自定义 OpenSSH 服务配置
在 /etc/ssh/sshd_config
中,可以配置 OpenSSH 服务端的行为
# 设置为 允许 / 禁止 root 账户登录 SSH
PermitRootLogin yes/no
# 设置为 允许 / 禁止 使用密码登录 SSH
PasswordAuthentication yes/no
总结
- 通过
ssh
命令,用户可以使用 SSH 协议安全地访问远程系统 - 客户端系统将远程服务器的身份储存在
~/.ssh/known_hosts
和/etc/ssh/ssh_known_hosts
文件中 - SSH 同时支持基于密码和基于密钥的身份验证
ssh-keygen
命令可生成用于身份验证的 SSH 密钥对。ssh-copy-id
命令将公钥导出到远程系统sshd
服务在红帽企业 Linux 系统上实施 SSH 协议- 在
/etc/ssh/sshd_config
配置文件中配置高级 SSH 设置 - 建议您配置
sshd
以禁止以root
身份进行远程登录,并要求使用公钥身份验证,而非基于密码的身份验证
分析和存储日志
查找和准确解读系统事件日志,以便及时排除故障
目标:查找和准确解读系统事件日志,以满足故障排除之需
培训目标:
- 描述红帽企业 Linux 用于记录事件的基本日志架构
- 解读相关 syslog 文件中的事件,以排除故障或查看系统状态
- 查找和解读系统日志中的条目,以排除故障或查看系统状态
- 配置系统日志,以在服务器系统重启时保留事件记录 利用网络时间协议(NTP)维护准确的时间同步,并且配置时区以确保系统日志和日志记录的事件标有正确的时间戳
章节:
- 描述系统日志架构(及测验)
- 检查 syslog 文件(及引导式练习)
- 检查系统日志条目(及引导式练习)
- 保留系统日志(及引导式练习)
- 维护准确的时间(及引导式练习)
实验:分析和储存日志
描述系统日志架构
systemd-journald
服务是操作系统事件日志架构的核心。systemd-journald
服务从许多来源收集事件信息:
- 系统内核
- 启动过程早期阶段的输出
- 守护进程的标准输出和标准错误
- 系统日志事件
rsyslog
服务对 syslog 信息进行排序,并将它们写入到 /var/log
目录下的日志文件中,这些日志文件在系统重启后不予保留。
查看 Syslog 文件
rsyslog
服务的配置文件位于
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
可以使用 logger
手动发送消息至 rsyslog
服务,例如 logger -p local7.notice "Log entry created on host"
查看系统日志条目
使用 journalctl
命令可以查看日志中的所有信息,能查看的信息范围取决于当前用户的权限
# 查看当前的所有日志信息
$ journalctl
# 插卡最后 10 个日志条目
$ journalctl -n 10
# 查看系统日志的最后 10 行,并实时更新
$ journalctl -f
# 查看优先级为 `error` 或以上的日志条目
$ journalctl -p err
# 查看指定 systemd 单元的消息(如 sshd 服务)
$ journalctl -u sshd.service
# 列出今天记录中的所有日志条目
$ journalctl --since today
# 列出从 2022-03-11 20:30:00 到 2022-03-14 10:00:00 范围内的所有日志条目
$ journalctl --since "2022-03-11 20:30:00" --until "2022-03-14 10:00:00"
# 查看上一个小时的所有条目
$ journalctl --since "-1 hour"
# 查看日志信息的详细输出
$ journalctl -o verbose
# 查看 PID 为 2110 的 sshd.service 的所有日志条目
$ journalctl _SYSTEMD_UNIT=sshd.service _PID=2110
保留系统日志
/etc/systemd/journald.conf
文件中的 Storage
参数定义系统日志以易失性方式储存,还是持久化保留,参数接受三种值
persistent
:使用持久储存/var/log/journal
volatile
:使用易失性储存/run/log/journal
auto
:如果存在/var/log/journal
目录,则使用持久储存,否则使用易失性储存none
:不使用任何储存
可以通过 journalctl | grep -E 'Runtime Journal|System Journal'
查看当前系统的日志条目大小限额
在启用了持久化日志储存的情况下,可以通过 journalctl -b 1
查看第一次系统启动的日志条目,可以通过 journalctl --list-boots
查看 journald
记录的系统启动事件。如果不加参数,直接 journalctl -b
则可以查看当前这次系统启动的日志条目
维护准确的时间
# 简要显示当前的时间相关系统设置
$ timedatectl
# 列出时区数据库
$ timedatectl list-timezones
# 更改时区为 America/Phoenix
$ timedatectl set-timezone America/Phoenix
# 更改系统的当前时间为 9:00:00(如果没有设置自动时间同步)
$ timedatectl set-time 9:00:00
# 启用 / 禁用 自动时间调整
$ timedatectl set-ntp true/false
在红帽企业 Linux 中,timedatectl set-ntp
命令可调整是否启用 chronyd
NTP 服务
chronyd
服务的配置文件位于 /etc/chronyd.conf
# 验证本地系统是否使用 NTP 服务器进行自动时间调整
$ chronyc sources -v
总结
systemd-journald
和rsyslog
服务可捕获日志消息并写入到适当的文件中/var/log
目录包含日志文件- 定期轮转日志文件可防止它们填满文件系统空间
systemd
日志是临时的,不会在系统重启后持久保留chronyd
服务有助于将时间设置与时间源同步- 您可以根据服务器的位置更新其时区
管理网络
目标:配置红帽企业 Linux 服务器上的网络接口和设置
培训目标:
- 描述服务器关于网络寻址和路由的基本概念
- 使用命令行实用程序,测试并检查当前的网络配置
- 使用
nmcli
命令管理网络设置和设备- 通过编辑配置文件修改网络配置
- 配置服务器的静态主机名及其名称解析,并测试其结果
章节:
- 描述网络概念(及测验)
- 验证网络配置(及引导式练习)
- 从命令行配置网络(及引导式练习)
- 编辑网络配置文件(及引导式练习)
- 配置主机名和名称解析(及引导式练习)
实验:管理网络
描述网络概念
TCP/IP 网络模型是一组简化的四层通信协议
- 应用:应用层,如 SSH 协议,HTTP(S)协议,FTP 协议,SMTP 协议等等
- 传输:TCP 和 UDP 是传输层协议,TCP 是可靠连接导向型通信,UDP 属于无连接数据报协议。在
/etc/services
文件中可以查看常用和已注册的端口列表 - 互联网:IPv4 和 IPv6 协议是互联网层协议,每个主机具有 IP 地址和前缀,用于确定网络地址
- 链路:最常见的网络类型是有线以太网(802.3)和 WIFI(802.11)。每一个物理设备具有一个媒体访问控制(MAC)地址,也称为硬件地址。
# 查看本地网卡信息
$ ip addr show
$ ip a
# 以简短形式列出网卡信息
$ ip -br addr show
# 列出指定网卡的信息(如 eth0)
$ ip addr show eth0
验证网络配置
# 列出系统上可用的所有网络接口
$ ip link show
# 查看设备和地址信息(如 ens3)
$ ip addr show ens3
# 显示关于网络性能的统计信息
$ ip -s link show
# 查看路由表
$ ip route
# 查看 IPv6 的路由表
$ ip -6 route
若要追踪网络流量经过哪些设备,可以使用 traceroute
和 tracepath
命令
# 追踪到 access.redhat.com 的网络流量经过哪些设备
$ tracepath access.redhat.com
$ traceroute access.redhat.com
# 基于 TCP 追踪到 access.redhat.com 的网络流量经过哪些设备
$ traceroute -T access.redhat.com
# 基于 ICMP 追踪到 access.redhat.com 的网络流量经过哪些设备
$ traceroute -I access.redhat.com
查询本地系统当前网络的套接字,可以使用 netstat
或者使用 ss
# 显示套接字统计信息
$ ss -ta
从命令行配置网络
在 Linux 中,可以使用 nmcli
对 NetworkManager 服务进行管理,NetworkManager 服务可以监控和管理系统的网络设置
# 显示所有网络设备的状态
$ nmcli device status
$ nmcli dev status
# 显示所有连接的列表
$ nmcli connection show
$ nmcli con show
# 显示所有活动的连接的列表
$ nmcli connection show --active
$ nmcli con show --active
可以手动添加一个网络连接
# 添加 eno2 网络接口的 ethernet 类型的 eno2 连接
$ nmcli con add con-name eno2 type ethernet ifname eno2
可以添加一个静态 IPv4 的网络连接 eno3
# 静态 IPv4 网络设置的 eno3 网络接口的 ethernet 类型的 eno3 连接
# IP 地址为 192.168.0.5
# 网络前缀为 /24
# 网络网关为 192.168.0.254
$ nmcli con add con-name eno3 type ethernet ifname eno3 \
ipv4.method manual \
ipv4.address 192.168.0.5/24 \
ipv4.gateway 192.168.0.254