Linux网络

Linux】第一章 ISO/OSI七层模型简介

 

1、ISO/OSI 七层模型
1-1) ISO : 由ISO(国际标准化组织) 组织开发的
1-2) OSI : 开放系统互联模型
1-3) 该模型为基础模型, 而实际中常用的TCP/IP模型是由七层模型演变的
1-4) 最上层(应用层)最接近用户, 最下层(物理层)最接近实际数据传递
1-5) 上三层(应用层、表示层、会话层), 是对用户提供服务, 下四层(传输层、网络层、数据链路层、物理层)对实际数据传递提供服务
1-6) 数据链路层的帧, 包含了 计算机的硬件地址(MAC 地址 : 用来进行局域网通信)
1-7) 网络层的报文, 包含了 IP地址(用来负责外网通信)
1-8) 传输层的单位为TPDU(传输协议数据单元)
1-9) 会话层的单位SPDU(会话协议数据单元)
1-10) 表示层的单位PPDU(表示层协议数据单元)
1-11) 应用层的单位APDU(应用协议数据单元)
1-12) 数据发送是由上层向下层进行传递
1-13) 数据接收是由下层向上层进行传递

Linux】第一章 ISO/OSI七层模型详解

1、物理层
1-1) 比特流的传输 : 最基本的数据传递
1-2) 物理接口 : 网线口、视频口、音频口
1-3) 电气特性 : 网线8根线中的1、3、2、6四根线传输数据
1-4) 最常见的设备 : 网线、网卡

2、数据链路层
2-1) 负责组成帧(组入MAC信息)
2-2) 用MAC地址访问媒介(发送人与接收人)
2-3) 错误检测与修正(检测与修正数据包)

3、网络层
3-1) 负责提供逻辑地址(IP地址, 需要写入发件人IP与收件人IP)
3-2) 选择通路(经过的路径)

4、传输层
4-1) 负责确定传输协议(TCP传输控制协议可靠不会丢、UDP用户数据报协议更快但可能会丢)可靠与不可靠的传输
4-2) 传输前的错误检测
4-3) 流量控制
4-4) 确立端口号, 便于通过IP确定主机后, 通过端口确定交互的服务, IP地址为门牌号, 端口号即为收件人
# 默认下网页服务端口号为80, 邮件服务端口号为25和110, 文件传输端口号为21

5、会话层
5-1) 对应用会话的管理和同步, 确定网络数据是否要进过远程回话

6、表示层
6-1) 数据的表现形式, 不同数据类型扩展名进行解码编码
6-2) 特定功能的实现, 如加密、压缩

7、应用层
7-1) 为用户提供服务的接口

8、举例场景 用户A需要给用户B发送一份邮件
8-1) 应用层 : 浏览器进入邮箱, 写邮件, 点击发送, 数据将传递至 表示层
8-2) 表示层 : 进行的数据的编码, 而后数据传递至会话层
8-3) 会话层 : 判断数据的发送类型, 是进行网络传输还是进行本地保存, 若是进行传输 传递至传输层
8-4) 传输层 : 确立协议TCP或UDP, 写入邮件的发送及目标端口号, 传递至网络层
8-5) 网络层 : 写入自身及目标IP地址, 传递至数据链路层
8-6) 数据链路层 : 写入源MAC地址与目标MAC地址, IP地址找到局域网, 再通过MAC地址在局域网中找到目标, 传递至物理层(MAC地址有48位,这里指的是二进制位数。但表示是采用16进制表示的,每4个二进制位变成十六进制的一个数,因此写出来(十六进制)是12位。
8-7) 物理层 : 数据传输

Linux】第一章 TCP/IP协议四层模型

