一。解答题
1、统计当前主机的TCP协议网络各种连接状态出现的次数
netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘ netstat -nat | sed -nr ‘/^tcp/p‘ | sed -nr ‘s/.* ([[:alpha:]]+).*/\1/p‘ |sort |uniq -c ss -tan |tail -n +2|cut -d" " -f1|sort| uniq -c
2、编译源码包过程介绍。采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?
tar 解包:解压、释放安装包内的文件 ./configure 配置:针对当前系统环境指定安装目录、选择功能等设置。 make 编译:将源代码编译成二进制的可执行程序、库文件等数据。 make install:将编译好的程序文件、配置文档等复制到对应的安装目录。
3、 为什么说 TCP 协议比 UDP 协议通讯更可靠,并简述 TCP 三次握手和四次挥手的网络连接和断开过
程。
由于 TCP 协议是基于连接的,具备数据收发确认效验机制,因此他比 UDP 协议通信可靠。 三次握手: - 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client 进入SYN_SENT状态,等待Server确认。 - 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK 都置为1 ack=J+1,随机产生一个值seq=K, 并将该数据包发送给Client以确认连接请 求,Server进入SYN_RCVD状态。 - 第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1, ack=K+1,并将该数据包发送给Server,Server 检查ack是否为K+1,ACK是否为1,如 果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server 之间可以开始传输数据了。 四次挥手: - 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1 状态。 - 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个 FIN占用一个序号),Server进入CLOSE_WAIT状态。 - 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状 态。 - 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号 为收到序号+1,Server进入CLOSED状态,完成四次挥手
4、 请简述将一块 100G 新硬盘插入服务器, 创建EXT4的逻辑卷1G,并配置挂载到 /data/log/,使用一段时
间空间不足,扩容到2G
看最后
5, 如何配置linux系统的环境变量,如何配置Linux系统的指定用户的环境变量。
系统环境变量:/etc/profile /etc/bash.bashrc /etc/environment #配置系统变量影响所有人 用户环境变量:~/profile ~/.bashrc ~/.bash_profile #配置指定用户的环境变量 不会影响到其他用户
6、检测网络状态一般用哪些指令,请例举。并说明具体用途?(俩种以上)
连接测试命令ping 说明:ping命令是windows的自带命令,它基于ICMP协议。通过ping命令的返回信息,可以判断能否连接远 程主机,并且看到连接远程主机的延迟时间。 网络连接状态命令netstat 说明: netstat 是一-个TCP/IP监控命令,它可以显示本机的核心路由表、实际的网络连接、开启的端口列 表,以及统计IP、TCP、UDP、和ICMP协议相关的通信流量。 路由表管理命令route 说明:使用route命令可以显示和修改本地路由表。入侵远程主机后,可以使用route命令来修改该主机在内网 的数据包流向,以便侦听内网明文传输的信息,偷窃其他内网用户的网络密码。
7、写出在 CentOS7.6 操作系统上创建系统用户 apache 的命令,要求其用户 id 和组 id 为 799
[root@localhost ~]# groupadd apache -g 799 [root@localhost ~]# [root@localhost ~]# useradd -r apache -u 799 -g 799 [root@localhost ~]# [root@localhost ~]# id apache uid=799(apache) gid=799(apache) groups=799(apache)
8、请简述一下硬链接和软连接的区别和各自的特点
1.本质:硬链接:是一个文件,软连接 :不是一个文件 2. 跨设备 硬链接:不支持,软连接:支持 3. inode : 硬链接:相同,软连接: 不同 4. 链接数 :硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数会减少,软连接:创建或删除, 连接数不会变化 5. 文件夹:硬链接:不支持,软连接:支持 6.相对路径: 硬链接,原始文件相对路径是相对当前工作目录的,软连接:原始文件的相对路径是相对与链 接文件的相对路径 7. 删除源文件:只是链接数减1,但是链接文件的访问不受影响,软链接:链接文件将无法访问 8. 文件类型,硬链接:和源文件相同,软连接:链接文件,和源文件无关 9.文件大小:硬链接:和源文件相同,软链接:源文件的路径的长度
9、请简述一下 IP 地址分类和各自的私网或特殊地址范围
参考答案: ipv4地址分为5类,分别是 A: 0.0.0.0-127.255.255.255 其中 0.0.0.0 和 127.x.x.x 是本地回环地址 10.x.x.x 是私网地址 B: 128.0.0.0-191.255.255.255 其中172.16.x.x---172.31.x.x 是私网地址 C: 192.0.0.0-223.255.255.255 其中192.168.X.X 是私网地址 D: 224.0.0.0-239.255.255.255 该类地址不分网络地址和主机地址,第一个字节以“1110”开始,它是一个专门保留的地址。 该类地址主要用于多点广播Multicast之中作为多播组IP地址 E: 240.0.0.0-255.255.255.255,其中段255不可用 该类地址不分网络地址和主机地址,地址是以“1111”开始,他的第一字节的范围是240~255,为将来使 用保留
10、请使用文本处理命令打印出 /etc/init.d/functions 的所有函数名称
cat /etc/init.d/functions | sed -nr ‘s/\{$//p‘ cat /etc/init.d/functions | grep "^[a-zA-Z_]\+() {" | cut -d "(" -f1 cat /etc/init.d/functions | grep "()" | sed -nr ‘s/(.*)\(.*/\1/p‘ cat /etc/init.d/functions | grep "() {" | sed -nr "s/(.*)\(\) \{$/\1/p" cat /etc/rc.d/init.d/functions | egrep ‘^(_|[a-z])+ ?\(\)‘ cat /etc/init.d/functions | sed -nr ‘s#(.*)\(\) .*#\1#p‘ cat /etc/init.d/functions | grep "()"|awk ‘{print $1}‘ egrep "[_[:alpha:]]+\(\)" /etc/rc.d/init.d/functions cat /etc/rc.d/init.d/functions | egrep ‘^(_|[a-z])+ ?\(\)‘
11、请分别简述几种常见的 raid 模式,并简述一下他们各自的特点
RAID0: 是一种简单的、无数据校验的数据条带化技术,可将多个磁盘合并成一个使用,容量大,读写速度 快。 RAID1: 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,它的磁盘空间利用率为 50% RAID5: 使用数据校验功能的,校验数据分布在阵列中的所有磁盘上,当有一块磁盘损坏时可以使用检验数 据恢复,恢复数据是磁盘比较慢, 日常使用频率较高的RAID模式,是 RAID0 和 RAID1 的折中方案 RAID01:先做镜像,然后内部再做条带,比RAID10有跟好的容错性能,磁盘空间利用率50% RAID10:先做条带,然后内部再做镜像,磁盘空间利用率50%。比RAID10 风险高,当有一组RAID故障时, 数据丢失不可用。
12 , 创建网桥br0,配置IP为10.0.0.123/24,并将eth0,eth1加入网桥,持久保存上面配置
nmcli con add type bridge con-name br0 ifname br0 nmcli connection modify br0 ipv4.addresses 10.0.0.123/24 ipv4.method manual nmcli con up br0 nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0 nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0 nmcli con up br0-port0 nmcli con up br0-port1
13 抓取从源地址为10.0.0.111主机访问目标主机10.0.0.222的80/tcp端口的流量?
tcpdump -i eth0 -nn src host 10.0.0.111 and dst host 10.0.0.222 and tcp port 80
14 主机202.192.33.160/28的子网掩码是什么,所在网段最多有多个主机?
子网掩码:255.255.255.240 所在网段最多有32-28=4,2^4-2=14
二。扩展题
1、写一个脚本,实现批量添加20个用户,用户名为:user1-20,密码为user后面跟着几个随机字符或数
字。
#!/bin/bash for i in `seq 1 20`;do useradd user$i echo "user`echo $RANDOM |md5sum|head -c 6`"| passwd --stdin user$i &> /dev/null done
2、编写一键编译安装httpd的脚本
#!/bin/bash #解决依赖 yum -y install wget gcc gcc+ pcre-devel apr-devel apr-util-devel yum -y groupinstall "Development Tools" #下载 apache 安装包 wget https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.46.tar.gz #解压安装包 tar -xvf httpd-2.4.46.tar.gz && cd httpd-2.4.46 #生成 makefiel ./configure --prefix=/app/httpd #开始编译 make && make install #启动 apache /app/httpd/bin/apachectl #通过过滤端口 80 已经打开 [09:57:18 root@a7 ~]#lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 32963 root 4u IPv6 43432 0t0 TCP *:http (LISTEN) httpd 33015 daemon 4u IPv6 43432 0t0 TCP *:http (LISTEN)
3,数字答案为 1 到 100 的随机数,执行脚本后等待用户输入数字,若猜中则结束游戏,未猜中则返回答
案和所输入数字的大小关系,最多可以猜5次,5次均未猜中则结束游戏
[root@localhost ~]# cat guess.sh #!/bin/bash randomNum=`expr $RANDOM % 100` echo $randomNum for((i=1;i<=5;i++)){ read -p "please input a number: " myNum if [ $myNum -ne $randomNum ];then if [ $myNum -gt $randomNum ];then echo "please input a smaller number" else echo "please input a bigger number" fi else echo "you win the game , randomNumber is $randomNum" exit fi }
4,如何实现主机之间跨路由跨网段通讯。实验:主机A <<----- router1-----router2------>>主机B
主机A:
172.18.0.111/16
GATEWAY:172.18.0.200
router1:
eth0:172.18.0.200/16
eth1:192.168.6.200/24
router2:
eth0:192.168.38.200/24
eth1:192.168.6.201/24
主机B:192.168.38.222/24
GATEWAY:192.168.38.100
主机A:设置为桥接 路由1:设置eth0为桥接,eth1设置为仅主机 路由2:设置eth0为桥接,eth1为NAT 主机B:设置为NAT #1、 更改所有机器ip 主机A:更改eth0 ip为172.18.0.111/16 gateway:172.18.0.200 重启network服务 route -n 查看路由信息 router1:修改eth0 ip为172.18.0.200/16 eth1 ip为192.168.6.200/24 重启network服务 router2:修改eth0 ip为192.168.38.200/24 eth1 ip为192.168.6.201/24 重启network服务 主机B:更改eth0 ip为192.168.38.222/24 gateway:192.168.38.100 重启network服务 route -n 查看路由信息 相邻机器之间可以ping通表示配置没有问题 #2 配置路由 router1:添加网络路由 route add -net 192.168.38.0/24 gw 192.168.6.201 dev eth1 或 添加默认路由 route add default gw 192.168.6.201 route -n 查看路由信息 router2:添加网络路由 route add -net 172.18.0.0/16 gw 192.168.6.200 dev eth1 route -n 查看路由信息 #3 linux系统默认不会做转发报文,因此需要添加路由转发选项 cat /proc/sys/net/ipv4/ip_forward 默认为0表示禁用 router1: echo > 1 /proc/sys/net/ipv4/ip_forward router2: echo > 1 /proc/sys/net/ipv4/ip_forward 主机B: ping 172.18.0.111 连通即可
5. 简述OSI协议和TCP/IP协议的对应分层功能及相关协议
第四题答案
1.添加硬盘,模拟100G
2.查看是否成功添加磁盘
[root@master01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 100G 0 part / ├─sda3 8:3 0 2G 0 part ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 50G 0 part /data sdb 8:16 0 100G 0 disk #新添加的100G磁盘 sr0 11:0 1 4.3G 0 rom
3.实现逻辑卷
3.1 创建物理卷
1.#先安装相关工具 [root@master01 ~]# yum install -y lvm2 2.#创建物理卷 [root@master01 ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. 3.#查看物理卷简要信息 [root@master01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 --- 100.00g 100.00g #可以看到物理卷为100G [root@master01 ~]# pvdisplay /dev/sdb #查看物理卷详细信息 "/dev/sdb" is a new physical volume of "100.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 100.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Qa7eTs-fam8-8u2E-c8DG-oGUJ-4xPX-afpBbA
3.2 创建卷组
[root@master01 ~]# vgcreate -s 16M vg0 /dev/sdb Volume group "vg0" successfully created #-s 16M,指定pe大小为16M [root@master01 ~]# vgs VG #PV #LV #SN Attr VSize VFree vg0 1 0 0 wz--n- 99.98g 99.98g
3.3 创建逻辑卷
[root@master01 ~]# lvcreate -n mydata -L 1G vg0 #创建1G的逻辑卷 Logical volume "mydata" created. [root@master01 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydata vg0 -wi-a----- 1.00g
3.4 创建文件系统
[root@master01 ~]# mkfs.ext4 /dev/vg0/mydata mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
3.5 对逻辑卷进行挂载
#先创建挂载点 [root@master01 ~]# mkdir /data/log [root@master01 ~]# mount /dev/vg0/mydata /data/log/ [root@master01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 100G 3.3G 97G 4% / devtmpfs 900M 0 900M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 12M 899M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda5 50G 33M 50G 1% /data /dev/sda1 1014M 138M 877M 14% /boot tmpfs 182M 0 182M 0% /run/user/0 /dev/mapper/vg0-mydata 976M 2.6M 907M 1% /data/log #已经挂载
4.实现逻辑卷扩容
因为使用一段时间后,导致空间不足,所以要进行扩容,扩容到2G
1.#空间扩展 [root@master01 ~]# lvextend -L +1G /dev/vg0/mydata Size of logical volume vg0/mydata changed from 1.00 GiB (64 extents) to 2.00 GiB (128 extents). Logical volume vg0/mydata successfully resized. [root@master01 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydata vg0 -wi-ao---- 2.00g 2.#文件系统的扩展 [root@master01 ~]# resize2fs /dev/vg0/mydata resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vg0/mydata is mounted on /data/log; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/vg0/mydata is now 524288 blocks long.
检测是否扩展成功
[root@master01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 100G 3.3G 97G 4% / devtmpfs 900M 0 900M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 12M 899M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda5 50G 33M 50G 1% /data /dev/sda1 1014M 138M 877M 14% /boot tmpfs 182M 0 182M 0% /run/user/0 /dev/mapper/vg0-mydata 2.0G 3.0M 1.9G 1% /data/log #可以看到已经扩容到2G
原文:https://www.cnblogs.com/will-/p/14247623.html