Linux网络管理的笔记

文章目录

  • 前言
    • 一.网络基础
      • 1.概述
      • 2.iso/osi七层模型简介
      • 3.iso/osi七层模型详解
      • 4.TCP/IP四层模型
      • 5.IP地址详解
      • 6.子网掩码
      • 7.端口号
      • 8.DNS
      • 9.网关
    • 二.网络配置
      • 1. linux配置IP地址
      • 2. linux使用配置文件配置IP地址
      • 3. linux虚拟机配置IP地址
    • 三.Linux网络命令
      • 1. 网络环境查看命令
      • 2.网络测试命令
    • 四.远程登录工具
      • 1.SSH协议原理
      • 2.远程登录工具secureCRT
      • 3.XShell和WinSCP工具

前言

参考视频:Linux网络管理
参考网站:菜鸟教程
Linux基础(一)的笔记的地址:Linux基础(一)的笔记

一.网络基础

1.概述

  • 网络基础
  • Linux网络配置
  • Linux网络命令
  • 远程登录

网络基础是必备知识

2.iso/osi七层模型简介

(1)iso和osi的含义
Linux网络管理的笔记_第1张图片
(2)OSI七层模型
Linux网络管理的笔记_第2张图片

1.上三层是对用户提供服务的,下四层是数据传递用的;
2.APDU(Application Protoco Data Unit):应用协议数据单元、PPDU(Presentation Protocol Data Unit ):表示协议数据单元、SPDU(Session Protocol Data Unit):会话协议数据单元;TPDU(Transport Protocol Data Unit):传输协议数据单元
3.接收是从下往上走,发送是从上往下走;
4.为什么要分层?方便管理,灵活性好,易于实现和维护等等;
5.MAC地址负责局域网通信,IP地址负责外网通信;

3.iso/osi七层模型详解

(1)各层的作用图

层次 作用
应用层 用户接口
表示层 数据的表现形式、特定功能的实现,如加密
会话层 对应用会话的管理、同步
传输层 可靠与不可靠的传输、传输前的差错校验、流控
网络层 提供逻辑地址、选路
数据链路层 封装成帧、用MAC地址访问媒介、错误检测与修正
物理层 设备之间的比特流的透明传输、物理接口、电气特性等

4.TCP/IP四层模型

(1)TCP/IP四层模型图
Linux网络管理的笔记_第3张图片
(2)TCP/IP模型与OSI模型的对应图
Linux网络管理的笔记_第4张图片
(3)网络接口层

  • 网络接入层与OSI模型中的物理层数据链路层相对应。 它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接口层进行连接。地址解析协议(ARP) 工作在此层,即OSI参考模型的数据链路层。

(4)网际互联层

  • 网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)互联网组管理协议(IGMP)互联网控制报文协议(ICMP)

(5)传输层

  • 传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)用户数据报协议(UDP)

(6)TCP/IP三次握手
Linux网络管理的笔记_第5张图片
(7)应用层

  • 应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等

(8)数据封装过程
Linux网络管理的笔记_第6张图片
(9)OSI模型与TCP/IP模型的比较

  • 共同点:
    • OSI参考模型和TCP/IP参考模型都采用了分层结构的概念
    • 都能够提供面向连接和无连接两种通信服务机制
  • 不同点
    • 前者是七层模型,后者是四层模型
    • 对可靠性要求不同(后者更高)
    • OSI模型是在协议开发前设计的,具有通用性;TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络
    • 实际市场应用不同(OSI模型只是理论上的模型,并没有成熟的产品,而TCP/IP已经成为“实际上的国际标准”)

5.IP地址详解

(1)IP包头
Linux网络管理的笔记_第7张图片
.(2)IP地址

#二进制表示
00000000.00000000.00000000.00000000
11111111.11111111.11111111.11111111

#十进制表示
0.0.0.0
255.255.255.255

(3)IP地址分类
Linux网络管理的笔记_第8张图片

