1、网络基础linux
1)ISO/OSI七层模型简介算法
ISO:国际标准化组织shell
OSI:开放系统互联模型浏览器
IOS:苹果操做系统(在计算机网络中,IOS是互联网操做系统,是思科公司为其网络设备开发的操做维护系统)缓存
1:比特(物理层)安全
2:帧(数据链路层)里面保存最主要的信息--硬件地址服务器
在cmd中输入 ipconfig /all 意思是全部。物理地址;就是计算机MAC地址,也就是计算机网卡地址。每一台电脑都有一个网卡地址,MAC地址负责局域网通讯,IP地址负责外网通讯。网络
3:报文(网络层):IP地址是在网络层也就是报文层,并发
4:TPDU(传输层)是传输协议数据单元,dom
5:SPDU(会话层)是会话协议数据单元,
6:PPDU(表示层)是表示层协议数据单元,
7:APDU(应用层)是应用协议数据单元。
一、 物理层:设备之间的比特流(计算机语言0101)的传输、物理接口(网线RJ45接口、音频圆孔接口、视频9针RS232串口)、电气特性等。常见设备:网线、网卡。
电气特性:网线总共8跟线。超五类接口中只有一、三、二、6四根线用来传输数据。
二、 数据链路层:成帧,用MAC地址访问媒介,错误检测与修正。
成帧:在数据包写入自身MAC地址,源和目的地的MAC地址。
三、 网络层:提供逻辑地址,选路。
逻辑地址:写入IP地址,源和目的地IP
选路:选择通过哪些路径传输数据
四、 传输层:可靠与不可靠的传输、传输前的错误检测、流控(流量控制)
肯定传输协议是否可靠
TCP:传输控制协议 可靠,传送的数据必定不丢
UDP:用户数据报协议 更快,可是可能会丢失数据
用来肯定端口号 (IP门牌号,端口号收件人)
网页端口:80;邮件端口:25(发送端口),110(接受端口);FTP端口:21
每种传输协议,都有65536个端口
五、 会话层:对应用会话的管理、同步
六、 表示层:数据的表示形式,特定功能的实现如:加密、压缩。
翻译:将汉字或英文字母翻译成计算机语言(0101)。英文经过ASCII码翻译,汉字经过GB2312翻译成计算机语言,图片经过jpg翻译计算机语言等
七、 应用层:用户接口
举个例子:用户A给用户B发送邮件,应用层扮演的角色就是打开浏览器,输入邮箱网址;登陆之后写文字内容,上传图片、音频,点发送数据就传递给表示层进行表示翻译成计算机语言(0101);数据传给会话层判断是否会进行网络传递,例如本身编写的PPT无需网络传递,放入硬盘保存,不传给传输层;判断是须要网络传递就会发给传输层,传输层接到数据以后,写入邮件端口号,肯定协议;到网络层以后,写入本身的IP地址,目标IP地址即收件人;到数据链路层以后,导入源MAC地址和目的地的MAC地址(负责局域网里传输);以上完成以后,接下来就到物理层。
2)TCP/IP四层模型
OSI七层模型至关于车的模型,TCP/IP四层模型至关于原型车,先有车的模型,才能生产原型车,而后进行批量生产。
OSI七层模型 |
TCP/IP四层模型 |
应用层 |
应用层 |
表示层 |
|
会话层 |
|
传输层 |
传输层 |
网络层 |
网际互联层 |
数据链路层 |
网络接口层 |
物理层 |
一、网络接口层
他负责监视数据在主机与网络之间的交换。事实上,TCP/IP本事并为定义该层的协议,而由参与互连的各网络使用本身的物理层和数据链路层协议,而后与TCP/IP的网络接入层进行链接。地址解析协议(ARP)(就是将IP翻译成网卡物理地址)工做在此层,即OSI参考模型的数据链路层.
二、国际互联层
主要解决主机到主机的通讯问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP:主要是ping命令在使用)
三、传输层
为应用层实体提供端到端的通讯功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。
注:TCP协议与UDP协议最大的区别是:TCP协议是可靠的、面向链接到的协议;UDP协议是不可靠的、面向无链接的协议。TCP协议就像打电话,在数据传输时可时刻告诉传输方某个数据传输错误,要求从新传输。UDP协议就像发短信,只要发出去就行了,无论对方是否受到或者看见。平时浏览网页用的就是TCP,而Q Q用的则是UDP协议 。TCP有一个三次握手会话
四、应用层
为用户提供各类服务,如:FTP、Telnet、DNS、SMTP等
数据封装过程
共同点:一、都采用了层次结构的概念
二、都可以提供面向链接和无链接两种通讯服务机制
不一样点:一、前者是四层结构,后者是七层模型
二、对可靠性要求不一样(前者要求高)
三、OSI模型是在协议开发前设计的,具备通用性。TCP/IP是先有协议集而后创建模型,不适用于非TCP/IP网络。
四、实际市场应用不一样(前者已是国际标准,后者是理论模型,并未成熟的产品)
3)IP地址
0 15 16 31
版本(4) |
头部长度(4) |
优先级和服务类型(8) |
总长度(16) |
|
标识(16) |
标志(3) |
片偏移(13) |
||
生存时间(8) |
协议(8) |
头部校验和(16) |
||
源IP地址(32) |
||||
目的IP地址(32) |
||||
选项(若是有) |
||||
数据 |
注:字段后面括号中的数字是指该字段在IP数据包头部信息中所占的位(bit)数。
IPv4包头的大小不固定(20字节+可选数据),形成接收端接收时都要检测包头大小,再进行处理,性能低。
IPv6改进了这点,采用了固定大小的包头。
00000000.00000000.00000000.00000000
11111111.11111111.11111111.11111111
换算成10进制,则
0.0.0.0~255.255.255.255(咱们把IP地址分为ABCDE五大类,D、E类不对
民用组织开放)
网络类别 |
最大网络数 |
IP地址范围 |
最大主机数 |
私有IP地址范围 |
A |
126 (2^7-2) |
1.0.0.0—126.255.255.255 |
2^24-2 |
10.0.0.0—10.255.255.255 |
B |
16384(2^14) |
128.0.0.0—191.255.255.255 |
2^16-2 |
172.16.0.0—172.31.255.255 |
C |
2097152(2^21) |
192.0.0.0—223.255.255.255 |
2^8-2 |
192.168.0.0—192.168.255.255 |
A类用第一个数来表示不一样的网段,也就是说1.0.0.0和2.0.0.0表明不一样的网络,不一样的网络若是要通讯须要用路由器(路由器是用来跨网络通讯的),同网络段里通讯使用交换机。后三位表明不一样的主机数,也就是2^24-2,减2是由于A类:1.0.0.0为网络自己(不能分配),1.255.255.255为广播地址(不能分配)。
B类用前两个数表示同一个网段,后二位表明不一样的主机数。
C类用前三个数表示同一个网段,后一位表明不一样的主机数。
4)子网掩码
子网掩码决定IP的网段个数和主机个数。子网掩码能够写成255.0.0.0、255.255.0.0和255.255.255.0这是标准的写法。子网掩码的特征是不能与IP地址分开使用,必须同时使用。
5)端口做用
IP至关于门牌号,端口号至关于收件人
TCP协议包头
UDP协议包头
0 15 16 31
源端口(16) |
目的端口(16) |
长度(16) |
校验和(16) |
数据 |
常见端口号
FTP(文件传输协议):端口号20(数据传递) 21(登陆传输命令)
SSH(安全shell协议):端口号 22
telnet(远程登陆协议):端口号 23(禁止开启,明文传递无需破解)
DNS(域名系统):端口号 53
http(超文本传输协议):端口号 80
SMTP(简单邮件传输协议):端口号 25(发送)
POP3(邮局协议3代):端口号 110(接收)
查看本机启用的端口
netstat -an
选项:
-a:查看全部链接和监听端口
-n:显示IP地址和端口号,而不显示域名和服务名
6)DNS做用
背景:在互联网中,经过IP地址来进行通讯,IP地址用数字表示记忆起来困难,对域名比较好记,因此采用DNS(域名系统)的缩写,或名称解析。
Hosts是作静态IP和域名对应,而且hosts文件的优先级是高于DNS解析的。早期Hosts文件是解析域名的,可是效能低,主机维护困难,而DNS服务具备层次性和分布式的特色。
做用:将域名解析为IP地址。首先客户机向DNS服务器发送域名查询请求,DNS服务器告知客户机Web服务器的IP地址,客户机与Web服务器通讯。
查询类型:从查询方式上,递归查询要么作出成功响应,要么做出查询失败的响应。通常客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本事不能解析,则会向另外的DNS服务器发出查询请求,获得结果后转交给客户机。迭代查询是服务器收到一次迭代查询回复一次结果,这个结果不必定是目标IP与域名的映射关系,也能够是其它DNS服务器的地址;从查询内容上,正向查询由域名查找IP地址,反向查询由IP地址查找域名。
7)网关做用
交换机(数据链路层)不认识IP,只认识mac 地址。局域网中交换数据。
路由器:不一样网络中进行数据交换
网关:硬件设备,具备路由功能的机器,能够是路由器,也能够是服务器。
做用:
1.非本网段的数据包交由网关处理
2.网关负责将内网IP转换为公网IP,公网IP转换为内网IP。
2、Linux网络配置
1) Linux配置IP地址
一、 ifconfig命令临时配置IP地址(临时的,重启无效)
# 若是在局域网中有可自动分配IP的服务器(DHCP 服务器), 则可设置自动获取IP. 若是没有DHCP服务器则须要手动设置IP.
# 临时配置, 重启计算机或服务, 即失效.
# 通常用于作实验和测试.
# 主要用于查看网络状态
lo : Local Loopback 本地网卡
# 任何计算机都有
eth : 实际网卡
encap : 网卡类型
HWaddr : MAC地址
Bcast : 广播地址
UP BROADCAST... : 网卡参数
RX : 当前接收数据包数量
TX : 当前发送数据包数量
Base address : 网卡在内存中实际地址
# 有时, 经过配置修改后未必生效, 会有IP冲突, 网卡损坏等缘由形成, 必须是在命令中可查看到的, 视为生效。
临时配置IP 和 子网掩码的命令:
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0
二、 setup工具永久配置IP地址(RedHat专用)
# 属于radhat系列专有命令
# 配置成功后需重启服务 : service network restart
2) Linux网络配置文件
一、 网卡信息文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #网卡设备名称,此处的名称与文件名中的后半部分名字要相同
BOOTPROTO=none#是否自动获取IP(none不指定、static静态、dhcp动态)
HWADDR=00:23:54:68:84:DA #MAC地址
NM_CONTROLLED=yes #是否能够由Network Manager图形管理工具托管
ONBOOT=yes #是否随网络服务启动(即开机时自动激活此网络接口),eth0生效
TYPE=Ethernet #类型,类型为以太网
UUID=674a7aa6-8829-431b-84c8-b2daf6cfa7bc #惟一识别码
IPADDR=192.168.0.37 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.0.1 #网关
DNS1=202.168.0.20 #DNS
IPV6INIT=no #IPv6是否启用
USERCTL=no #不容许非root用户控制此网卡
PEERDNS={yes|no} #是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址
#不会当即生效,但重启网络服务或主机都会生效
二、 主机名文件
[root@localhost ~]# vi /etc/sysconfig/network #永久修改,重启生效
NETWORKING=yes #网络服务是否工做,如改no,IP地址无论怎么设置都无论用,是本机启动网络功能的总开关
HOSTNAME=localhost.localdomain
[root@localhost ~]# hostname 主机名 #临时修改,重启失效
三、 DNS配置文件
[root@localhost ~]# vi /etc/resolv.conf
nameserver 202.168.0.20 #名称服务器(DNS)
search localhost #默认域名
#若是没有DNS服务器,又想用主机名访问另外一个主机,此时要用到指定本地解析
指定本地解析:
编辑/etc/hosts这个文件,例如:
主机IP 主机名 主机别名
本地DNS解析的时候,当用主机名访问某个主机时,先找本地的/etc/hosts文件,没有再找DNS缓存
DNS--->/etc/hosts--->DNS缓存
四、路由添加方法
在/etc/sysconfig/network-scripts/目录下建立一个route-ethx(后半部分名字与网卡名相同)文件
文件中的书写的格式有两种:
添加格式一:
DEST via NEXTHOP(下一跳)
例如:192.168.10.0/24 via 10.10.10.254
添加格式二:
#添加第一条
ADDRESS0=
NETMASK0=
GATEWAY0=
#添加第二条
ADDRESS1=
NETMASK1=
GATEWAY1=
五、比ifconfig功能更增强大的工具包iprouter2
格式:ip
link:网络接口属性
addr:协议地址
route:路由
例如:
[crm@localhost ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:65:f0:20 brd ff:ff:ff:ff:ff:ff
[crm@localhost ~]$
#一个网卡可使用多个地址,网络设备能够用别名设置
以下图,只有一个网卡eth0
设置一个别名:
格式:ifconfig ethx:x IP/NETMASK
[root@localhost ~]# ifconfig eth0:0 10.105.80.56/16,以下图:
#永久配置方法
在/etc/sysconfig/network-scripts/目录下建立一个ifcfg-ethx:x(后半部分名字与网卡名相同)文件
DEVICE=ethx:x
注:别名地址不能使用DHCP动态获取
3) 虚拟机网络参数配置
一、setup 修改IP地址
二、若是看不到eth0,启动网卡 配置文件改成ONBOOT=yes以后service network restart重启网络服务,若是仍是看不到多是Ip冲突
三、修改UUID
①vi /etc/sysconfig/network-scripts/ifcfg-eth0删除MAC地址行
②rm -rf /etc/udev/rules.d/70-persistent-net.rules删除网卡和MAC地址绑定文件
③重启系统
四、设置虚拟机网络链接方式
五、修改桥接网卡
3、Linux网络命令
1) 网络环境查看命令
Ifdown:网卡设备名 #禁用该网卡设备
Ifup:网卡设备名 #启动该网卡设备
选项:
-t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名与服务名,而使用IP地址和端口号
-l:仅列出在监听状态网络服务(等待访问的端口)
-a:列出全部的网络链接
例如:[root@localhost ~]#netstat -tuln 查看开了哪些端口,从而判断开了哪些服务,其中状态为LISTEN是监听,状态为ESTABLISHED表明链接已经存在,即已经和本机创建链接的主机。
例如:[root@localhost ~]#netstat -an | grep ESTABLISHED | wc -l
统计estabished状态的链接的行数(l是统计行数的)看有谁链接到咱们的服务器上
注:远程管理链接后,必定要注意正确关闭远程连接,而不能直接把ssh关了,用logout关闭便可
netstat -rn (-r:列出路由列表,功能和route命令一致,可查看网关)
route -n #查看路由列表(能够看到网关)
route add default gw 192.168.1.1(通常不用)#临时设定网关
ss -nt | sed -rn '/^ESTAB/s#.*[[:space:]]+([0-9.]+):[0-9]+.*#\1#p' | sort |uniq -c |sort -nr | head -5(当前主机链接数最多的排名前5的IP)
注意:
①在一台服务器里,连内网的网卡是不能设置网关的,只有链接外网的网卡才能设置,并且这个网关是由运营商(网通、电信等)设置好,它会告诉我,个人下一级网关在哪。
②随便设置一个网关是不行的,由于与外网通讯时,要把消息转发到网关,网关负责把内网IP转换成公网IP,随便设置则将找不到这个网关,致使呈现网络链接失败状态。
nslookup [主机名或IP]
#进行域名与IP地址解析
[root@localhost ~]# nslookup
>server
#查看本机DNS服务器
2) 网络测试命令
一、 ping命令
ping [选项] ip或域名 #探测指定IP或域名的网络情况
运用ICMP(Internet控制报文协议)协议进行探测
选项:
-c次数:指定ping包的次数
二、 telnet命令
telnet [域名或IP] [端口] #远程管理与端口探测命令(明文传递、未加密)
由于远程管理不安全,因此不少计算机系统已经禁止使用telnet命令来进行远程管理,如今已经被linux中ssh安全带壳协议所取代,可是咱们可使用下面的工具来查看咱们要访问的服务器的某个端口是否是开放的
#telnet 192.168.0.252 80
若是链接成功,将会进入链接状态,按ctrl+]退出到telnet,在输入quit返回命令行状态。
三、 traceroute命令
taceroute [选项] IP或域名 #路由跟踪命令
选项:
-n 使用IP,不使用域名,速度更快
预先记录路由路径,等没法访问时可使用这个命令判断究竟是哪个节点出故障,这个traceroute利用的ICMP协议,和ping是同样的。
四、 wget命令
wget url地址(网址) #下载命令
五、 tcpdump命令(抓包命令)
tcpdump -i eth0 -nnx port 21
选项:
-i 指定网卡接口
-nn 将数据包中的域名与服务转为IP和端口
-X 以十六进制和ASCII码显示数据包内容
port 指定监听的端口
4、远程登陆工具
1)SSH协议原理
一、对称加密算法
采用单钥密码系统的加密方法,同一个密钥能够同时用做信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密
二、非对称加密算法
非对称加密算法又名“公开密钥加密算法”,非对称加密算法须要两个密钥:公开密钥和私有密钥
实现原理:
①首先屌丝和高富帅须要先生成公钥和私钥(分别为公钥A、私钥A和公钥B、私钥B)。
②屌丝要进行加密,对方高富帅须要将其公钥B先给屌丝用于加密。
③进行非对称加密要两把锁(公钥A和公钥B),对应着解密须要私钥A和私钥B。
④加密后的文件,屌丝须要用私钥A打开,而高富帅须要私钥B才能打开。
三、SSH安全外壳协议
# 在非对称加密算法之上演变而来
# 密码足够复杂强壮可下降暴力破解的成功性
# SSH 保护数据传递过程当中的安全, 但若在传递以前中病毒则不可避免
# 通用的远程管理协议
3-1) 过程原理, A 须要发送数据包给 B
3-1-1) A 持有 公钥A 和 私钥A
3-1-2) B 持有 公钥B 和 私钥B
3-1-3) A 向 B 寻要公钥B, 再结合自身的公钥A 对数据包进行加密, 并发送给B
3-1-4) B 收到数据包以后, 可根据自身 私钥B 对数据包进行解密
四、SSH命令
#远程管理指定linux服务器(用户名可省略,省略即用当前用户登陆)
4-1-1) 通过远程以后,公钥下载在家目录中的.ssh文件夹know_hosts文件中保存着 链接成功的目标信息
# 地址 加密算法 公钥
4-1-2) 若目计算机进行了重装系统, 或地址被另外一台机器占用, 此时已下载的公钥没法使用,使用vi 对该行进行删除, 当再次链接时会再次提示是否进行下载公钥。
#下载文件(网络复制命令, 下载文件无需加-r,下载目录须要加-r)
#上传文件
# 网络复制命令, 上传文件无需加-r,上传文件夹(目录)就须要加-r。
# 此为linux 与 linux之间进行文件传输的最简单方式。
2)SecureCRT远程管理工具
SecureCRT链接Linux乱码的解决方法:
Session Option-Emulation-Font-选择中文字体-字符集(只有选择了中文字体才有中文字符集选项)
另外:Windows不支持SSH协议,SecureCRT是用于Windows下可支持SSH协议链接Linux的应用软件。
3)Xshell工具和WinSCP文件传输工具
Xshell是一个远程管理服务器的软件,主要是在Windows上操做远程的linux服务器;
winSCP是一个远程传输文件的软件,传输软件的工具。