zoukankan      html  css  js  c++  java
  • linux基础之网络基础配置

    基本概念:网桥、交换机、路由器

      早期的网络是由一根铜轴电缆,多个主机通过T型头连接到这根电缆上面。主机与主机通信是通过发送电信号,A主机与B主机进行通信,C和B就不能通信了。如果A给B发送信号,C也给B发送了信号,那么就会产生冲突,以太网为了解决这个问题,采用CSMA/CD方案,也就是载波侦听,多路访问,冲突检测。

      但是随着连接的主机的越来越多,冲突域还是会有,所有把一个网络切割成N个小网络,使用网桥来实现跨网络通信。网桥中会存放哪台主机在哪个接口上,也就是mac表。

      随着要通信的网络越来越多,网桥上有多个端口,这种多端口的网桥,也就是交换机。交换机造价越来越便宜后,干脆交换机一个端口连接一台主机,可以更好的解决冲突域的问题。

      我们知道,当交换机不知道哪台主机在哪个接口的时候,就会广播,随着网络越来越庞大,交换机越来越多,广播也越频繁,为了解决广播域的问题,就有了路由器,用来隔离广播域。

      全球网络那么多,为了实现网络与网络通信,就需要有一个标识来标记网络,也就有了IP地址,用来标记网络,也可以用来标记主机,实现网络与网络之间通信。

    IP地址分类:

      A类:

        0 000 0000 - 0 111 1111:1 - 127

        网络数:2^7-1,127本地回环地址

        每个网络中的主机数:2^24-2

        默认子网掩码:255.0.0.0

        私网地址:10.0.0.0/8

      B类:

        10 00 0000 - 10 11 1111: 128 - 191  

        网络数:2^14

        每个网络中的主机数:2^16-2

        默认子网掩码:255.255.0.0

        私网地址:172.16.0.0/16 - 172.31.0.0/16

      C类

        110 0 0000 - 110 1 1111:192 - 223

        网络数:2^21

        每个网络中的主机数:2^8-2

        私网地址:192.168.0.0/24 - 192.168.255.0/24

      D类:组播

        1110 0000 - 1110 1111:224 - 239

    OSI/ISO参考模型

      物理层:两个网络之间进行通信用什么介质,传输速率有多高,用哪种设备,接口是什么,几毫米还是几厘米,电压多少伏等等一系列规定和规范。

      数据链路层:主要作用是标记本机主机的网卡地址,标记对方的地址

      网络层:标记网络地址,主要作用是源IP地址目标IP,解决的是主机到主机的通信。

      传输层:主要用来标记主机上的进程源端口号和目标端口号,传输层还可以解决拥塞控制,滑动窗口等

      会话层:建立会话

      表示层:加密、压缩,如何表示

      应用层:真正的资源交换

    传输层协议:

      tcp,udp,sctp

    网络层协议:

      ip,OSPF

    网络与网络之间进行通信,要经过路由:

     路由:

      主机路由:如果目标是单台主机,明确说明到哪条主机的路由条目,就叫主机路由

      网络路由:到达哪个网络经过的路由,叫网络路由

      默认路由:不管与谁通信,都经过的路由

    配置路由的方式:

    静态指定:
        ifconfig
        ip
        配置文件
        system-config-network-tui(setup)
        Centos 7:
          mncli,nmtui
      动态分配
        DHCP:dynamic host configureation protocol

    相关命令:

    ifconfig命令:

      ifconfig [interface]
        # ifconfig -a
        #ifconfig IFACE [ up | down ]
      ifconfig interface [aftype] options | address ...
        # ifconfig IFACE IP/mask [up]
        # ifconfig IFACE IP  netmask MASK
     ifup | ifdown IFACE:网卡启用或禁用
        注意:立即生效
    1.修改本机IP地址
      ifconfig ens33 192.168.0.104/24
      或 ifconfig ens33 192.168.0.103 netmask 255.255.255.0

    route命令:路由管理命令  

    查看:route -n
    添加:route add [-net | -host] target [netmask MS] [gw GW] [[dev] If]
    删除: route del [-net | -host] target [gw GW] [netmask NM] [[dev] If]
    1.设置主机路由:要经过网关192.168.0.1到达172.16.31.10这台主机
      # route add -host 172.16.31.10 gw 192.168.0.1 dev ens33
    2.设置网络路由:要到达网络192.168.0.0.网关是192.168.0.1
      # route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev ens33
    3.设置默认路由:
      # route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
      或 route add default gw 192.168.0.1
    1.删除主机路由
      # route del -host 172.16.31.10 netmask 255.255.255.0 gw 192.168.0.1
    2.删除网络路由
      # route del -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
    3.删除默认路由
      # route del -net 0.0.0.0 netmask 0.0.0.0
    ifconfig命令家族网络查看工具:netstat
    netstat: 显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组
      -t: tcp协议相关
      -u:udp协议相关
      -w:raw socket相关
      -l:处于监听状态
      -a:所有状态
      -n:以数字显示IP及端口
      -e:扩展格式
      -p:显示相关进程及PID
      -r:显示内核路由表
      -i:显示所有接口
      -Iens33:只显示一个接口
    常用组合:-atn,-uan,tnl,unl

    IP命令

    ip [ link | addr | route] COMMAND
    
     ip link:network device configuration
       ip link set dev IFACE [ up | down] :激活或禁用指定接口
       ip link show [ dev IFACE ] [ up ]
          [dev IFACE]:指定接口
          [up]:仅显示激活状态的接口
    ip link示例:
    1.查看所有网卡设备的信息
    # ip link show
    2.查看指定设备的信息
    # ip link show dev ens33
    3.仅显示启用状态的设备的信息
    # ip link show up
    4.启用ens33接口
    # ip link set ens33 up
    5.禁用ens33接口
    # ip link set ens33 down
    ip addr:protocol address management
       ip addr { add | del } IFADDR dev STRING
         [label LABEL] :添加地址时指明网卡别名
         [scope {global | link | host}] : 指明作用域
           global:全局可用
           link:仅链接可用
           host:本机可用
         [broadcast ADDRESS]:指明广播地址
       ip address show - look at protocol address
         [dev DEVICE]
         [label PATTERN]
         [primary and secondary]
       ip address flush - flush protocol addresses
         使用格式同show
    ip addr示例:
    1.显示所有接口下的ip地址
     # ip addr show
    2.显示指定的设备下的ip地址
     # ip addr show dev ens33
    3.给指定设备添加一个地址
     # ip addr add 192.168.0.200/24 dev ens33
    4.删除指定设备的一个ip地址
     # ip addr delete 192.168.0.200/24 dev ens33
    5.给指定设备添加一个别名并添加一个地址
     # ip addr add 192.168.0.201/24 dev ens33 label ens33:1
    6.删除网卡别名
     # ip addr delete 192.168.0.201/24 dev ens33 label ens33:1
     ip route - routing table management
       ip route add
         添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
           TARGET:
             主机路由:IP
             网络路由:NETWORK/MASK
           添加网关:ip route add default via GW dev IFACE
       ip route delete
         删除路由:ip route del TARGET
       ip route show
       ip route flush
         [dev IFACE] 
         [via PREFIX] 
    ip route命令示例:
    1
    .添加一个主机路由   # ip route add 192.168.1.2/255.255.255.255 dev ens33 2.添加一个网络路由   # ip route add 172.16.0.0/16 via 192.168.0.1 dev ens33 3.删除一个主机路由   # ip route delete 192.168.1.2/32 dev ens33 4.删除一个网络路由   # ip roue delete 172.16.0.0/16 via 192.168.0.1 dev ens33 5.显示路由信息   # ip route show 或 ip route list 6.添加默认路由   # ip route add default via 192.168.0.1 dev ens33 7.删除默认路由   # ip route delete default dev ens33 8.删除所有的路由   # ip route flush dev eth0

    ip命令家族的网络查看工具:ss

    ss [OPTION]
        -t:tcp协议相关     -u:udp协议相关     -w:裸套接字相关     -x:unix sock相关     -l:listen状态的连接     -a:所有     -n:数字格式     -o:计时器信息     -p:相关的程序及PID     -e:扩展的信息     -m:内存用量     -o:计时器信息     FITER := [ state TCP_STATE ] [ EXPRESSTION ]   TCP的常见状态     tcp finite state macine:       LISTEN:监听       ESTABLISHED:已建立的连接       FIN_WAI_1       FIN_WAIT_2       SYN_SENT       SYN_RECV       CLOSED     EXPRESSION:       dport=       sport=       (示例:dport=:ssh or sport=:ssh)

    修改配置文件进行网络配置

      IP、MASK、GW、DNS相关配置文件: /etc/sysconfig/network-scripts/ifcfg-IFACE

      路由相关配置文件: /etc/sysconfig/network-scripts/route-IFACE,这个文件默认不存在

    /etc/sysconfig/network-scripts/ifcfg-IFACE
        DEVICE: 此配置文件应用到的设备
        HWADDR:对应的设备的MAC地址
        BOOTPROTO:激活此设备使用的地址配置协议,常用的dhcp,static,none,bootp
        NM_CONTROLLED::NM是NetworkManager的简写;此网卡是否接受NM控制,cnetos6建议为no
        ONBOOT:在系统引导时是否激活此设备
        TYPE::接口类型;常见的有Ethernet,Bridge
        UUID:设备的唯一标识
        
        IPADDR:指明IP地址
        NETMASK:子网掩码
        GATEWAY:默认网关
        DNS1:第一个DNS服务器指向
        DNS2:第二个DNS服务器指向
        
        USERCTL:普通用户是否可控制此设备
        PEERDNS:如果BOOTPROTO的值为dhcp,是否运行dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf
    
    /etc/sysconfig/network-scripts/route-IFACE
      两种风格:
        1.TARGET via GW
        2.每三行定义一条路由
          ADDRESS#=TARGET
          NETMASK#=MASK
          GATEWAY#=GW
    DNS服务器指定: /etc/resolv.conf
        nameserver DNS_SERVER_IP1
        nameserver DNS_SERVER_IP2
        nameserver DNS_SERVER_IP3
      正解测试dns:dig -t A www.ckh.com 
      反解测试dns:dig -x IP
    给网卡配置多地址
      ifconfig 
        # ifconfig ens33:0 192.168.0.202/24 up
      ip
        # ip addr add 192.168.0.202/24 dev ens33 label ens33:1 
      通过配置文件来实现
        # cd /etc/sysconfig/network-scripts/
        # cp ens33 ens33:1
        注意:网卡别名不能使用dhcp协议引导
    配置完,需要重启网络服务,配置文件才生效
      比如: CentOS6:   service network restart或者/etc/rc.d/int.d/network restart
              CentOS7:   systemctl restart network.service  

    网络属性配置的其他工具

    1.tui(text user interface)

      system-config-network-tui

    也可以使用setup

    注意:需要重启网络服务方能生效

    2.nmcli

    nmcli - command-line tool for controlling NetworkManager

    基本用法:nmcli [ OPTIONS ] OBJECT { COMMAND | help }
                    device - show and manage network interfaces
                    connection - start,stop,and manage network connections
    [root@alen ~]# nmcli device status  //查看网卡连接状态
    DEVICE  TYPE      STATE   CONNECTION 
    ens33   ethernet  连接的  ens33      
    lo      loopback  未托管  --         
    [root@alen ~]# nmcli device show ens33  //查看ens33网络连接相关信息
    GENERAL.DEVICE:                         ens33
    GENERAL.TYPE:                           ethernet
    GENERAL.HWADDR:                         00:0C:29:46:61:4F
    GENERAL.MTU:                            1500
    GENERAL.STATE:                          100 (连接的)
    GENERAL.CONNECTION:                     ens33
    GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveCo
    WIRED-PROPERTIES.CARRIER:               开
    IP4.ADDRESS[1]:                         192.168.0.114/24
    IP4.GATEWAY:                            192.168.0.1
    IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 
    IP4.ROUTE[2]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt =
    IP4.DNS[1]:                             192.168.0.1
    IP4.DOMAIN[1]:                          www.tendawifi.com
    IP6.ADDRESS[1]:                         fe80::c547:7f8e:8399:2a8e/64
    IP6.GATEWAY:                            --
    IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table
    IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
    如何修改IP地址等属性:
         # nmcli connection modify IFACE [+|-]setting.property value
               setting.property:
                             ipv4.addresses
                             ipv4.gateway
                             ipv4.dns1
                             ipv4.method
                                 manual
    实例:
       nmcli connection modify ens33 ipv4.addresses 192.168.0.105/24  //修改网卡地址 
       nmcli con down ens33;nmcli con up ens33  //需要重新启用网卡,配置的地址才生效   
      
       nmcli con modify ens33 -ipv4.addresses   //移除某个ip地址
    
        nmcli con modify ens33 +ipv4.dns 192.168.0.1  //增加一个dns

    其他操作:

    1.查看主机名

      # hostname

    2.设置主机名

      #hostname ckh

    3.修改配置文件

      # vi /etc/sysconfig/network

    4.修改网卡名字

      # cd /etc/udev/rules.d/

      # vim 70-persistent-net.rules

      # lsmod  :查看网卡驱动

      # modprobe -r e1000  :卸载网卡驱动

      # modprove e1000  :装载网卡驱动

    Centos7 网络属性配置

    1.网卡命名机制

    systemd对网络设备的命名方式

      a.如果firmware或bios为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

      b.如果fireware或bios为pci-e扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1

      c.如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

      d.如果用户显示启动,也可根据MAC地址进行命名,enx23871883

      e.上述命名机制中,有的需要biosdevname程序的参与

    2.名称组成格式

      en:ethernet 以太网接口

      wl:wlan 无线局域网设备

      ww:wwan 无线广域网设备

      名称类型:

        o<index>:集成设备的设备索引号

        s<slot>:扩展槽的索引号

        x<MAC>:基于MAC地址的命名

        p<bus>s<slot>:enp2s1

      网卡设备的命名过程

        第一步:udev,辅助工具程序/lib/uedv/renae_device,/usr/lib/udev/rules.d/60-net.rules

        第二步:biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules

        第三步:通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description

          ID_NET_NAME_ONBOARD,ID_NET_NAME_SLOT,ID_NET_NAE_PATH

      回归传统命名方式

        1.编辑/etc/default/grub配置文件

          GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"

        2.为grub2生成其配置文件

          grub2-mkconfig -o /etc/grub2.cfg

        3.重启系统

      地址配置工具:nmcli

        nmcli [ OPTIONS ] OBJECT { COMMAND | help }

          device - show and manage network interfaces

          connection - start,stop,and manager network connections

      如何修改IP地址等属性

        # nmcli connection modify IFACE [+|-]setting.property value

          setting.property  

            ipv4.addresses

            ipv4.gateway

            ipv4.dns1

            ipv4.method

              manual

    网络客户端工具:

      lftp, ftp,lftpget,wget

      # lftp [-p port] [-u usr[,password] SERVER ]

        子命令:

          get

          mget

          ls

          help

      # lftpget URL

      # ftp

      #wget

      wget [option]... [URL]...

        -q:静默模式

        -c:断点续传

        -O:保存位置

        --limit-rates=:指定传输速率

      

  • 相关阅读:
    java 无符号byte转换
    MySQL分区总结
    eclipse @override注解出错
    git 利用hook 实现服务器自动更新代码
    Centos 安装mysql
    Centos Python3安装共存
    chromedriver 代理设置(账号密码)
    PyQt5整体介绍
    python图片云
    PyPt5 浏览器实例
  • 原文地址:https://www.cnblogs.com/ckh2014/p/14028356.html
Copyright © 2011-2022 走看看