1.主机号全1的为当前网络的广播地址(例如“1.255.255.255”),主机号全0的为当前网络的网络本身(例如“1.0.0.0”),这两个都不能分配;
2.A类地址减2的原因:IP地址中全0表示“这个(this)”,网络号字段为全0的IP地址是个保留地址,意思是“本网络”;网络号为127保留作为本地软件回环测试本主机的进程之间的通信只用。
3.“127.0.0.1”是本地回环地址
4.私有IP地址不可以直接访问公网IP地址,需要把私有IP地址转换为公网中的IP地址,这就需要用到地址转换技术,也就说常说的NAT;
5.C类的第一个最大是223,因为还有D类地址、E类地址

6.子网掩码

(1)各分类的默认子网掩码

地址分类 子网掩码
A类地址 255.0.0.0
B类地址 255.255.0.0
C类地址 255.255.255.0

(2)变长子网掩码以及子网规划
Linux网络管理的笔记_第9张图片

1.IP地址跟子网掩码相与就可以得到网络地址,广播地址就是主机位全1的地址
2.可以修改子网掩码来划分网络
3.根据网络地址对应的网络号的位都置1,主机号都置0就可以算出子网掩码

7.端口号

(1)端口号的介绍及作用

  • 传输层使用16位端口号来标志一个端口,最多有65535个端口。端口号只具有本地意义,它是为了标记本计算机应用层的各个进程在和传输层交互时的层间接口。在因特网的不同计算机中,相同的端口号是没有关联的。
  • 端口号可以想象成发送人/收件人

(2)TCP协议包头
Linux网络管理的笔记_第10张图片
(3)UDP协议包头
Linux网络管理的笔记_第11张图片
(4)常见端口号

应用层协议 端口号
FTP (文件传输协议) 20、21
SSH (安全shell协议) 22
telnet(远程登录协议) 23
DNS(域名系统) 53
http(超文本传输协议) 80
SMTP(简单邮件传输协议) 25
POP3(邮局协议3代) 110

现在默认禁止23端口,因为它是明文传输,不安全
注意不要与这些常见端口冲突

(5)查看本机启动的端口

netstat -an

选项:
	-a :查看所有连接和监听端口
	-n :显示IP地址和端口号,而不显示域名和服务名
[root@Test ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0     36 192.168.8.197:22        192.168.8.207:52839     ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
tcp6       0      0 :::443                  :::*                    LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:728             0.0.0.0:*                          
udp6       0      0 :::111                  :::*                               
udp6       0      0 ::1:323                 :::*                               
udp6       0      0 :::728                  :::*                               
raw6       0      0 :::58                   :::*                    7          

UPD的状态为什么为空,因为它是不可靠的

TCP的状态

  • CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。

  • LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。

  • SYN_RCVD :表示服务器接收到了来自客户端请求连接的SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序,将三次TCP握手过程中最后一个ACK报文不予发送。当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED 状态。

  • SYN_SENT :这个状态与SYN_RCVD 状态相呼应,当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT 状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT 状态表示客户端已发送SYN报文。

  • ESTABLISHED :表示TCP连接已经成功建立。

  • FIN_WAIT_1 :这个状态得好好解释一下,其实FIN_WAIT_1 和FIN_WAIT_2 两种状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1 状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2 状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2 状态有时仍可以用netstat看到。

  • FIN_WAIT_2 :上面已经解释了这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()主动要求关闭连接。注意:FIN_WAIT_2 是没有超时的(不像TIME_WAIT 状态),这种状态下如果对方不关闭(不配合完成4次挥手过程),那这个 FIN_WAIT_2 状态将一直保持到系统重启,越来越多的FIN_WAIT_2 状态会导致内核crash。

  • TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。 TIME_WAIT状态下的TCP连接会等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值),然后即可回到CLOSED 可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。(这种情况应该就是四次挥手变成三次挥手的那种情况)

  • CLOSING :这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况,这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。

  • CLOSE_WAIT :表示正在等待关闭。怎么理解呢?当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方,此时TCP连接则进入到CLOSE_WAIT状态。接下来呢,你需要检查自己是否还有数据要发送给对方,如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。有数据的话则看程序的策略,继续发送或丢弃。简单地说,当你处于CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。

  • LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时候,就处于LAST_ACK 状态。当收到对方的ACK报文后,也就可以进入到CLOSED 可用状态了。

