运维面试题1-100
1、NAT和PAT的区别
IP地址耗尽促成了CIDR的开发,但是CIDR开发的主要目的是为了有效的使用现有的INTERNET地址,而
同时根据RFC1631(IPNETWORKADDRESSTRANSLATOR)开发的NAT却可以在多重的INTERNET子网中使
用相同的IP地址,用来减少注册IP地址的使用。
NAT的分为:静态NAT、动态NAT、端口NAT(PAT)。
静态NAT:内部网络中的每个主机都被永久的映射成外部网络中的某个合法地址;
动态NAT:在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络;
PAT:是人们比较熟悉的一种转换方式。PAT普遍应用于接入设备中,它可以将中小型的网络隐藏在一
个合法的IP地址后面。PAT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址
上,同时在该地址上加上一个由NAT设备选定的TCP端口号。也就是采用portmultiplexing技术,或改
变外出数据的源port的技术将多个内部ip地址映射到同一个外部地址。
网络地址转换(NAT)是一个Internet工程任务组(InternetEngineeringTaskForce,IETF)标准,用于允许
专用网络上的多台PC(使用专用地址段,例如10.0.x.x、192.168.x.x、172.x.x.x)共享单个、全局路由的
IPv4地址。IPv4地址日益不足是经常部署NAT的一个主要原因。WindowsXP和WindowsMe中
的"Internet连接共享"及许多Internet网关设备都使用NAT,尤其是在通过DSL或电缆调制解调器连接宽
带网的情况下。
NAT对于解决IPv4地址耗费问题(在IPv6部署中却没必要)尽管很有效,但毕竟属于临时性的解决方案。
这种IPv4地址占用问题在亚洲及世界其他一些地方已比较严重,且日渐成为北美地区需要关注的问题。
这就是人们为什么长久以来一直关注使用IPv6来克服这个问题的原因所在。
除了减少所需的IPv4地址外,由于专用网络之外的所有主机都通过一个共享的IP地址来监控通信,因此
NAT还为专用网络提供了一个隐匿层。NAT与防火墙或代理服务器不同,但它确实有利于安全。
2、NAT使用的几种情况:
1.连接到INTERNE,但却没有足够的合法地址分配给内部主机;
2.更改到一个需要重新分配地址的ISP;
3.有相同的IP地址的两个INTRANET合并;
4.想支持负载均衡(主机);
3、NAT有4种用法:
1.TRANSLATION INSIDE LOCALADDRESS-----------将内部地址一对一的翻译成外部地址;
2.OVER LOADING INSIDE GLOBAL ADDRESS---------将内部地址多对一的翻译成外部地址,通过地址加
端口号的方式区别不同的本地地址。这种方式就是所谓的PAT/color:43aa144927;
3.TCP LOAD DISTRIBUTING----提供在多个、利用率高的主机之间进行负载分担的方法;
4.HANDLING OVER LAPPING NETWORK----这种方法主要用于两个INTRANET的互联.
NAT的地址转换是指每个内网地址都被转换成ip地址+源端口的方式,这需要公网ip地址为多个。
而PAT由于ip地址不足够,就会出现内网地址被转换成ip地址+端口段的形式,这样的公网ip地址通常只
是一个。
举个例子:
NAT PAT192.168.0.2:4444----〉202.116.100.5:4444 192.168.0.2:4444----〉202.116.100.5:50003
192.168.0.3:5555----〉202.116.100.6:5555 192.168.0.3:5555----〉202.116.100.5:50004
192.168.0.10:1233---〉202.116.100.5:1233 192.168.0.10:1233---〉202.116.100.5:50005
简单来说,PAT―多对1,nat―多对多.
4、解压acces.gz文件至access.log,保持源文件不删除解压:
Cp access.gz /access.log/access1.gz
cd /access.log
gzip-d access1.gz
5、若一台计算机的内存为128M,则交换分区的大小通常是1.5到2倍;
256M。
6、简述raid0、raid1、raid5三种工作模式的工作原理及特点
raid0:条带卷,利用率100%,相对读写速率最快,相对安全性差。数据随机存入到阵列中的一个磁盘
上。同时从2块磁盘读数据;
读速度与raid1相差不多;
raid1:镜像卷,使用率50%,相对读写速率一般,相对安全性高。最少2块磁盘组成,数据同时存入到两
块磁盘上。同时从2块磁盘读数据;
写速度会比raid0慢;
raid5:带奇偶校验的镜像卷,相对读写速率较快,相对安全性高可以添加热被磁盘作为冗余。
7、将/usr/local/test目录下大于100k小于500k的文件转移到/tmp目录下
find /usr/local/test -size +100k -a -size -500k -exec mv {}/tmp;
8、软链接和硬链接的区别:
硬链接不会创建新的inode,只是给源文件多加了一个文件名 软链接创建新的inode,相当于重新创建
了一个文件
硬链接不能跨分区 软链接可以跨分区
硬链接删除源文件后,另一个文件还能用 软链接删除源文件后,链接文件不能再使用
9、ps aux中的VSZ代表什么意思?RSS代表什么意思?
VSZ:虚拟内存集,进程占用的虚拟内存空间
RSS:物理内存集,进程占用实际物理内存空间.
10、保存当前磁盘分区的分区表,dd命令是个强大的命令,在复制的同时进行转换,请写出具体命令 **
Dd if=/dev/sda of=./mbr.txt bs=1M count=512
11、6块300G的硬盘做raid5,新的设备容量是多大?
由于RAID5磁盘阵列兼顾了安全性和速度,所以有一块磁盘是要被用作安全备份区的,所以6块300G的磁
盘实际使用到的只有5块5*300=1500G
12、
Linux操作系统查看当前网络设备命令为:ip a,将当前计算机的IP地址设为192.168.1.10,子网掩码为
255.255.255.0命令为:ifconfigeth0192.168.1.10netmask255.255.255.0
Linux查看当前主机TCP协议连接情况的命令为:ss -antpl
Linux操作系统查看/etc/passwd文件前10行的命令为:head -10 /etc/passwd;
将前10行追加
到/etc/passwd_new文件结尾的命令是:head -10 /etc/passwd >> /etc/passwd_new。
Linux操作系统启动服务名为kstoredb_NODEDBd的命令为:systemctl start
kstoredb_NODEDBd;
Windows系统启动服务名为kstoredb_NODEDBd的命>令为:netstart
kstoredb_NODEDBd
13、假设服务器具有6块900G本地磁盘,单块磁盘IO约为150M/S,现对磁盘进行
RAID划分,简述理论上6块盘做成RAID5级别后实>际存储大小、实际IO为多少?
理论上6块硬盘做raid5;
其中有一块盘做冗余;
因为有校验位;
所以
实际大小是900(6-2)=4000G
实际IO是:写的速率150m/s(小于。理论上写过程中,RAID5会进行校验耗费时间)4=600m/s
因为读取数据的时候校验位的盘是需要读取的所以实际:读的速率是(6-1)*150=750m/s
14、问:请简要描述Linux系统下源代码编译方式安装软件的大致步骤
1.部署基础环境:关闭防火墙;
关闭selinux;
安装编译器
2.下载、解压软件包
3、配置安装路径(-relocate)
4、编译
5、安装
15、问:列出当前系统中所有的网络连接(包含进程名),请写出完整操作命令
netstat -anputl -t TCP -l监听 -a所有 -u UDP -n显示端口号和IPppid
16、实时抓取并显示当前系统中tcp80端口的网络数据信息,请写出完整操作命令
tcpdump -n tcp port 80(tcpdump -i ens33 'tcp port 80')
17、关闭swap分区
Swapoff -a关闭所有的交换分区 swapoff /dev/sde关闭sde交换分区
18、问:kernel调参
linux内核参数调整说明
所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如,下面是最重要的一些调优参数,后面是它们的含
义:
1./proc/sys/net/core/rmem_max---最大的TCP数据接收缓冲。
2./proc/sys/net/core/wmem_max---最大的TCP数据发送缓冲。
3./proc/sys/net/ipv4/tcp_timestamps---时间戳在(请参考RFC1323)TCP的包头增加12个字节。
4./proc/sys/net/ipv4/tcp_sack---有选择的应答。
5./proc/sys/net/ipv4/tcp_window_scaling---支持更大的TCP窗口.如果TCP窗口最大超过65535(64KB),
必须设置该数值为1。
6.rmem_default---默认的接收窗口大小。7.rmem_max---接收窗口的最大大小。
8.wmem_default---默认的发送窗口大小。
9.wmem_max---发送窗口的最大大小。
/proc目录下的所有内容都是临时性的,所以重启动系统后任何修改都会丢失。
建议在系统启动时自动修改TCP/IP参数:
把下面代码增加到/etc/rc.local文件,然后保存文件,系统重新引导的时候会自动修改下面的TCP/IP参数:
echo256960>/proc/sys/net/core/rmem_default
echo256960>/proc/sys/net/core/rmem_max echo256960>/proc/sys/net/core/wmem_default
echo256960>/proc/sys/net/core/wmem_max echo0>/proc/sys/net/ipv4/tcp_timestamps
echo1>/proc/sys/net/ipv4/tcp_sack echo1>/proc/sys/net/ipv4/tcp_window_scaling
TCP/IP参数都是自解释的,TCP窗口大小设置为256960,禁止TCP的时间戳(取消在每个数据包的头中增加
12字节),支持更大的TCP窗口和TCP有选择的应答。
19、问:系统安全加固
1.密码策略 修改系统的密码策略1)经常修改密码2)使用一些特殊的字符和密码的长度增加密码的难度
3)不要随便告诉他人密码
2.权限ugo锁定系统中不必要的系统用户和组 锁定下列用户,锁定之前备份/etc/passwd和/etc/shadow
文件 禁用无关的组 禁止root用户远程登录
3.预防flood攻击linux中预防SYNflood.在/etc/sysctl.conf文件中添加net.ipv4.tcp_syncookies=1
4.加固TCP/IP协议设置/etc/sysctl.conf文件相应权限
5.默认权限与umask不要修改正确的umask值022
6.做任何修改文件的动作先备份再做操作
20、问:硬件性能测试用过什么
对IO进行简单测试dd if=/dev/zero of=testbs=1M count=4096
用top和iostat查看wa%及写硬盘速度top-n1每秒钟的cpu
通过df-h命令查看磁盘情况通过hdparm测试读取速率hdparm-t/dev/sda
linux中几块盘求平均值就是磁盘的平均读取速率
21、问:硬件报错能不能看懂
看BIOS
22、问:临时调整和永久生效系统内核参数在哪里调
1.临时调整内核参数
开启内核路由转发功能,通过01设置开关 #echo"1">/proc/sys/net/ipv4/ip_forward
禁止所有的icmp回包(禁止其他主机ping本机) #echo"1">/proc/sys/net/ipv4/icmp_echo_ignore_all
调整所有进程可以打开的文件总数ps:如果大量用户访问时,可以因为该数字太小而导致错误
echo"108248">/proc/sys/fs/file-max
2.永久调整内核参数 vim/etc/sysctl.conf开启内核路由转发功能,通过01设置开关 net.ipv4.ip_forward=1
禁止所有的icmp回包(禁止其他主机ping本机) net.ipv4.icmp_echo_ignnore_all-=1
调整所有进程可以打开的文件总 fs.file-max=108248
23、问:如何查看当前linux系统的状态,如CPU使用,内存使用,负载情况
sar综合命令 mpstat11cpu监测 free-m内存使用 top负载
24、问:显示CPU利用率的命令,查看系统版本的命令
CPU利用率的命令:top或sar
查看系统版本的命令:cat/etc/redhat-release或uname-a
25、问:查看网卡历史流量实时查看网卡流量
网卡历史流量:sar-nDEV-f/var/log/sa/saxx#查看xx日的网卡流量历史
实时查看网卡流量:sar-nDEV15(每间隔1秒刷新一次,共5次)
26、问:如何查看当前系统每个ip的连接数
Netstat -n |awk'/^tcp/{print1}'|sort| uniq-c
27、问:找出/home下所有7天以前,以.ok结尾的文件列
Find /home -name "*.ok" -mtime +7
28、问:快速生成一个10G的文件
Dd if=/dev/zero of=test bs=10M count=1024
29、问:列出Linux常见打包工具并写相应解压缩参数(至少三种)
压缩打包命令:tar -czf filename. Tar dirname Zip filename. Zip dirname Gzip filename bzip2 -z filename
解压包命令:tar -xf filename.tar unzip filename.zip gzip -d filename.gz bzip2 -d filename.bz2
30、标准端口的范围是?
1-65535
31、常见协议(http、https、ftp、mysql、redis)默认端口。
http:80
https:433
ftp:21
mysql:3306
redis:6379
32、请写出下列端口所运行的服务21、22、23、3306、6379
21:ftp 22:ssh 23:telnet 3306:mysql 6379:redis
33、Linux中的服务自启动添加方法有哪些。
centos6:有两种1.chkconfig服务名on
2.vim/etc/rc.d/rc.local/usr/sbin/服务名start
centos7:有三种1.systemctl enable服务名
2.vim/etc/rc.local systemctlstart服务名
3.vim/etc/fstab systemctlstart服务名
34、从本机复制文件、文件夹到服务器并替换同名文件的写法有哪几种?
有两种:1.scp -r 源文件路径目标文件 ip:目标文件路径
2.rsync-avr源文件路径目标文件 ip:目标文件路径
35、写出下面服务的常用端口:ftp、http、dns、smtp、pop3、dhcp、tftp、
mysql、ssh、https
ftp:21控制端口 20数据端口 http:80 dns:53 smtp:25"简单邮件传输协议" pop3:110"邮局协议版
本3" 3389:window远程桌面
dhcp:客户端是以UDP68 服务器是以UDP67 tftp:69文件传输协议 mysql:3306 ssh:22 https:
443
36、请解释下Telnet和SSH的区别
Telnet:不安全,没有对传输的数据进行加密,容易被监听还有遭受中间人攻击,telnet不能压缩传输
数据,所以传输慢;
ssh:对数据进行了RSA加密,安全性高,ssh传输数据是经过压缩的,所以数据传输速度比较快
37、如何检查Selinux是否开启?
getenforce
enforcing模式:selinux的正常工作模式即开启状态,这时的selinux就像一个保护程序,自动禁止进行对系统安全有威胁的操作。
disable模式:selinux功能的关闭模式,不会对威胁操作进行组织,系统将不受保护。
permissive模式:允许违规操作的进行,但是会用日志的方式记录下来
38、检查服务器是否正常工作的最好办法是?
1.ping 服务器ip
2.ss -antul|grep 服务端口
3.ps aux|grep 服务名
4.systemctl status 服务名
39、Linux记录log的服务叫什么名字?
rsyslog
40、ping命令通过什么协议(internet控制信息协议)来实现?
icmp
41、网络装机工具cobbler了解吗,有哪些组件?
批量装机:pxe
42、查看某一端口的连接客户端IP,比如3306端口
ss -antpul | grep 3306
43、设置系统当前运行级别中test服务状态为启动时自动加载,请写出完整操作命令
runlevel//查看当前的运行级别
chkconfig--level5teston
44、计划任务在11月份,每天早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh怎么实现?
0 6-12/2 * 11 * bash/usr/bin/httpd.sh
45、请写下Linux系统中cron定时任务,每天07至23点,每隔半小时执行apache重启,并禁用系统邮件通知
crontab -e */30 7-23 * * * systemctl restart httpd>/dev/null2>&1
46、以下字段可能和哪个服务有关?表示什么意思?
*/5 * * * * ping -c 100 www.wanmel.com>/root/network.log2>&1
(计划任务)每五分钟ping www.wanmel.com (http://www.wanmel.com) 100次将错误和正确的输出覆盖到/root/network.log
47、/var/www/html/是网站的发布目录,如何每天凌晨0点30分对其进行自动备份,每次备份成按时间生成不同的备份包,写出操作步骤?
30 0 * * * tar-zcf date+%Y%m%d
.html.tar.gz/var/www/html
48、计划每星期天早8点服务器定时重启,如何实现?
0 8 * * 7 reboot
49、每天中午12点使用tcpdump命令抓取目的端口为tcp80的1000个包输出到当前目录,以当前时间命名。请写出定时任务及脚内容 **
0 12 * * * bash tcpdump.sh
Vim tcpdump.sh tcpdump -c 1000 tcp dstport80 -w./date+%Y%m%d
50、Http的错误代码含义(404、410、504、502)?
404(未找到)服务器找不到请求的网页。
410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。
504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。
502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
51、apache如何修改配置参数,将默认端口改为非默认端口。
【运维面试题1-100】1、如何改变Apache端口:
找到Apache安装目录下conf目录下的httpd.conf文件。打开它,找到"Listen",紧接着Listen的数字就
是端口号,默认状态下为"Listen80"。在之前的PHP专题中提到过关于在安装配置Apache时会遇到端口
与IISHTTP端口冲突的问题,因为IISHTTP端口默认也为80。那么我们就可以在这里改变Apache的端
口,从而避免冲突,比如可以改成:Listen8011。改好之后别忘重起Apache服务使得配置生效。
Vim /etc/httpd/conf/httpd.conf
2、apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
apache有三种工作模式:分别是prefork,worker和event
1.prefork:是一种进程、与派生的工作模式,用的是进程去处理请求,所以比较容易消耗内存,但是稳
定性好,某个进程出现问题不会影响到其他请求。要求稳定的时候使用
2.worker:是使用多个子进程、每个子进程有多个线程、由于使用的是线程去处理请求,消耗内存小,
适合高流量的请求,但是如果某个进程出现问题,那么这个进程下的线程都会出现问题,即稳定性不是
很好。这种模式不能php要测试一下在访问量多的时候使用
3.event模式:是为解决keep-alive保持长连接出现的一种工作模式,使用keep-alive长连接的时候,某
个线程会一直被占用,即使中间没有请求,需要等到超时才会被释放,所以这个时候就出现了event的
工作模式就出现了。在event工作模式中,会有一些专门的线程用来管理这些keep-alive类型的线程,当
有真实请求过来的时候,将请求传递给服务器的线程,执行完毕后,又允许它释放。这增强了在高并发
场景下的请求处理。另外,event模式是不支持用在https上的。3、apache的工作模式,如何执行php代码
进程模式prefork
线程模式work
事件模式event
安装apache的php模块libphp5.so
apache做代理----后端服务器安装php-fpm
52、进程和线程的区别?
线程:线程来源与进程,线程模式需要事先开启
线程模式并发量高 相对与进程模式来说没有进程模式稳定 共享内存 不支持php
进程:进程稳定性高;
线程稳定性低
进程独占内存;
线程共享进程的内存一个进程可以有多个线程;
53、dhcp客户端是哪个地址来申请一个新的ip地址的?
dhcp客户端是使用广播地址来向全网发送广播包来寻找dhcp服务器的
源地址是0.0.0.0 广播地址是:255.255.255.255 客户端没有IP地址才需要申请,所以它只能用0.0.0.0来
代替它的ip,向服务器端申请ip地址。
54、DHCP(动态主机配置协议)
主要目的是为了方便我们的主机IP地址的配置,如果网络中存在大量的主机时,可通过部署DHCP协
议,由DHCP服务器分配可用地址给主机。
客户端启用了DHCP,开机后,它会发布一个的广播报文,广播报文经过网关时会带上相应标记,要使
路由可达,当DHCP服务器收到这个报文后,DHCP服务器会根据报文标记,分配一个网关所在网段IP地
址给客户端,如果所有客户端未划分网关,DHCP会在地址池内随机分配IP给客户端
地址池:在用户定义了DHCP范围及排除范围后,剩余的地址构成了一个地址池,地址池中的地址可以
动态的分配给网络中的客户机使用。地址池仅对自动获取IP的方式有效,手动设置IP只要符合规则可无
视此项。
55、单独修改某一个账户的配置?
user_config_dir=/etc/vsftpd/userconf
vim /etc/vsftpd/userconf/zhanghu local_root=/zhanghu
56、我们都知道FTP协议有两种工作模式,说书他们的大概的一个工作流程?
模式:主动模式(ActiveFTP)和被动模式(PassiveFTP)
1、在主动模式下:FTP客户端随机开启一个大于1024的端口N,向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORTN+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。客户端使用1024以上的端口连接服务器的21号端口,并且会事先开启一个1024+N的端口准备让服务器来连接,服务器得知客户端准备的端口后,用20号端口与客户端连接,创建数据链路时server端处于主动去连接客户端的状态固称为主动传输模式
2、在被动模式下:FTP客户端随机开启一个大于1024的端口N,向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORTP命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。客户端使用1024以上的端口连接服务器的21号端口,服务器接到连接请求后,开启一个1024+M的端口等待客户端来连接,再通知客户端这个等待连接的端口号是1024+M,客户端接到服务器端的信息后,开启新的一个1024+N的端口与1024+M进行连接,创建数据连接时,server端处于被客户端连接的状态,固称为被动传输模式vsftp默认是根据客户端不同而使用不同模式,windows客户端则使用主动,linux客户端则使用被动可以用pasv_enable=NO来强制使用主动,总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
57、我们都知道dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp协议?为什么要这么设计? **
dns有两个情况,一种是区域传输,一种是域名解析
1.区域传输时,一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息,传输协议是tcp。
2.域名解析时,首选的通讯协议是udp,使用udp传输,不用经过TCP三次握手,这样DNS服务器负载更低,响应更快,但是当域名解析的反馈报文的长度超过512字节时,将不能使用udp协议进行解析,此时必须使用tcp
58、当用户在浏览器当中输入一个网站,说说计算机对dns解释结果哪些流程?
注:本机跟本地DNS还没有缓存
www.baidu.com.
1.用户输入网址到浏览器;
2.浏览器发出DNS请求信息;
3.计算机首先查询本机HOST文件,不存在,继续下一步;
4.计算机按照本地DNS的顺序,向区域dns服务器查询IP结果;
区域dns服务器查询不到时会从根域开始,按照DNS层次结构向下搜索,直至对于信息具有权威性;
5.将返回dns结果给本地dns和本机,本机和本地dns并缓存本结果,直到TTL过期,才再次查询此结果;
6.返回IP结果给浏览器;
并给本地的DNS一份结果;
7.浏览器根据IP信息,获取页面;
59、在nslookup使用中请问如何查询test.com域中的MX记录
Nslookup -query type=MX test.com Host dig nslookup settype=mx test.com
60、修改ssh客户端端口:
vim/etc/ssh/ssh_config /Port查找端口行,删除#,将22修改为目标端口
推荐阅读
- 尽力
- Shell-Bash变量与运算符
- 2019-04-01|2019-04-01 幸运
- 蓝桥杯试题
- 人工智能|干货!人体姿态估计与运动预测
- 原来幸运一直都在
- iOS面试题--基础
- 排序(归并排序)
- 你的善良里,藏着自己的运气
- 剑指|剑指 Offer 13. 机器人的运动范围(dfs,bfs)