【面试题系列】运维知识常识

本教程将总结近期运维方面的常识性知识

一、网络部分

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.TCPUDP的区别

A.区别

TCP面向连接、可靠的协议
UDP无连接、不可靠的协议

B.TCP建立三次连接的过程

SYNSYN+ACKACK
关于TCP建立三次连接的详细教程:https://www.wsjj.top/archives/52

C.TCP四次断开的过程

FIN+ACKACKFIN+ACKACK
关于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引导)

  1. BIOS加电自检
  2. 读取硬盘MBR中的系统引导程序
  3. 加载grub
  4. 加载内核
  5. 系统初始化
  6. 运行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命令的使用

请看这期教程:https://www.wsjj.top/archives/56

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

三、数据库