Linux系统工程师面试题附答案

Linux系统工程师面试题附答案,第1张

一、简答题

1.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:

答:# iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --to 192.168.16.1:8080

或 者:# iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

2.什么是NAT,常见分为那几种,DNAT与SNAT有什么不同,应用事例有那些?

SNAT,DNAT,MASQUERADE都是NAT。

MASQUERADE是SNAT的一个特例。

SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机。

MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE。

DNAT,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

因为,路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的。

3.包过滤防火墙与代理应用防火墙有什么区别,能列举几种相应的产品吗?

4.iptables是否支持time时间控制用户行为,如有请写出具体 *** 作步骤。

5.说出你知道的几种linux/unix发行版本。

Redhat、CentOS、Fedora、SuSE、Slackware、Gentoo、Debian、Ubuntu、FreeBSD、Solaris、SCO、AIX、HP…

6.列出linux常见打包工具并写相应解压缩参数(至少三种)

7.计划每星期天早8点服务器定时重启,如何实现?

8.列出作为完整邮件系统的软件,至少二类。

9,当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存。

答:

a.用户输入网址到浏览器

b.浏览器发出DNS请求信息

c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步

d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果

e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果

f.返回IP结果给浏览器

g.浏览器根据IP信息,获取页面

10,我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp协议?为什么要这么设计?

答:这个题需要理解的东西比较的多,分一下几个方面

a,从数据包大小上分:UDP的最大包长度是65507个字节,响应dns查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这时名字 解释器通常使用TCP从发原来的请求。

b,从协议本身来分:大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用 (如:TFTP,BOOTP和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更 大,这就要求dns客户端需要好的重传和超时算法,这时候使用TCP。

11,一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。

答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode 耗尽了。

12,我们都知道FTP协议有两种工作模式,说说它们的大概的一个工作流程?

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。

服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通 知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的.FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。

因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

13.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下

Q:主要是考察awk 这些的用法

#/bin/sh

#Programm :

# Using for move currently directory to /tmp

for FileName in `ls -l |awk ‘$5>10240 {print $9}’`

do

mv $FileName /tmp

done

ls -la /tmp

echo “Done! ”

14.apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?

apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候加参数–with-mpm- worker选择工作模式)

Linux系统工程师面试题(附答案)

prefork的特点是:(预派生)

1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销

2.可以防止意外的内存泄漏

3.在服务器负载下降的时候会自动减少子进程数

worker的特点是:支持混合的多线程多进程的多路处理模块

如果对于一个高流量的HTTP服务 器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。

15.名词解释 HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME 等等。

16.编写shell脚本获取本机的网络地址。比如:本机的ip地址是:192.168.100.2/255.255.255.0,那么它的网络地址是

192.168.100.1/255.255.255.0

方法一:

#!/bin/bash

#This script print ip and network

file=”/etc/sysconfig/network-scripts/ifcfg-eth0″

if [ -f $file ] then

IP=`grep “IPADDR” $file|awk -F”=” ‘{ print $2 }’`

MASK=`grep “NETMASK” $file|awk -F”=” ‘{ print $2 }’`

echo “$IP/$MASK”

exit 1

fi

方法二:

#!/bin/bash

#This programm will printf ip/network

#

IP=`ifconfig eth0 |grep ‘inet ‘ |sed ‘s/^.*addr://g’|sed ‘s/ Bcast.*$//g’`

NETMASK=`ifconfig eth0 |grep ‘inet ‘|sed ‘s/^.*Mask://g’`

echo “$IP/$NETMASK”

exit

17.在命令行下发一邮件,发件人:[email protected], 收信人:[email protected]

二、简述题:

1.linux下如何改IP,主机名,DNS

2.linux下如何添加路由

3.简述linux下编译内核的意义与步骤

4.简述Linux启动过程

5.简述DDOS攻击的原理

6.简述Tcp三次握手的过程

7.简述VPN,常见有哪几种?

三、设计题:

1.系统设计

请考虑以下系统的设计. 您可以翻阅资料,查询任何您有帮助的资料、指南等。

您有的资源:

8台安装Linux (2.6内核) 的双网卡PC服务器以及相关开源软件,交换机

Apache 2.2.x

Tomcat 5.5.X

数据库系统

最多8个Internet IP地址,请您设计一个系统:

1、使用双apache web server前端

2、采用AJP连接后段的3台Tomcat应用服务器,这些tomcat被配置成cluster, 因此需要考虑apache对后端的分配,分配采用完全平衡的方法配置使用cookie来实现session stickness

3、1台数据库服务器只有tomcat才需要连接,也不需要对Internet提供服务。

4、考虑系统的安全性和维护方便性

5、通过rewrite规则配置把下属URL规则改写成友好的URL

http://server/webapp/getinfo?id=XXXX&name=YYYY –>http://server/getinfo/YYYY/XXXX

您需要提交

1、服务器规划,包括:

* 网络结构图

* 每台机器的IP地址分配

* 每台机器上运行的关键软件

* 您从安全性和维护性方面的考虑

2、Apache的以下配置文件给我们:

* extra/http-proxy-ajp.conf

* extra/http-rewrite.conf

2.你可以采取任何设备和不同 *** 作系统服务器设计对两台WWW服务器和两台FTP服务器做负载均衡,用网络拓扑图表示并加以说明!(方法越多越好)

第一种方法: DNS轮巡

www1 IN A 192.168.1.1

www2 IN A 192.168.1.2

www3 IN A 192.168.1.3

ftp1 IN A 192.1.1.4

ftp2 IN A 192.1.1.5

ftp3 IN A 192.1.1.6

www IN CNAME www1

www IN CNAME www2

www IN CNAME www3

ftp IN CNAME ftp1

ftp IN CNAME ftp2

ftp IN CNAME ftp3

1.6 Linux运维岗位及工作内容

互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。

1.数据安全:不丢不泄露。

2.7*24小时不宕机

3.服务质量

4.运维效率和成本控制

1.6.1 Linux运维工程师岗位职责

一般从企业入门到中级Linux运维工程师的工作大致有:

□挑选IDC机房及带宽、购买物理服务器。

□购买云服务及CDN服务相关。

□搭建部署压力测试和正式的业务系统运行环境(例如:网站运行环境)。

□负责日常项目或业务代码上线、故障排除、代码回滚等。

□对企业数据进行备份及故障恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)。

□对网站的运行状态及故障进行监控、提前解决网站运行的潜在安全问题。

□开发自动化程序(shell、python)或平台提高工作效率。

□根据访问量增加,提前规划和升级网站集群架构,根据公司需求增加业务应用。

□程序发布流程和规范,制定运维工作制度和规范。

□配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求。

□公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。

涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,Shell/Python/Go语言等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。

总的来说:Linux初中级运维工程师更多的是使用工具软件的阶段,在一线城市互联网公司的薪资一般在8000-20000/月。老男孩教育毕业学生平均13-15K

职业发展方向:系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监

1.6.2Linux运维架构师岗位职责

运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:

1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;

2、云计算部署架构及Docker+K8S及微服务架构方案;

3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);

4、10万并发的网站架构、秒杀系统的架构及解决发你个案;

5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;

6、数据库、存储及各重要服务节点的集群和高可用方案。

7、各网络服务的极端优化方案、服务解耦/拆分。

8、运维流程、制度、规范等的建设和推行。

9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。

这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。

总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-100000/月。

职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监

运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。

技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6078549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存