1. 网络简介
网络:简单说通过网络介质把各种设备连接起来形成的结构
网络介质:网线,光纤,wifi
2. 网络设备与架构
2.1 交换机(switch)
特点:
1. 在一个交换机的端口上所连接的所有终端设备,均在一个网段(局域网 LAN)称为广播域
2. 终端用户的设备接入,连接交换机
3. 一个网段会有一个统一的网络标识,网段192.168.15.xxx
2.2 路由器
概述:
1. 连接不同的网络
2. 路由功能,分配ip地址
特点:
1. 路由协议的转发
2. 数据转发,会维护一个路由表
3. 路由器会作为网关
4. 路由器用于连接广域网(公网)
3. OSI七层模型
用于规定数据在发送,传输,阅读流程.
OSI7层 每一层概述 应用层 大部分软件运行在这一层. 协议: http,https 表示层 负责数据加密,解密,压缩..... 会话层 主要负责会话管理,维护... 传输层 主要负责数据传输方式,TCP (可靠) UDP(不可靠) 网络层 主要负责路由与寻址 数据链路层 将分组数据封装成帧 物理层 物理链路,网卡 :本质
记忆口诀:物数网传会表应
3.1 七层模型详解-应用层
作用:
1.大部分软件,服务运行在应用层中
2.暴露很多接口,提供给其他服务软件使用.主要就是提供应用程序可以接入网络的接口,并根据程序的不同对应不同的接口协议
协议 端口 http 80 https 443 smtp/smtps 25/465 dns 53
3.2 七层模型详解-表示层
作用:
1.数据的编码和解码
2. 数据的加密和解密
3. 数据的压缩和解压缩
3.3 七层模型详解-会话层
作用:
1. 建立,维护,管理应用程序的会话
2. 对话控制
3. 同步服务
3.4 七层模型详解-传输层
作用:
1. 传输层用于管理或控制连接(端到端)
2. 传输层控制了,连接或数据传输是否可靠.指定端口号
可靠连接:TCP
不可靠连接:UDP
负责端到端的连接,保证报文在端到端之间的传输
3.5 七层模型详解-网络层
作用:
1. 路由选择和分组转发
2. 为网络设备提供逻辑地址
3. 指定源ip和目标ip
3.6 七层模型详解-数据链路层
作用:
1.上层数据进行转换转换为帧
2. 这一层加工数据的时候,增加了MAC地址
3.7 七层模型详解-物理层
通过设备的网卡把上面的数据转换为网络介质中可以传输的信号
4. 数据传输与OSI7层模型
4.1 封包过程
从应用层开始一层层增加内容,最后通过网络介质传输出去
4.1 解包过程
从物理层开始一层层减少内容
5. TCP的三次握手
与服务的端口建立连接的流程
1. 客户端发出建立连接请求: SYN建立连接请求 . 发出seq的随机数(seq=100)
2. 服务端收到客户端请求:ACK(确认),SYN(与客户端建立连接) , 发出ack=seq+1(101),seq=随机(666)
3. 客户端收到服务端请求与确认:发出ACK确认建立连接 , 发出 ack=seq+1(667)seq=ack(101)
4. 连接建立,开始传输数据
6. TCP的四次挥手
1.客户端 发出断开连接请求: FIN断开连接请求,seq=随机数996
2.服务端: 收到客户端请求,确认: ACK确认断开, seq=随机数(9) ack=seq+1(997)
3.服务端: 向客户端发出断开连接请求,FIN断开连接请求, seq=随机数(9) ack=seq+1(997)
4.客户端: 确认收到请求,断开连接, ACK确认收到请求, seq=997 ack=seq+1(10)
7. TCP/UDP 区别
传输控制协议(TCP) 数据报协议(UDP) 面向连接(3次握手4次挥手,建立,断开连接) 无连接 可靠传输 不可靠传输 流控(检查数据是否丢失,丢失重新发送) 尽力而为,尽力传递 使用TCP应用:WEB浏览器;电子邮件;文件传输程序 使用UDP的应用:域名系统(DNS)视频流;IP语音(VoIP)
8. 常见网络协议
8.1 域名解析服务(DNS)
将域名转化为ip地址
8.2 DNS解析流程
1. 查询本地DNS缓存,windows hosts文件
2. 询问本地DNS(网卡配置的)
3. 本地DNS直接询问根域名解析服务
4. 根域名说我不知道,但是我知道不如CN对应的ip,你去问问CN服务器。
5. 询问cn服务器是否知晓对应的ip
6. CN服务器说我不知道,但是我知道(二级域名.cn)对应的 ip(DNS)
7. 询问(二级域名.cn)的DNS服务器,是否知晓域名的ip
8. (二级域名.cn)的DNS服务器说:我知道,然后告诉我域名的ip
8.3 DNS故障
通过域名访问,ping 域名,dig 解析域名报错
ping 公网可以访问,此时需要检测与配置下DNS(网卡配置文件中.)
8.4 地址解析协议(ARP)
ip地址转化为网卡物理地址(MAC)
8.5 ICMP协议
Internet控制报文协议,ping 使用的就是icmp协议。
9. 网卡配置 (ip,dns)
9.1 网卡命名规则
ens33
eth0
方法1:安装系统是修改
方法2:安装完成系统后
方法2步骤 :修改/boot/grub2/grub.cfg配置linux16行的结尾加上net.ifnames=0 biosdevname=0即可
[root@shell ~]# grep -n linux16 /boot/grub2/grub.cfg
100: linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet LANG=en_US.UTF-8
114: linux16 /vmlinuz-0-rescue-26342332aa1f4e2e9e2235f98a94ede4 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet
修改网卡配置文件
1. 修改网卡配置文件中NAME和DEVICE两个部分 vim修改
2. 网卡配置文件名字改为eth0 mv 修改
[root@shell ~]# grep -n eth0 /etc/sysconfig/network-scripts/ifcfg-eth0
12:NAME=eth0
14:DEVICE=eth0
方法01: 安装系统的时候修改
安装系统的时候选择第1个然后按tab键. 在最后写入 net.ifnames=0 biosdevname=0
9.2 网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0)
TYPE=Ethernet #基本固定,网络类型: 以太网
BOOTPROTO=none #网卡固定ip还是自动获取ip(DHCP 自动分配ip) ※※※※※※
#BOOTPROTO=dhcp #自动获取#BOOTPROTO=none或static#手动设置Ip
NAME=eth0 #网卡名字
DEVICE=eth0 #设备名字
UUID=8e987179-762e-466e-aa40-fe38ebb012d0 #统一设别符 #HWADDR=网卡的mac地址.
ONBOOT=yes #网卡是否自动运行(开机,重启网卡)
IPADDR=10.0.0.200 #ip地址
PREFIX=24 #子网掩码,设置这个局域网中最多有多少台机器 #NETMASK=255.255.255.0
GATEWAY=10.0.0.2 #网关, 类似于大楼的出入口. 网络环境中的流量出入口. 一般是3层路由.
DNS1=223.5.5.5 #主配置dns地址.
DNS2=223.6.6.6 #备DNS
10. 网络管理命令
yum install -y net-tools lsof nethogs iftop telnet nc nmap
10.1 检查端口
端口是否开启
##方法01 推荐
ss -lntup
##方法02
netstat -lntup
lsof -i
10.2 配合grep找出指定端口
查看22 端口是否开启
10.3 检查是否可以访问22端口
##方法1
telnet 10.0.0.200 22 #命令行中推荐使用,检查是否有connected 标记。
##方法2
nc -v 10.0.0.200 22 #这个一般用于shell脚本中检查端口是否开启。
##方法3 nmap网络扫描工具
nmap -p22 10.0.0.200
统计estab状态的连接数量(一般是80/443)端口
ss -ant |awk 'NR>1 $4~/:80$/ {print $1}'|sort|uniq -c
10.4 网络速度
iftop -nNP -i eth0 #显示端口号,不要把ip解析为域名,不要把 端口解析为服务, 监视指定网卡eth0
10.5 追踪命令
traceroute (linux ) 路径追踪
traceroute -nI www.baidu.com #默认使用udp协议,-I使用 icmp协议
11. 抓包
11.1 wireshark过滤器规则
11.2 tcpdump 过滤
yum install -y tcpdump
##过滤协议
tcpdump icmp
tcpdump -vvv -nnn icmp
##过滤指定端口号 80端口
tcpdump -nnn port 80
tcpdump -nnn src port 80
tcpdump -nnn dst port 80
##抓住指定主机
tcpdump -nnn host 10.0.0.200