【面试题系列】运维知识常识
【面试题系列】运维知识常识
本教程将总结近期运维方面的常识性知识
一、网络部分
1.网络模型
OSI
七层模型
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP
5
层模型
应用层、传输层、网络层、数据链路层、物理层
TCP/IP
4
层模型
应用层、传输层、网络层、物理层
2.IP
地址分类
根据第一个字节分类
A
类地址0---127
单播地址B
类地址128---191
单播地址C
类地址192----223
单播地址D
类地址224---239
组播地址 (一般用于电子广播屏幕)E
类地址240---255
保留地址 (一般用于军工或科研)
根据应用范围分类
- 私网
IP
范围A
类:10.0.0.0-------10.255.255.255
B
类:172.16.0.0 -------- 172.31.255.255
C
类:192.168.0.0 -------- 192.168.255.255
3.典型的几个协议,并且这些协议在OSI
七层模型中哪一层
应用层
http
超文本传输协议、https
带加密的超文本传输协议、DNS
域名解析协议、FTP
文件传输协议、dhcp
动态主机配置协议、smtp
简单邮件传输协议、pop3
邮局协议、imap4
网络消息访问协议、snmp
简单网络管理协议
传输层
TCP
面向连接的传输协议、UDP
用户数据报协议(它是无连接的)
网络层
IP
互联网协议、ARP
地址解析协议、RARP
逆向地址解析协议、ICMP
互联网控制消息协议、IGMP
组播协议
4.常见的几个服务端口(可能总结不全面,欢迎补充)
基于TCP
端口
- http
80/TCP
(http3
协议基于UDP
) - https
443/TCP
- FTP
20/TCP
(传输数据)21/TCP
(建立连接) - ssh
22/TCP
- telnet
23/TCP
- VNC
5900/TCP
- smtp
25/TCP
- smtps
465/TCP
(带加密的邮件传输) - NFS
2049/TCP
- MySQL
3306/TCP
- RDP
3389/TCP
(Windows远程桌面) - tomcat
8080/TCP
- PHP
9000/TCP
- PostgreSQL
5432/TCP
- Redis
6379/TCP
- MongoDB
27017/TCP
基于UDP
端口
- http3
80/UDP
- DNS
53/UDP
- DHCP
67/UDP
- NTP
123/UDP
- SNMP
161/UDP
5.TCP
与UDP
的区别
A.区别
TCP
面向连接、可靠的协议UDP
无连接、不可靠的协议
B.TCP
建立三次连接的过程
SYN
、SYN+ACK
、ACK
关于TCP
建立三次连接的详细教程:https://www.wsjj.top/archives/52
C.TCP
四次断开的过程
FIN+ACK
、ACK
、FIN+ACK
、ACK
关于TCP
四次断开的详细教程:https://www.wsjj.top/archives/52
6.Linux
系统查看主机网络参数几个命令
查看IP
地址
以下命令均依赖
net-tools
软件包
# ifconfig
# ip address
查看网关
# route -n
# ip route
查看DNS
服务器地址
# cat /etc/resolv.conf
7.Linux
主机添加静态路由
添加静态路由之前,应该修改内核参数,开启路由转发功能
临时开启路由转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启路由转发功能:vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
临时添加静态路由
# route add -net 目的网段 gw 网关/下一跳地址
# route add -net 192.168.1.0/24 gw 172.16.1.1
永久添加静态路由
把上面的命令,添加到
/etc/rc.d/rc.local
,并且赋予执行权限
8.tcpdump
抓包工具
使用方法
# tcpdump -i 网卡名称 -nn 条件
:例1:抓取ping
包的数据
ping
基于ICMP
协议设计
# tcpdump -i ens33 -nn icmp
例2:抓取80
端口的数据
# tcpdump -i ens33 -nn port 80
例3:抓取主机192.168.1.1
发送到服务器80
端口的数据
# tcpdump -i ens33 -nn port 80 and host 192.168.1.1
9.查看端口
查看端口(TCP和UDP)
# netstat -tunlp
查看所有TCP连接
# netstat -antp
二、系统管理方面
1.Linux系统启动过程(BIOS引导)
BIOS
加电自检- 读取硬盘
MBR
中的系统引导程序 - 加载
grub
- 加载内核
- 系统初始化
- 运行
login
登录程序,等待用户登录
2.查看系统发行版本
# cat /etc/redhat-release
# cat /etc/os-release
3.查看Linux
内核版本
# uname -r
# uname -a
4.软连接、硬链接的区别
软连接
- 可以为文件、目录创建
- 可跨分区创建
- 源文件删除,链接文件失效
硬链接
- 只能为文件创建
- 不可跨分区
- 源文件删除、链接文件可正常访问
5.查看系统运行状态
CPU
# lscpu //查看CPU型号、核数
# top //查看CPU使用率、平均负载
# uptime //查看CPU平均负载
# mpstat //动态查看CPU使用率
内存Memory
# free -m //查看内存容量
# vmstat //动态查看内存使用情况
硬盘disk
# df -hT // 查看磁盘容量使用情况
# df -i // 查看磁盘inode
# iostat // 查看磁盘IO
网卡network
# sar -n DEV //查看网卡流量
6.CPU
使用率、CPU
负载的区别
CPU
使用率
指在程序运行期间,所消耗的
CPU
百分比
CPU
负载
单位时间内,
CPU
所运行的进程的总计量
7.TOP
命令的使用
TOP
命令交互按键
M
按内存使用率排序显示进程P
按CPU使用率排序显示进程1
显示所有CPU使用率,默认s是平均值k
杀死进程
8.find
查找文件
关于
find
使用详细教程:https://www.wsjj.top/archives/37
A.按文件名称查找
# find / -name "*.conf"
# find / -iname "*.log" //忽略大小写
B.按创建时间查找
# find / -ctime +2
C.按修改时间查找
# find / -mtime +2
D.多条件查找
# find / -name "*.conf " -a -mtime +2
# find / -name "*.log" -o -ctime -1
E.执行操作
# find / -name "*.conf" -exec cp {} /tmp \;
# find / -ctime +10 -exec rm -rf {} \;
9.grep
过滤的使用
关于
grep
命令详细教程:https://www.wsjj.top/archives/39
# grep "条件" 文件名称
# grep "error" /var/log/messages
常用参数说明
-i
忽略大小写-e
多条件查找-n
显示行号
10.计划任务
关于计划任务详细教程:https://www.wsjj.top/archives/57
示例1: 每周三下午5点半
30 17 * * 3
示例2: 8—-20点每隔3小时
0 8-20/3 * * *
示例3: 每周一、三、五晚上10点
0 22 * * 1,3,5