8.DNS

(1)DNS简介

  • 用来把便于人类使用的机器名字转换为IP地址。
  • 是域名系统的缩写

(2)从Hosts文件到DNS

  • 早期Hosts文件解析域名
    • 名称解析效能下降
    • 主机维护困难
  • DNS服务
    • 层次性
    • 分布式

(3)DNS服务的作用

  • 将域名解析为IP地址
    • 客户端向DNS服务器发送域名查询请求
    • DNS服务器告知客户端Web服务器的IP地址
    • 客户端与Web服务器通信

(4)域名空间结构
Linux网络管理的笔记_第12张图片
Linux网络管理的笔记_第13张图片
Linux网络管理的笔记_第14张图片
(5)DNS查询过程
Linux网络管理的笔记_第15张图片
(6)DNS查询类型

  • 从查询方式上分
    • 递归查询
      • 要么做出查询成功响应,要么做出查询失败的响应,一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机
    • 迭代查询
      • 服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其它DNS服务器的地址
  • 从查询内容上分
    • 正向查询由域名查找IP地址
    • 反向查询由IP地址查找域名

9.网关

(1)网关的简介

  • 网关(Gateway)又称网间连接器、协议转换器
  • 网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连
  • 网关既可以用于广域网互连,也可以用于局域网互连
  • 网关是一种充当转换重任的服务器或路由器

(2)网关的作用

  • 网关在所有内网计算机访问不是本网段的数据报时使用
  • 网关负责将内网IP转换为公网IP,公网IP转换为内网IP

二.网络配置

1. linux配置IP地址

(1)ifconfig命令

#查看与配置网络状态命令
ifconfig

#临时配置eth0网卡的IP地址和子网掩码
ifconfig eth0 192.168.8.197 netmask 255.255.255.0


(2)使用setup工具配置IP
Linux网络管理的笔记_第16张图片

这是红帽专有图形化工具
如果没有这个命令,可以执行“”yum install setuptool“”安装setup
注:这是永久修改配置

2. linux使用配置文件配置IP地址

(1)网卡信息文件
Linux网络管理的笔记_第17张图片

1.直接在文件修改对应的值
2.注意:文件名必须跟设备名一致
3.重启网络服务才生效

(2)修改主机名
主机名文件

#centos7
[root@Test etc]# vim /etc/hostname 
Test.localdomain

#centos
[root@Test etc]# vim /etc/sysconfig/network

查看和临时修改主机名

#查看主机名
[root@Test etc]# hostname
Test.localdomain

#设置主机名
[root@Test etc]# hostname hahaha
[root@Test etc]# hostname
hahaha

linux的主机名跟windows的主机名那么重要
重新登录才会显示刚才的主机名

(3)DNS配置文件
修改DNS

[root@hahaha ~]# vim /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 114.114.114.114

(4)UUID重复的解决方法

#第一步:生成UUID
[root@localhost ~]# uuidgen 网卡名称

#第二步:把刚才生成的UUID号写入网络配置文件ifcfg-网卡名称

#第三步:重启网络

3. linux虚拟机配置IP地址

Virtualbox的centos7 nat和桥接网络配置

三.Linux网络命令

1. 网络环境查看命令

(1)ifconfig命令

ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。

(2)关闭和重启网卡

#禁用该网卡设备
ifdown 网卡设备名

#启用该网卡设备
ifup 网卡设备名

(3)查询网络状态:netstat命令

netstat [选项]

选项:
	-t : 列出TCP协议端口
	-u : 列出UPD协议端口
	-l : 仅列出在监听状态网络服务
	-n :不使用域名与服务名,而使用IP地址和端口号
	-a :列出所有的网络连接
	-r : 列出路由表,功能和route命令一致
