Linux (七) 网络

Linux_07 网络

一、网络基本知识

  1. OSI七层网络模型与TCP/IP四层网络模型的关系

    OSI七层网络模型 TCP/IP四层概念模型 对应网络协议
    应用层 应用层 HTTP、TFTP、FTP、NFS、WAIS、SMTP
    表示层 应用层 Telnet、Rlogin、SNMP、Gopher
    会话层 应用层 SMTP、DNS
    传输层 传输层 TCP、UDP
    网络层 网络层 IP、ICMP、ARP、RARP、AKP、UUCP
    数据链路层 数据链路层 FDDI、Ethernet、Arpanet、PDN、SLIP、PPP
    物理层 数据链路层 IEEE 802.1A、IEEE 802.2到IEEE 802.11
  2. OSI七层网络模型与TCP/IP四层网络模型的关系
    1. OSI引入了服务 、 接口、 协议 、 分层的概念 , TCP/IP借鉴了OSI的这些概念建立了TCP/IP模型
    2. OSI先有模型 , 后有协议 ;先有标准 , 后进行实践 ; 而TCP/IP则相反 , 先有协议和应用后提出了模型 , 且参照的OSI模型 。
    3. OSI是一种理论下模型 , 而TCP/IP已被广泛使用 , 称为互联网事实上的标准。
    4. TCP: transmission control protocol 传输控制协议
    5. UDP: user data protocol 用户数据包协议
  3. 常用设备: 交换机
    1. 思考: Mac地址全球唯一 , 那为什么不适用Mac地址连入互联网 , 而是使用IP地址呢?
      1. 因为如果使用Mac地址 , 每次检索时工作量巨大 , 效率很低 。 而IP地址可以将用户逐一=分类细化 , 最终精确到一个地址上 , 极大地减少了检索的时间 。
  4. 目前的家用路由器 , 已将交换机和路由器合为一体
  5. 网络连接:

    1. IP地址分析:
      1. IP地址由32为二进制组成
      2. IP地址 = 网络位 + 主机位 (前24位为网络位 , 后8位为主机位)
        1. 相同的网络 , 网络位一定相同, 主机位不一样
        2. 不同的网络, 网络位肯定不同 , 主机位可能一样 。
      3. 交换机用来连接相同的网络(局域网) , 路由器用来连接不同的网络 。
    2. 子网掩码:

      1. 子网掩码(subnet mask)又叫网络掩码 、 地址掩码 、 子网络遮罩 , 它是一种用来指明一个IP地址的哪些位表示的主机所在的子网 , 以及哪些位标识的是主机的位掩码 , 子网掩码不能单独存在 , 他必须结合IP地址一起使用 。 子网掩码只有一个作用 , 就是将某个IP地址划分成网络地址和主机地址两部分 。
      2. 子网掩码是一个32为地址 , 用于屏蔽IP地址的一部分以区别网络标识和主机标识 , 并说明该IP地址是在局域网上 , 还是在远程网上 。
      3. 子网掩码在二进制的前提下 , 将网络位全置1 , 主机位全置0 , 作用是判断一个IP地址属于那个网络 。 用法是将IP地址与子网掩码惊醒按位与运算 。

        IP地址与子网掩码按位与运算
        IP : 192.168.1.10  子网掩码: 255.255.255.0
        运算演示:
        11000000 10101000 00000001 00001010
        11111111 11111111 11111111 00000000
        ------------------------------------
        11000000 10101000 00000001 00000000 = 192.168.1.0
        
    3. 网关(Gateway)又称网间连接器 、 协议转换器
      1. 网关: 不同网络之间的关卡
      2. 如今很多局域网都是采用路由器来接入网络 , 因此通常指的网关就是路由器的IP 。
    4. DNS(Domain Name System)域名系统
      1. 因特网上作为IP地址和域名相互映射的一个分布式数据库 , 能够使用户更方便的访问网络 , 而不用去记住直接被机器读取的IP数据串 。 通过主机名 , 最终得到该主机名对应的IP地址的过程叫做域名解析(或叫主机名解析) 。
      2. DNS协议运行在UDP协议之上, 使用的默认端口号为53 。
      3. 主机名到IP地址的映射有两种方式:
        1. 静态映射:每台设备上都配置主机到IP的映射 , 各设备独立维护自己的映射表 , 而且只供本设备使用 。
        2. 动态映射:建立一套 域名解析系统(DNS) , 只在专门 的DNS服务器上配置主机到IP地址的映射 , 网络上需要使用主机名通信的设备 , 首先需要到DNS服务器查询主机所对应的IP地址 。 (类似于 通讯录)
    5. ifconfig命令 : 显示或设置网络设备

      1. 类似windows下的ipconfig

        [outman02@bogon ~]$ ifconfig
        eth0      Link encap:Ethernet  HWaddr 00:0C:29:80:55:14  
                  inet addr:192.168.43.178  Bcast:192.168.43.255  Mask:255.255.255.0
                  inet6 addr: fe80::20c:29ff:fe80:5514/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:13 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000 
                  RX bytes:2251 (2.1 KiB)  TX bytes:1819 (1.7 KiB)
        
      2. eth(Ethernet的 缩写) 新装的虚拟机为eth0
      3. 为什么原来的eth0会变成eth1?
        1. 解答: 很多Linux中distribution使用udev动态管理设备文件 , 并根据设备的信息对其进行持久化命名 。
        2. udev会在系统引导的过程中识别网卡 , 将mac地址和网卡名称对应起来记录在udev的规则脚本中 。 而对于新的虚拟机 , 会自动为虚拟机的网卡生成MAC地址 , 当你克隆或者重装虚拟机软件时 , 由于你使用的是旧的虚拟机硬盘信息 , 并且该信息中已经有eth0的信息了 , 所以对于新的网卡 , udev会将其自动命名为eth1(依次顺延) 。
      4. 如何将eth1改回eth0?
        1. 解答: udev记录网络规则的脚本文件为: /etc/udev/rules.d/70-persistent-net.rules . 打开该文件之后会发现 , 里面有eth0和eth1两个网卡信息 , 但实际上通过ifconfig查询时只有eth1一个网卡信息 , 这是因为eth0这个网卡信息根本就不存在 。 只要将 其中 eth0删除, 并且将eth1名字改为eth0之后 , 重启系统 。 或是直接删掉该文件中所有的信息 , 重启系统之后udev会自动发现新设备并生成网卡信息 。
    6. 虚拟机连接的几种方式:

      1. NAT即为网络地址转换 , 通常他的名称为VMnet8 , 通过nat的连接方式可以使得虚拟机和真实机的网卡在不同的网段中 , 从而实现联网
      2. bridge即为桥接 , 通常他的名称为VMnet0 , 使用桥接的方式使得自己的虚拟机和自己的真是网卡在同一个网段 , 从而实现联网
      3. host-only即为仅主机 , 通常 他的名称为VMnet1 , 使用 host-only的方式是不能和外界通信的 , 只能够和本机的物联网卡 通信 。
      4. 修改网络 连接方式之后 , 要重启网络服务

        [root@localhost ~]# service network restart
        
  6. 网络操作:

    1. 通过主机名查看IP

      [root@localhost ~]# host www.baidu.com
      
  7. 远程管理

    1. 将本地的目录或文件拷贝到服务器目录下

      [root@localhost ~]#scp -r 需要拷贝的文件或目录 root@目标服务器的IP:目标目录
      
    2. 从本机远程登录服务器

      [root@localhost ~]#ssh 用户名@服务器IP
      
  8. SSH远程免密操作

    1. SSH是最常用的Linux远程登录工具之一 。
      1. 免密码设置(在集群管理等场景会经常用到)
    2. RSA
      1. 非对称加密算法 , 秘钥分为公钥和私钥对
      2. 公钥加密的内容 , 只有拥有私钥者才能解密
      3. 客户端与服务器连接过程:
        1. 客户端发出请求: 建立连接请求并发送公钥
        2. 服务端验证本地公钥及发来的公钥 , 如果相等则生成一段公钥加密的challenge , 并回送 。
        3. 客户端私钥解密 , 将challenge回送。
        4. 服务端验证两端challenge , 相同则建立连接 。
    3. 免密操作

      1. 在客户端生成公钥\私钥对

        [root@localhost ~]#ssh -keygen
        
      2. 将公钥私钥对拷贝至服务器端

        [root@localhost ~]#ssh-copy-id -i ~/ssh/id_rsa.pub @
        
  9. 网络下载

    1. wget命令

      1. 用于网络上下载资源 , 没有指定目录 , 下载资源默认存储到当前目录
      2. wget 【参数】 【URL地址】
        1. 支持断点下载功能
        2. 同时支持FTP和HTTP下载方式
        3. 支持代理服务器
      3. 使用wget下载单个文件

        wget http://www.baidu.com
        
      4. 使用wget -O下载并以不同的文件名保存

        wget -O newname.new http://www.baidu.com
        
      5. 使用wget –limit-rate 限速下载(单位 , byte/秒)

        wget --limit-rate=300k http://....
        
      6. 使用wget -c 断点续传

        wget -c http://www.baidu.com
        
      7. 使用wget -b 后台下载

        wget -b http://www.baidu.com
        
      8. 使用wget -i 下载多个文件

        wget -i  urlfile.txt 
        urlfile.txt中内容为
        http://www.baidu.com
        http://www.souhu.com
        

你可能感兴趣的:(Linux)