1、TCP/IP 四层模型与 OSI 七层模型对应关系
1-1) 应用层 : 应用层、表示层、会话层
# 为用户提供所需的各种服务, 例如 FTP、Telnet、DNS、SMTP等
1-2) 传输层 : 传输层
# 负责为应用层实体提供端到端的通信功能, 保证了数据包的顺序传送及数据的完整性, 该层定义了两个主要的协议 : 传输控制协议(TCP)可靠的面向连接,不会丢失,类似打电话,网页、邮件 和 用户数据报协议(UDP)不可靠的面向无连接,有可能丢失, 类似发短信、QQ
# TCP的三次握手来源于 [两军问题]
1-3) 网际互联层 : 网络层
# 主要解决主机到主机的通信问题, 它所包含的协议涉及数据包在整个网络上的逻辑传输, 该层有三个主要协议 : 网际协议(IP), 互联网组管理协议(IGMP), 互联网控制报文协议(ICMP)
1-4) 网络接口层 : 数据链路层、物理层
# 负责监视数据在主机和网络之间的交换, 事实上, TCP/IP本身并未定义该层的协议, 而由参与互连的各网络使用自己的物理层和数据链路层协议, 然后与TCP/IP的网络接入层进行连接. 地址解析协议(ARP) 工作在此层, 即OSI参考模型的数据链路层.
# 地址解析协议(ARP) : 将IP地址 翻译成物理地址

2、数据封装过程(如图)
# 发送是由上至下进行打包, 接收是由下至上进行拆包

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

 

Linux】第一章 IP地址详解(一)

1、IP包头(如图)
1-1) 横32位, 竖5行, 固定的共160位, 20字节, 另外有其他选项存在, 导致包头不固定, 因此每接收到包头, 需要进行检测包头长度才能够取出包头, 也是为何IPv4没有IPv6快的原因
1-2) 包头中包含的IP地址只有32位, 即2的32次幂, 42亿9千万左右的IP

 

Linux】第一章 IP地址详解(二)

2、IP地址分类
2-1) IP分为A、B、C、D、E 五大类, 其中DE不对民用组织开放, 不可使用, 因此有效类只有ABC
2-2) 可根据第一位数值判断类别, 1-126 为A类, 128-172 为B类, 192-223 为C类
2-3) 127.0.0.1 为本机
2-4) 第一位表示不同网段, 不同网络, 不同网络之间的通信需要使用路由器, 路由器是用来实现跨网络通信的, 同一网络下通信使用交换机即可. 第一位不变情况下, 后三位的变化都代表同一网络下的不同主机
2-5) A 类 : 每个网络中的第一个地址(X.0.0.0)代表网络本身,最后一个地址(X.255.255.255)代表当前网络的广播地址, 不能分配, 最大主机数 : 后三位的次幂, 减 第一和最后一个 , 2^24 -2
2-6) B 类 : 前两位代表网段, 后两位代表网段中的不同主机
2-7) C 类 : 前三位代表网段, 最后一位代表不同主机
2-8) 私有IP : 不需要花钱买, 用来做内网IP, 可有效保护公网IP, 不能直接访问公网, 需要与公网之间进行转换才可访问互联网

 

Linux】第一章 子网掩码
——>只要是跟255对应的IP变化,就是不同的网段

——>只要是跟0对应的IP变化,就是一个网段中的不同主机、


1、ABC类可以用不同的网段个数和主机个数, 是由子网掩码决定


2、标准子网掩码 : 255.0.0.0 255.255.0.0 255.255.255.0

3、IP和子网掩码不可单独使用, 必须同时使用

4、合理的子网掩码 : 所有的1255转为二进制——>8个1)必须连续,中间不可断开, A 类地址可匹配B类子网掩码

5、广播地址是专门用于同时向网络中所有工作站进行发送的一个地址

 

任何类型的网络都可随意指定子网掩码(下图):

 

Linux】第一章 端口的作用

1.IP地址:门牌号 ,通过ip确定对方服务器的位置

端口号(16位):收件人,在对方服务器众多服务中找出所要访问的具体哪个服务

2.TCP、UDP包头(下图)

 

 

