09-常用指令(3)
网络管理#
网络地址转换 NAT#
NAT 概述
- 需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫作 NAT路由器,它至少有一个有效的外部全球IP地址
- 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接
NAT 路由器工作原理
VMWare 配置 NAT#
虚拟机设置
每一个 VMnet* 相当于一个网络,虚拟机如果想要上网,就设置成 VMnet 的网段内的 IP 地址。通过默认网关(也就是在宿主机中虚拟出来的网卡地址,它也在这个网段里,也是该网段的默认网关),发给物理机,宿主机的虚拟网卡收到该数据报后,再将数据报源地址改为物理机的公网地址,最后向外转发(就是 NAT 的过程)。
- VMnet* 相当于你物理机里的一个网段,上网的时候统统用物理机的公网地址替换了(NAT 行为)
- 要想让虚拟机上网,必须把物理机的网卡放入和虚拟机一个网段,数据才能出去
- 虚机若想访问物理机的共享资源 / Ping,地址应该写物理机虚拟网卡的地址而不是物理机公网地址
虚拟网络编辑器
Linux 网络环境配置#
自动获取 IP
- 说明:登陆后,通过界面的来设置自动获取 IP
- 特点:Linux 启动后会自动获取 IP,缺点是每次自动获取的 IP 地址可能不一样
指定固定 IP
说明:通过修改配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33
来指定 IP。
监控网络状态#
netstat
- 基本语法:
netstat [选项]
- 功能描述:查看系统网络服务的情况
- 选项说明
-an
按一定顺序排列输出-p
显示哪个进程在调用
- 示例
ping
一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。
进程管理#
基本介绍#
- 在 Linux 中,每个执行的程序(代码)都称为一个"进程"。每一个进程都分配一个 ID 号。
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
- 每个进程都可能以 2 种方式存在的:前台与后台
- 前台进程就是用户目前的屏幕上可以进行操作的
- 后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
显示系统执行的进程#
- 指令格式:
ps –aux | grep xxx
- 功能描述:是用来查看目前系统中,有哪些正在执行,以及它们执行的状况
- 常用的参数有
aux
,也可以不加任何参数ps -a
显示当前终端的所有进程信息ps -u
以用户的格式显示进程信息ps -x
显示后台进程运行的参数
- 若只希望查看 sshd 服务的进程状况:
ps -aux | grep sshd
- 查询结果的列名说明
查看进程的父进程#
- 要求:以全格式显示当前所有的进程,查看进程的父进程
ps -ef
是以全格式显示当前所有的进程。参数-e
显示所有进程,-f
表示"全格式"- 若只关心个别进程,可通过
ps -ef | grep xxx
对查询结果进行过滤 - 查询结果的列名说明
查看进程树,可以更加直观的来看进程信息
终止进程#
- 基本介绍:若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用
kill
命令来完成此项任务。 - 基本语法
kill [选项] 进程号
:通过进程号杀死进程killall 进程名称
:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
- 常用选项:
-9
表示强迫进程立即停止 - 最佳实践
动态监控进程#
- 基本语法:
top [选项]
- 功能描述:top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。
- 选项说明
- 交互操作说明
- 应用实例
服务管理#
简述#
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd,防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
systemctl#
指令:systemctl [start | stop | restart | reload | status] 服务名
举例:查看当前防火墙的状况,关闭防火墙和重启防火墙
- iptables 是 Linux 中对网络数据包进行处理的一个功能组件,就相当于防火墙,可以对经过的数据包进行处理,例如:数据包过滤、数据包转发等等。iptables 其实是一堆规则,防火墙根据 iptables 里的规则,对收到的网络数据包进行处理。iptables 里的数据组织结构分为:表、链、规则。
- iptables 在 CentOS 7 版本上需要自行安装:
yum install iptables-services
- 检查是否安装成功
- 启动 iptables:
systemctl start iptables.service
- 有关命令
systemctl start iptables #启动 systemctl status iptables #查看运行状态 systemctl restart iptables.service #重启 systemctl stop iptables.service #停止 systemctl enable iptables.service #设置开机启动 systemctl disable iptables.service #禁止开机启动
- 关闭或者启用防火墙后,立即生效。[telnet 测试某个端口即可]
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用
chkconfig
指令
查看服务名#
服务的运行级别#
- 查看或者修改默认级别:
vi /etc/inittab
- Linux 有 7 种运行级别(RunLevel):常用的是级别 3 和 5
- 运行级别0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
- 运行级别1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11 控制台,登陆后进入图形 GUI 模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
- 开机的流程说明
- 如果不小心将默认的运行级别设置成 0 或者 7 ,怎么处理?进入单用户模式,修改成正常的即可
通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭。 chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 才能生效。
- 请显示当前系统所有服务的各个运行级别的运行状态
chkconfig --list
- 请查看 sshd 服务的运行状态
service sshd status
- 将 sshd 服务在运行级别 5 下设置为不自动启动
chkconfig --level 5 sshd off
- 当运行级别为 5 时,关闭防火墙
chkconfig --level 5 iptables off
- 在所有运行级别下,关闭防火墙
chkconfig iptables off
- 在所有运行级别下,开启防火墙
chkconfig iptables on
RPM 包管理#
简述#
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有 .RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 Windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。
Linux 的分发版本都有采用 (如 suse,redhat,centos ...),可以算是公认的行业标准了。
查询 rpm#
- rpm 包的简单查询指令:
rpm –qa | grep xx
- rpm 包名基本格式
- 其它查询指令
rpm -qa | more
查询所安装的所有 rpm 软件包rpm -qi 软件包名
查询软件包信息rpm -q 软件包名
查询软件包是否安装rpm -ql 软件包名
查询软件包中的文件rpm -qf 文件全路径名
查询文件所属的软件包
卸载 rpm#
- 基本语法:
rpm -e RPM包的名称
- 细节讨论
- 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如:
rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
- 如果我们就是要删除 foo 这个 rpm 包,可以增加参数
--nodeps
,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行。如:rpm -e --nodeps foo
- 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如:
安装 rpm#
- 基本语法:
rpm -ivh RPM包全路径名称
- 参数说明
- i=install 安装
- v=verbose 提示
- h=hash 进度条
- 以安装 Firefox 为例,需要先找到 rpm 包:挂载当初安装 Linux 的 ISO 文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?