网络协议概述
OSI七层模型和TCP/IP四层模型
IP地址分类
了解常见的网络相关协议
TCP三次握手和四次挥手
网络相关的调试命令
实战tcpdump和tshark抓包
OSI七层模型
应用层
表示层
会话层
传输层 防火墙
网络层 三层交换机和路由器
数据链路 二层交换机和网卡
物理层 集线器
TCP/IP 四层模型
应用层 http协议 ftp协议
传输层 tcp udp 数据包网络
网络层 路由器
网络接口层
IP地址分类
简单的说,IP地址分5类,常见的地址是A、B、C类
A类地址:范围从0-127,0是保留并且表示所有IP地址(0.0.0.0),而127也是保留的地址,并且是用于测试环回口用的。因此A类地址的可用的范围其实是从1-126之间
B类地址:范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段为本址计算机的号码.以子网掩码来进行区别:255.255.0.0
C类地址:范围从192-223,以子网掩码来进行区别:255.255.255.0
D类地址:范围从224-239,被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
私有IP
A: 10.0.0.0 ~ 10.255.255.255
B: 172.16.0.0 ~ 172.31.255.255
C: 192.168.0.0 ~ 192.168.255.255
环回口一直是可用up状态
TCP/IP协议
TCP/IP协议是一个协议簇。里面包括很多协议
例如
超文本传输协议(Http):万维网的基本协议
文件传输(TFTP简单文件传输协议)
远程登录(Telnet)
网络管理(SNMP简单网络管理协议)
TCP (ransmission Control Protocol)传输控制协议,是面向连接的协议
UDP(User Data Protocol)用户数据报协议,非连接的协议
IP(Internet Protocol)
Internet控制信息协议(ICMP)
ARP(地址解析协议)
RARP(反向地址解析协议)
TCP和UDP区别
1.基于连接与无连接
2.对系统资源的要求(TCP较多,UDP少)
3.UDP程序结构较简单
4.流模式与数据报模式
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
TCP三次握手
作用:建立连接
==client====================server=======
TCP连接状态 建立过程 TCP连接状态
===================== LISTEN
SYN_SENT------syn seq=a--------->SYN_RCVD
ESTABLISHED<---syn seq=b-------ack=a+1
--------------ack=b+1------------->ESTABLISHED(连接成功)
TCP四次挥手
四次挥手状态
作用:关闭连接
----clent---------------------------------server------------------
FIN_WAIT------fin seq=a------------> CLOSE_WAIT----
FIN_WAIT2 <---------ack a+1----------
TIME_WAIT <---------fin b---------------- LAST_ACK
------ack b+1---------------> CLOSE
网络接口类型表示方法
以太网(ethernet) ethN
回环口 lo
光纤网 fddiN
桥设备 br0
Linux ADSL宽带接口:ppp pppN
tun0 tun1
网络相关的调试命令
查看网卡硬件相关信息
1.查看网卡物理连接是否正常
[root@localhost ~]# mii-tool ens33
[root@localhost ~]# ethtool ens33
2.配置网络和ip地址
/etc/sysconfig/network-scripts/ifcfg-ens33这个文件配置的DNS会覆盖 /etc/resolv.conf里的DNS
关闭NetworkManager.service这个服务后,/etc/resolv.conf里配置的DNS才不会被覆盖。
[root@localhost ~]# systemctl disable NetworkManager.service #让NetworkManager.service这个服务开机不启动
[root@localhost ~]# systemctl stop NetworkManager.service#停止NetworkManager这个服务
如果停止了网络管理器,这个命令nmtui(交互式配置ip)不会生效
[root@localhost ~]# ifconfig ens33#sjg查看某一个网卡信息
[root@localhost ~]# ifconfig -a#查看所有网卡信息
[root@localhost ~]# ifdown ens33#关闭网卡
[root@localhost ~]# ifup ens33#激活网卡
给一个网卡临时配置多个虚拟ip
ifconfig ens33:1 192.168.1.80 netmask 255.255.255.0
清除虚拟ip
ifconfig ens33:1 down
修改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none|dhcp|static
IPADDR=192.168.1.64#ip地址
GATEWAY=192.168.1.1 #网关
DNS1=114.114.114.11 #指定dns
NAME=ens33 #网卡名
ONBOOT=yes #开机启动网卡
DEVICE=ens33 #物理设备的名字
TYPE=Ethernet #类型为以太网
添加一块网卡(系统并没有默认生成网卡的配置文件),这时需要用nmtui这个命令来交互式添加一块网卡或复制一块网卡的配置文件并改动即可,然后重启network服务
修改主机名
作用:设置主机名永久生效
其他相关配置文件
#vim /etc/sysconfig/network---> /etc/hostname
NETWORKING=yes #开机时激活网络,开启network服务
注:如果NETWORKING=no,即使network设置为开机启动,那也启不来。
HOSTNAME=localhost.localdomain
hostnamectl set-hostname apenglinux.cn(修改主机名)
配置ip与主机名(域名)的对应
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
本机域名解析顺序由这个下面这个文件决定
[root@apenglinux ~]# vim /etc/nsswitch.conf #查以下内容
#hosts: db files nisplus nis dns
hosts: files dns myhostname
端口号和服务对应的配置文件
#vim /etc/services #此文件可以查看常用端口对应的服务名称
查看路由表
[root@apenglinux ~]# netstat -rn或route -n
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.25.2 0.0.0.0 UG 0 0 0 ens37
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.25.2 0.0.0.0 255.255.255.255 UH 0 0 0 ens37
192.168.25.100 0.0.0.0 255.255.255.255 UH 0 0 0 ens37
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
添加、删除路由条目
root@apenglinux ~]# route add -net 192.168.3.0/24 dev ens37
[root@apenglinux ~]# route del -net 192.168.3.0/24
查看网络连接状态
[root@apenglinux ~]# netstat -antup
-a, --all
-n, --numeric don't resolv names
-p, --programs
-t #显示tcp连接
-u #显示udp连接
ping命令的一般格式为
-c 数目 #在发送指定数目的包后停止
-i 秒数 # 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次
-I 指定从哪个端口出去
查看网卡流量
[root@apenglinux mnt]# rpm -ivh Packages/iptraf-ng-1.1.4-6.el7.x86_64.rpm
[root@localhost ~]# iptraf-ng
arping命令测试IP地址冲突
返回1说明这个地址已经被使用
返回0说明这个地址没有被使用
-D #复制地址检测模式
-f #得到一个回复就退出
-I #使用指定的以太网设备
-c #发送的数据包的数目
tcpdump命令(抓包)
tcpdump port 22 -c 3 -n -S
port #端口号
-c #抓几个包
-n #不解析端口号为协议号
-S #打印TCP sequence numbers
如在主机A上开启SSHD服务,此时不要有任何客户端主机来连接主机A的SSHD服务。这样是为了抓包更清楚
主机B执行
yum install telnet -y #安装telnet
telnet 192.168.1.64 22 #连接主机A的22端口
主机A上执行
[root@apenglinux mnt]# tcpdump -n -c 3 -S port 22 -i ens33
tshark命令(抓包)
[root@apenglinux mnt]# yum install wireshark -y
tshark -w filename -i ens33
-w #将抓包的数据写入一个文件filename中
-i #指定要抓包的接口名称
tshark -r filename
-r #指定要读取的包文件
-V #将包尽可能的解析