3.常见端口号——>(需要记忆

 

4.查看本机启用的端口:netstat -an

选项:

-a :查看所有连接和监听端口

-n :显示IP地址和端口号,而不显示域名和服务名

 

端口状态:

listen 监听 established 该连接正在存在 close_wait  time_wait

UDP的状态列为空:没有握手,直接发。不需要监听。

服务器处的端口号一定是固定的,而发起连接的客户机会被随机分配一个端口号。

 

Linux】第一章 DNS的作用

1.hosts文件:做静态IP和域名对应,优先于DNS.

位置:C:\Windows\System32\drivers\etc\hosts

2.DNS服务的作用:将域名解析为IP地址

过程:客户机向DNS服务器发送查询IP请求

DNS服务器查询到web服务器的ip,告知用户

用户访问web服务器

3.域名空间结构

根域:.(13台服务器)

——>顶级域/一级域:包括组织域和地区域

(组织域:gov政府/edu教育部门/com商业部门/org民间团体/net网络服务机构/mil军事部门 地区域:cn 中国 hk 香港 jp 日本 Uk 英国 au 澳大利亚)

——>二级域:企业或个人自行购买的(imooc /microsoft/ibm/sina)

——>主机名/3级域:申请完二级域后自己定义的(www/news)

4.为什么要进行域名分级划分

便于IP地址解析

 

5.DNS客户机—>本地域名服务器(需带有缓存服务)—>根服务器->CN服务器->COM.CN服务器->IMOOC.COM.CN->客户->web服务器

 

----递归查询(给结果)---- -------------迭代查询(其他DNS服务器)--------

6.正向:域名到IP ARP

反向:IP到域名 RARP

 

 

Linux】第一章 网关作用

网关作用:通俗的认为,具有路由功能的一种物理设备可以是路由器或者由服务器搭建的能实现路由功能的设备

局域网内:通过交换机进行数据交换。交换机是低级设备,不认识Ip只识别mac数据链路层设备

网间或者不同网段:通过路由器(网关)进行数据交换。外网转内网,内网转外网

网关实现网络的层次,网关之后还有网关

内网不能直接访问内网

作用:

1)网关在所有内网计算机访问的不是本网段的数据包时使用,只要不是局域网内交换数据就一定要经过网关,即网关分开内网和外网

2)把内网Ip转公网Ip公网Ip转内网Ip

******不配置默认网关和DNS就无法访问互联网,但是局域网可以访问******

 

 

Linux】配置 IP 地址的方式(一)

# 如果在局域网中有可自动分配IP的服务器(DHCP 服务器), 则可设置自动获取IP. 如果没有DHCP服务器则需要手动设置IP.

1) ifconfig 命令临时配置IP 地址
# 临时配置, 重启计算机或服务, 即失效.
# 一般用于做实验和测试.
1-1) 主要用于查看网络状态
1-1-1) lo : Local Loopback 本地网卡
# 任何计算机都有
1-2) eth : 实际网卡
1-2-1) encap : 网卡类型
1-2-2) HWaddr : MAC地址
1-2-3) Bcast : 广播地址
1-2-4) UP BROADCAST... : 网卡参数
1-2-5) RX : 当前接收数据包数量
1-2-6) TX : 当前发送数据包数量
1-2-7) Base address : 网卡在内存中实际地址
# 有时, 通过配置修改后未必生效, 会有IP冲突, 网卡损坏等原因造成, 必须是在命令中可查看到的, 视为生效.
1-3) 临时配置IP 和 子网掩码
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0


2) setup 工具永久配置 IP 地址——>红帽专属
# 属于radhat系列专有命令
# 配置成功后需重启服务 : service network restart

 

Linux】配置 IP 地址的方式(二)


3) 修改网络配置文件
3-1) 网卡信息文件
# /etc/sysconfig/network-scripts/ifcfg-eth0
# 配置文件中, 等号左边为大写, 等号右边为小写, linux中严格区分大小写
3-1-1) DEVICE=eth0
# 网卡设备名
# 该名称必须同配置文件名称后缀完全匹配 (ifcfg-eth0)
3-1-2) BOOTPROTO=none
# 是否自动获取IP (none, static, dhcp)
# 早期的DHCP的名称
# none, static 代表手动分配IP
# dhcp 代表自动获取IP, 且不需填写如下内容(UUID\IPADDR\NETMASK\GATEWAY\DNS1\IPV6INIT\NM_CONTROLLED)
3-1-3) HWADDR=...
# MAC地址
3-1-4) NM_CONTROLLED=yes
# 是否可以由Network Manager图形管理工具托管(图形界面)\
3-1-5) ONBOOT=yes
# 是否随网络服务启动, eth0生效
# RedHat 6之后, 默认为no, 设置且重启服务之后需挂起 ifup eth0
3-1-6) TYPE=Ethernet
# 类型为以太网
3-1-7) UUID="..."
# 唯一标识码
# RedHat 6之后, 变得尤为重要. 当系统为克隆或复制多份时, 由于UUID完全一样, 将导致全部不能连通网络. 必须手动修改.
3-1-8) IPV6INIT=no
# IPV6配置方式, 默认不启动
3-1-9) USERCTL=no
# 不允许非root用户控制此网卡, 更加安全.

 