[root@Test ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG        0 0          0 enp0s3
192.168.8.0     0.0.0.0         255.255.255.0   U         0 0          0 enp0s3


(4)路由命令:route命令

#查看路由列表(可以看到网关)
[root@Test ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG    100    0        0 enp0s3
192.168.8.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s3

#临时设定网关
[root@Test ~]# route add default gw 192.168.8.1


设置网关的原则
Linux网络管理的笔记_第18张图片
(5)域名解析命令:nslookup命令

nslookup [主机名或IP]
#进行域名与IP地址解析
[root@Test ~]# nslookup www.baidu.com
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 61.135.169.121
Name:	www.a.shifen.com
Address: 61.135.169.125


#查看本机DNS服务器
[root@Test ~]# nslookup
> server
Default server: 114.114.114.114
Address: 114.114.114.114#53


如果没有这个命令,执行“yum install bind-utils”进行安装

2.网络测试命令

(1)探测网络的命令:ping命令

#探测指定IP或域名的网络情况
ping [选项] IP或域名

选项:
	-c : 设置完成要求回应的次数
	-i : 指定收发信息的间隔时间
	-R : 记录路由过程
	-s : 设置数据包的大小
	-t : 设置存活数值TTL的大小
[root@Test ~]# ping -c 4  www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=57 time=4.81 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=57 time=3.24 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=57 time=4.13 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=4 ttl=57 time=8.21 ms

--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 3.248/5.104/8.215/1.880 ms

(2)远程登录命令:telnet命令

#远程管理与端口探测命令
telnet [域名或IP] [端口]

注意:这是不加密的,有很大安全隐患

(3)路由跟踪命令:traceroute命令


traceroute [选项] IP或域名

选项:
	-n :使用IP,不使用域名,速度更快
[root@Test ~]# traceroute  www.baidu.com 
traceroute to www.baidu.com (61.135.169.121), 30 hops max, 60 byte packets
 1  gateway (192.168.8.1)  1.584 ms  1.881 ms  2.054 ms
 2  192.168.1.1 (192.168.1.1)  2.307 ms  2.727 ms  2.381 ms
 3  61.49.240.1 (61.49.240.1)  26.476 ms  26.599 ms  26.836 ms
 4  125.33.184.89 (125.33.184.89)  27.385 ms  27.614 ms  27.792 ms
 5  61.148.143.114 (61.148.143.114)  27.971 ms 123.126.0.50 (123.126.0.50)  26.910 ms 61.148.156.18 (61.148.156.18)  54.556 ms
 6  61.49.168.106 (61.49.168.106)  28.872 ms 123.125.248.106 (123.125.248.106)  5.936 ms 61.49.168.90 (61.49.168.90)  7.044 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

其实也是ICMP报文,ping不通一般是做了防ping

(4)下载命令:wget命令

wget [选项] url

(5)抓包命令:tcpdump命令


tcpdump -i eth0 -nnX port 21

选项:
	-i : 指定网卡接口
	-nn :将数据包中的域名与服务转为IP和端口
	-X :以16进制和ASCII码显示数据包内容
	port : 指定监听的端口

四.远程登录工具

1.SSH协议原理

(1)对称加密算法

非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(public key)私有密钥(private key)

非对称加密算法图

Linux网络管理的笔记_第19张图片

SSH安全外壳协议
Linux网络管理的笔记_第20张图片

放在~/.ssh目录下的known_hosts文件里;里面有了就不会需要再下载

(2)ssh命令

#远程管理指定Linux服务器
ssh 用户名@ip

(3)scp命令

#下载文件
scp [-r] 用户名@ip:文件路径 本地路径

#上传文件
scp [-r] 本地文件 用户名@ip:文件路径

2.远程登录工具secureCRT

3.XShell和WinSCP工具

你可能感兴趣的:(Linux,linux,网络,网络协议)