1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
设备 | 使用场景 | 功能 | 区别 |
集线器 | 局域网 | 共享同一网络 | 不能分隔冲突域 |
网桥 | 局域网 | 连接不同网段,拓展局域网 | 端口少,可以分隔冲突域 |
二层交换机 | 局域网 | 连接不同局域网段,数据交换 | 端口更多,可以分隔冲突域,速率更快 |
三层交换机 | 局域网,广域网 | 路由,高速数据交换,分隔广播域 | 转发数据速度快,路由功能较路由器弱 |
路由器 | 广域网 | 路由转发,分隔广播域 | 转发数据比三层交换机速度慢,主要用于路由 |
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
类别 | 范围 | 子网掩码 |
A | 1~126 | 255.0.0.0 |
B | 128~191 | 255.255.0.0 |
C | 191~223 | 255.255.255.0 |
D | 224~239 | |
E | 240~254 |
子网掩码作用:用来区分网络地址和主机地址
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI模型 | 名称 | 功能 | 设备 | TCP/IP模型 | 名称 |
第一层 | 物理层 | 定义物理设备通信的电气特性 | 集线器 | 第一层 | 物理层 |
第二层 | 数据链路层 | 物理地址寻址,流量控制,数据校验 | 网桥,交换机 | 第二层 | 数据链路层 |
第三层 | 网络层 | 路由选择 | 路由器、三层交换机 | 第三层 | 网络层 |
第四层 | 传输层 | 端到端通信、差错控制、流量控制 | 第四层 | 传输层 | |
第五层 | 会话层 | 管理进程间通信 | 第五层 | 应用层 | |
第六层 | 表示层 | 数据格式化、数据加密,代码转换 | |||
第七层 | 应用层 | 为操作系统或应用程序提供网络服务接口 |
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
修改对应网卡配置文件
[root@jumper ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #修改并添加以下选项
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.4.0.61
NETMASK=255.255.255.0
GATEWAY=10.4.0.10
DNS=8.8.8.8
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
a.修改配置文件方式(永久有效)
vim 修改/etc/sysconfig/network-scripts/ifcfg-ethX,并保存
b.命令行方式(当前有效)
使用 ip,route命令指定ip地址,默认网关
c.图形界面方式
使用 setup 命令进入tui界面配置,或者是 system-config-network-tui
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash # server='172.16.250.' for num in {1..254};do if ping -c 1 -w 1 $server$num &> /dev/null ;then echo -e "\t\033[32m$server$num online\033[0m" else echo -e "\t\033[31m$server$num offline\033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
DEVICE=eth0 #设备名
HWADDR=00:50:56:80:7C:4A #设备物理MAC地址
TYPE=Ethernet #设备类型
UUID=2c6e71ce-5562-46b2-a7a7-a4a27f2e226a #通用惟一标识符
ONBOOT=yes #开机启动
NM_CONTROLLED=yes #该设备是否接受 network manager 控制
BOOTPROTO=none #启动此设备时的地址匹配协议
IPADDR=10.4.0.60 #ipv4地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=10.4.0.10 #默认网关
DNS=8.8.8.8 #域名解析服务器地址
8、如何给网络接口配置多个地址,有哪些方式?
a、[root@server ~]# ifconfig lo:1 192.168.1.1/24 up #使用 ifconfig 查看配置结果
b、[root@server ~]# ip addr add 192.168.1.1/24 dev lo #使用 ip addr show lo 查看配置结果
c、新建/etc/sysconfig/network-scripts/ifcfg-ethX:X 文件
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
1)ifconfig #查看所有网络接口信息
ifconfig 网卡名 ip地址/子网掩码 #配置网卡ip,立即生效
2)route #打印路由表
route add|del 目标主机或ip地址 #添加/删除对应主机/ip路由条目
3)netstat #显示网络连接、路由表、接口统计、伪装的连接,和组播成员
netstat -tnlp #以数字形式显示正在监听的tcp协议相关进程
netstat -unlp #以数字形式显示正在监听的udp协议相关进程
-n:以数字格式显示ip及端口
-t:tcp协议相关
-l:处于监听状态
-P:显示相关的进程和PID
4)ss #显示网络连接状态,速度较netstat快
ss -tnlp #以数字格式显示tcp协议套接字
ss -unlp #以数字形式显示正在监听的udp协议相关进程
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
1)使用rpm工具管理(本地包组管理,无需网络,需要rpm本地包,手动解决依赖关系)
查询 rpm -q package …
安装 rpm -i package …
升级 rpm -U package …
卸载 rpm -e package …
2)使用yum工具管理(若无本地源,则必须要连接互联网,无需本地包,安装时自动解决依赖关系)
查询 yum list …
安装 yum install package …
升级 yum upgrate package …
卸载 yum remove package …
11、如何使用发行版光盘作为yum repository,请描述该过程。
1)挂载光盘 #mount -r -t iso9660 /dev/cdrom /media/cdrom
2)编辑repo文件 #vim /etc/yum.repos.d/test.repo
[test-cent6]
name=local_repo
baseurl=file:///media/cdrom
gpgcheck=1
enabled=1
3)检查结果 #yum repolist
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash # declare -i k=0 declare -i s=0 dir_name="/etc/rc.d/rc3.d/" for list in $(ls $dir_name);do if echo $list | grep ^K &> /dev/null;then echo "$list stop" let k++ else echo "$list start" let s++ fi done echo "kfile $k" echo "sfile $s"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash # declare -i sum=0 if [ $# -eq 0 ];then echo "Usage: $0 User_name ..." exit fi for list in $*;do if id $list &> /dev/null;then user_id=$(id -u $list) let sum+=$user_id else echo "$list is not exist" fi done echo "id total is $sum"
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash # declare -i dir_sum=0 declare -i file_sum=0 if [ $# -eq 0 ];then echo "Usage: $0 dir_name ..." fi for list in $*;do if [ ! -d $list ];then echo "$list is not a directory,pls input directory name" exit fi done for list1 in $*;do for list2 in $(ls $list1);do if [ -d $list1/$list2 ];then let dir_sum++ elif [ -f $list1/$list2 ];then let file_sum++ fi done done echo "directory $dir_sum" echo "file $file_sum"
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash # if [ $# -ne 1 ];then echo "Usage: $0 user_name" exit fi if id $1 &> /dev/null;then num=$(id -u $1) if [ $num -gt 500 ];then echo "$1 is normal user" fi fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash # declare sum=0 Judge_user () { if id $1 &> /dev/null;then echo "$1 is exist" else useradd $1 echo $1 | passwd --stdin $1 &> /dev/null let sum++ fi } for list in $(seq 1 10);do Judge_user user$list done echo "$sum users is add in this operation"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash # server='172.16.250.' for num in {20..100};do if ping -c 1 -w 1 $server$num &> /dev/null ;then echo -e "\t\033[32m$server$num is online\033[0m" fi done
18、打印九九乘法表;
#!/bin/bash # for ((b=1;b<=9;b++));do for ((a=1;a<=$b;a++));do echo -n -e "${a}x${b}=$[$a*$b]\t" done echo done
原创文章,作者:Net21_木头,如若转载,请注明出处:http://www.178linux.com/42104