Linux】配置 IP 地址的方式(三)


3-2) 主机名文件
# /etc/sysconfig/network
3-2-1) NETWORKING=yes
# 网络服务是否启动
3-2-2) HOSTNAME=localhost.localdomain
# 主机名
# 修改主机名必须重启计算机方能生效. 重启网络服务不能生效.
# linux主机名不同于windows, 可重名且网络中并不通过主机名进行通讯.
3-3-3) hostname 主机名
# hostname 查看主机名
# 临时修改主机名, 重启将失效.
# 修改主机名可使用 hostname命令及 配置文件一同进行, 便能实现即时永久生效.

3-3) DNS配置文件
# /etc/resolv.conf
3-3-1) nameserver 202.106.0.20
# 名称服务器(DNS)
3-3-2) search localhost
# 默认域名, 当输入地址缺省时, 将自动与默认域名结合来进行搜索

4) 图形界面配置IP 地址

 

Linux】虚拟机网络参数配置

1) 配置Linux IP地址
1-1) setup
# 修改并配置IP 地址

2) 启动网卡
2-1) vi /etc/sysconfig/network-scripts/ifcfg-eth0
# ONBOOT=no yes
2-2) service network restart
# 重启网络服务

3) 修改UUID
# 若此系统为复制或克隆则进行, 重新安装的直接忽略
3-1) vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 删除MAC地址行
3-2) rm -rf /etc/udev/rules.d/70-persistent-net.rules
# 删除网卡和MAC地址绑定文件
3-3) 重启系统
# shutdown -r

4) 设置虚拟机网络连接方式
# 初学者为桥接

5) 修改桥接网卡

 

Linux】网络环境查看命令

1) ifconfig
# 查看当前生效的IP地址与临时配置网络状态命令

2) 关闭与启动网卡
2-1) ifdown 网卡设备名
# 禁用该网卡设备
2-2) ifup 网卡设备名
# 启用该网卡设备

3) 查询网络状态
3-1) netstat 选项
3-1-1) -t : 列出 TCP 协议端口
3-1-2) -u : 列出UDP 协议端口
3-1-3) -n : 使用域名与服务名, 而使用IP 地址和端口号
3-1-4) -l : 仅列出在监听状态网络服务
3-1-5) -a : 列出所有的网络连接
3-1-6) -r : 列出路由列表, 功能和route命令一致
# 常用组合1 : -tuln
# 常用组合2 : -an
# 常用组合3 : -rn 

netstat -an | grep ESTABLISHED | wc -l)
4) route 命令
4-1) route -n
# 查看路由列表(可以看到网关)
4-2) route add default gw 192.168.0.1
# 临时设定网关(gateway)
4-3) route del default gw 192.168.0.1

5) 在一台服务器中, 连内网的网卡是不能设置网关的

6) 域名解析命令
6-1) nslookup 主机名或IP
# 进行域名与IP地址解析
6-2) nslookup 回车 > server
# 查看本机 DNS 服务器

 

 

Linux】网络测试命令(一)

1) ping命令
# 遵循ICMP 协议
1-1) ping 选项 ip或域名
# 探测指定IP 或域名的网络状况
1-1-1) -c 次数 : 指定 ping包的次数

2) telnet 命令
2-1) telnet 域名或IP 端口
# 远程管理与端口探测命令
# telnet 域名或IP 不加端口就是远程管理, 极其不安全, 该命令协议为明文发送, 数据包在传递中不会进行加密, 默认为关闭
2-2) telnet 192.168.0.1 80
# 可探测目标计算机对应端口是否可以正常访问, 可探测对方可能关闭端口或防火墙阻止
2-2-1) 若无任何提示, 则表示可正常访问
# 使用 Ctrl+] 可退出至 telnet 控制界面, 再使用 quit退出
2-2-2) 若提示连接失败, 则对方对应端口未开启或被防火墙阻止

3) traceroute 路由跟踪命令
# 遵循ICMP 协议
3-1) traceroute 选项 IP或域名
# 比如访问imooc, 是经过哪些路由路径访问它的
3-1-1) -n : 使用IP, 不适用域名, 速度更快
3-2) 该命令实际对经过的各个点ping 3个数据包, 过程中显示 *** 代表部分节点禁止ping, 大部分生产环境中是没有禁ping的
3-3) 可在网络畅通时, 记录各个路径节点, 在网路不通时, 再执行可快速定位数据包卡住的位置, 有助于进行故障定位
3-4) 在实际工作当中为常用命令

4) wget 下载命令
4-1) wget http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz

 

Linux】网络测试命令(二)

5) tcpdump 抓包命令
5-1) tcpdump -i eth0 -nnX port 21
5-1-1) -i : 指定网卡接口
5-1-2) -nn : 将数据包中的域名与服务转为IP和端口
5-1-3) -X : 以十六进制和 ASCII码显示数据包内容
5-1-4) port : 指定监听的端口

6) ICMP 是(Internet Control Message Protocol) Internet 控制报文协议

7) service vsftpd start 启动 ftp协议, 端口为 21, 且为明文协议

8) 在网络中的http大部分通讯协议都不安全, https为加密协议

9) 练习登录 ftp出现的问题
9-1) 需安装 vsftpd
# yum -y install vsftpd
9-2) 启动 vsftpd 服务
# service vsftpd start
9-3) 此时用户登录是一直提示未连接, 经查询, 判断为防火墙, 需关闭21 端口组织
9-3-1) vim /etc/sysconfig/iptables
9-3-2) 添加一条信息
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
9-3-3) 退出并重启服务 
# service iptables restart
9-4) 此时可以连接, 但输入用户名密码后出现 cannot change directory:/home/xxx 错误
# 经查询, 判断为 SE 设置了关闭ftp的原因
9-4-1) 使用命令, 过程中出现问题无需理会
# setsebool ftpd_disable_trans 1
# setsebool ftpd_home_dir 1
# service vsftpd restart
# 如需永久生效则增加参数 setsebool -P ...
9-5) 查看se相关配置
# getsebool -a | grep ftp
9-6) 借鉴文献 : https://www.kancloud.cn/chandler/bc-linux/52710

 

 

Linux】SSH 协议原理(一)

1) 对称加密算法
# 采用单钥密码系统的加密方法, 同一个秘钥可以同时用作信息的加密和解密, 这种加密方法称为对称加密, 也称为单秘钥加密.
# 缺点 : 加密解密使用相同密码, 需要告知对方密码, 等同于将自身多方习惯密码告知对方. 例如邮箱等密码, 造成威胁

2) 非对称加密算法(asymmetric cryptographic algorithm)
# 又名 "公开秘钥加密算法" , 需要 公开秘钥(publickey) 和私有秘钥(privatekey)
# linux 中为 gpg工具, windows 中为 pgp工具
2-1) 过程原理, A 需要发送数据包给 B
2-1-1) A 根据自己密码A 生成 公钥A 和私钥A
2-1-2) B 根据自己密码B 生成 公钥B 和私钥B
2-1-3) A 向 B 寻要 公钥B, 再结合自身的公钥A 对数据包进行加密, 并发送给B
2-1-4) B 收到数据包之后, 可根据自身密码B 和 私钥B 对数据包进行解密且成功
2-1-5) 此时, A 也可以根据自身密码A 结合 私钥A 对已加密的数据包进行解密
2-2) 至此, 避免了泄露 A 自身的密码

 

Linux】SSH 协议原理(二)

3) 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 对数据包进行解密

4) SSH 命令
4-1) ssh 用户名@ip
# 远程管理制定Linux服务器
4-1-1) 经过远程之后, 在家目录中的 .ssh 文件夹 know_hosts文件中保存着 连接成功的目标信息
# 地址 加密算法 公钥
4-1-2) 若目计算机进行了重装系统, 或地址被另一台机器占用, 此时 已下载的公钥无法使用, 使用vi 对改行进行删除, 当再次连接时, 会再

次提示是否进行下载公钥
4-2) scp [-r] 用户名@ip:文件路径 本地路径
# 网络复制命令, 下载文件 或加-r 下载文件夹
4-3) scp [-r] 本地文件 用户名@ip:上传路径
# 网络复制命令, 上传文件 或加-r 上传文件夹
# 此为linux 与 linux之间进行文件传输的最简单方式

 

Linux】远程登录工具

1) SecureCRT 收费远程工具

2) XShell 免费远程工具

3) WinSCP 远程文件传输工具

 

posted @ 2017-04-20 21:44  _AlbertWang  阅读(354)  评论(0编辑  收藏  举报