• 【Linux】【Basis】网络


    Linux网络属性配置            
             
        计算机网络: 
            TCP/IP:协议栈(使用)
                ISO,OSI:协议栈(学习)
                 
            MAC:Media Access Control
                48bits:
                    ICANN:24bits, 2^24
                        地址块:2^24
                         
                    网桥(bridge):MAC地址表
                        静态指定:
                        动态学习:根据原地址学习;
                         
                    交换机(switch):多端口网桥; 
                         
            IP(Internet protocol)地址:网络号+主机号
                    A<-->B
                        网络?
                        主机?
                     
                    IPv4:32bits
                        8bits.8bits.8bits.8bits
                            0-255
                            0.0.0.0-255.255.255.255
                             
                        IP地址分类:
                            A类:
                                第一段为网络号,后三段为主机号
                                网络号:
                                    0 000 0000 - 0 111 1111:1-127
                                网络数量:126,127
                                每个网络中的主机数量:2^24-2
                                默认子网掩码:255.0.0.0,/8
                                    用于与IP地址按位进行“与”运算,从而取出其网络地址;
                                        1.3.2.1/255.0.0.0 = 1.0.0.0
                                        1.3.2.1/255.255.0.0= 1.3.0.0   
                                私网地址:10.0.0.0/255.0.0.0
                            B类:
                                前两段为网络号,后两段为主机号
                                网络号:
                                    10 00 0000 - 10 11 1111:128-191
                                    网络数:2^14
                                    每个网络中的主机数量:2^16-2
                                    默认子网掩码:255.255.0.0,/16
                                    私网地址:172.16.0.0-172.31.0.0                             
                            C类:
                                前三段为网络号,最后一段为主机号
                                网络号:
                                    110 0 0000 - 110 1 1111:192-223
                                网络数:2^21
                                每个网络中的主机数量:2^8-2
                                默认子网掩码:255.255.255.0,  /24
                            D类:组播
                                1110 0000 - 1110 1111:224-239
                            E类:科研
                                240-255
                    IPv6:128bits
                     
                        路由器:router
                            路由表:
                                静态指定
                                动态学习:rip2, ospf
                                 
                            路由条目:
                                目标地址  下一跳(nexthop)
                                    目标地址的类别:
                                        主机:主机路由
                                        网络:网络路由
                                        0.0.0.0/0.0.0.0:默认路由                           
        OS:多用户,多任务
            多任务:多进程
                chrome:
                QQ:
                QQ Music:
                 
            通信时,进程的数字标识:
                16bits:
                    0-65535:1-65535
                        1-1023:固定分配,而且只有管理员有权限启用;
                        1024-4W:半固定,
                        4W+:临时;
            进程地址:
                IP:PORT,  socket
                 
        总结:
            MAC:本地通信;范围:本地局域网;
            IP:界定通信主机,源和目标;范围:互联网;
            Port:界定进程;范围:主机 ;
             
        将Linux主机接入到网络中:
            IP/NETMASK:本地通信
            路由(网关):跨网络通信
            DNS服务器地址:基于主机名的通信
                主DNS服务器地址
                备用DNS服务器地址
                第三备份DNS服务器地址
                 
            配置方式:
                静态指定:
                    命令:
                        ifcfg家族:
                            ifconfig:配置IP,NETMASK
                            route:路由
                            netstat:状态及统计数据查看
                        iproute2家族:
                            ip OBJECT:
                                addr:地址和掩码;
                                link:接口
                                route:路由
                            ss:状态及统计数据查看
                        CentOS 7:nm(Network Manager)家族
                            nmcli:命令行工具
                            nmtui:text window 工具
                             
                        注意:
                            (1) DNS服务器指定   
                                配置文件:/etc/resolv.conf
                            (2) 本地主机名配置
                                hostname
                                配置文件:/etc/sysconfig/network
                                CentOS 7:hostnamectl                   
                    配置文件:
                        RedHat及相关发行版
                            /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
                         
                动态分配:依赖于本地网络中有DHCP服务
                    DHCP:Dynamic Host Configure Procotol
                     
        网络接口命名方式:
            传统命名:
                以太网:ethX, [0,oo),例如eth0, eth1, ...
                PPP网络:pppX, [0,...], 例如,ppp0, ppp1, ...
             
            可预测命名方案(CentOS):
                支持多种不同的命名机制:
                    Fireware, 拓扑结构
                     
                (1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ...
                (2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
                (3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
                (4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ...
                上述均不可用,则仍使用传统方式命名;
                 
                命名格式的组成:
                    en:ethernet
                    wl:wlan
                    ww:wwan
                     
                    名称类型:
                        o<index>:集成设备的设备索引号;
                        s<slot>:扩展槽的索引号;
                        x<MAC>:基于MAC地址的命名;
                        p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
                         
    回顾:计算机网络基础、Linux网络属性配置
        TCP/IP协议栈:物理层、互联网层、传输层、应用层
            互联网层:IP
            传输层:TCP, UDP
            应用层:http, https, ftp, ldap, ...
             
        链接路层:以太网帧
        互联网层:IP报文
         
        以太网帧:MTU(1500)
             
        Linux网络属性配置:命令,配置文件;
             
    Linux网络属性配置(2)
     
        ifcfg命令家族: ifconfig, route, netstat
             
            ifconfig命令:接口及地址查看和管理
                ifconfig  [INTERFACE]
                    # ifconfig -a:显示所有接口,包括inactive状态的接口;
                 
                ifconfig interface [aftype] options | address ...
                    # ifconfig  IFACE  IP/MASK  [up|down]
                    # ifconfig  IFACE  IP  netmask  NETMASK 
                     
                    options:
                        [-]promisc
                     
                    注意:立即送往内核中的TCP/IP协议栈,并生效;
                     
                管理IPv6地址:
                    add addr/prefixlen
                    del  addr/prefixlen
                     
            route命令:路由查看及管理
             
                路由条目类型:
                    主机路由:目标地址为单个IP;
                    网络路由:目标地址为IP网络;
                    默认路由:目标为任意网络,0.0.0.0/0.0.0.0
                     
                查看:
                    # route  -n
                添加:
                    route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]
                     
                        示例:route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1
                                    route add  -net  0.0.0.0/0.0.0.0  gw 192.168.10.1 
                                    route add  default  gw 192.168.10.1 
                                     
                删除:
                    route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
                         
                        示例: route  del  -net  10.0.0.0/8  gw 192.168.10.1
                                 route  del  default
                                  
            netstat命令:
                Print network connections, routing tables, interface statistics, masquerade connections, and multicast  memberships
                 
                显示路由表:netstat  -rn
                    -r:显示内核路由表
                    -n:数字格式
                     
                显示网络连接:
                    netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]
                        -t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
                        -u:UDP相关的连接
                        -w:raw socket相关的连接
                        -l:处于监听状态的连接
                        -a:所有状态
                        -n:以数字格式显示IP和Port;
                        -e:扩展格式
                        -p:显示相关的进程及PID;
                         
                    常用组合:
                        -tan,  -uan,  -tnl,  -unl,  -tunlp
                                     
                    传输层协议:
                        tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;
                        udp:无连接的协议;直接发送数据报文;
                         
                显示接口的统计数据:
                    netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
                         
                    所有接口:
                        netstat  -i
                    指定接口:
                        netstat  -I<IFace>
                         
            ifup/ifdown命令:
                注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
         
        配置主机名:
         
            hostname命令:
                查看:hostname
                配置:hostname  HOSTNAME
                    当前系统有效,重启后无效;
                 
            hostnamectl命令(CentOS 7):
                hostnamectl  status:显示当前主机名信息;
                hostnamectl  set-hostname:设定主机名,永久有效;
                 
            配置文件:/etc/sysconfig/network
                HOSTNAME=<HOSTNAME>
                 
                注意:此方法的设置不会立即生效; 但以后会一直有效;
                 
        配置DNS服务器指向:
             
            配置文件:/etc/resolv.conf
                nameserver   DNS_SERVER_IP
                 
                如何测试(host/nslookup/dig):
                    # dig  -t  A  FQDN
                        FQDN --> IP
                         
                    # dig  -x  IP
                        IP --> FQDN
                         
        iproute家族:
            ip命令:
                show / manipulate routing, devices, policy routing and tunnels
                 
                ip [ OPTIONS ] OBJECT { COMMAND | help }
                    OBJECT := { link | addr | route | netns  }
                 
                注意: OBJECT可简写,各OBJECT的子命令也可简写;
                     
                ip  OBJECT:
                     
                    ip link: network device configuration
                     
                        ip  link  set - change device attributes
                            dev NAME (default):指明要管理的设备,dev关键字可省略;
                            up和down:
                            multicast on或multicast off:启用或禁用多播功能;
                            name NAME:重命名接口
                            mtu NUMBER:设置MTU的大小,默认为1500;
                            netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
                             
                        ip  link  show  - display device attributes
                         
                        ip  link  help -  显示简要使用帮助;
                         
                    ip netns:  - manage network namespaces.
                     
                        ip  netns  list:列出所有的netns
                        ip  netns  add  NAME:创建指定的netns
                        ip  netns  del  NAME:删除指定的netns
                        ip  netns   exec  NAME  COMMAND:在指定的netns中运行命令
                         
                    ip address - protocol address management.
                         
                        ip address add - add new protocol address
                            ip  addr  add  IFADDR  dev  IFACE
                                [label NAME]:为额外添加的地址指明接口别名;
                                [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
                                [scope SCOPE_VALUE]:
                                    global:全局可用;
                                    link:接口可用;
                                    host:仅本机可用;                                            
                             
                        ip address delete - delete protocol address
                            ip addr  delete  IFADDR  dev  IFACE
                                 
                        ip address show - look at protocol addresses
                            ip  addr   list  [IFACE]:显示接口的地址;
                             
                        ip address flush - flush protocol addresses
                            ip  addr  flush  dev  IFACE
                             
                    ip route - routing table management
                     
                        ip route add - add new route
                        ip route change - change route
                        ip route replace - change or add new one
                            ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]
                             
                            示例:
                                # ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100
                                # ip  route  add default  via  GW                      
                             
                        ip route delete - delete route
                            ip  route  del  TYPE PRIFIX
                             
                            示例:
                                # ip  route delete  192.168.1.0/24
                                 
                        ip route show - list routes
                            TYPE PRIFIX 
                        ip route flush - flush routing tables
                            TYPE  PRIFIX
                         
                        ip route get - get a single route
                            ip  route  get  TYPE PRIFIX
                             
                            示例:ip route  get  192.168.0.0/24
                         
            ss命令:
                ss  [options]  [ FILTER ]
                    选项:
                        -t:TCP协议的相关连接
                        -u:UDP相关的连接
                        -w:raw socket相关的连接
                        -l:监听状态的连接
                        -a:所有状态的连接
                        -n:数字格式
                        -p:相关的程序及其PID
                        -e:扩展格式信息
                        -m:内存用量
                        -o:计时器信息
                         
                    FILTER := [ state TCP-STATE ]  [ EXPRESSION ]
                     
                        TCP的常见状态:
                            TCP FSM:
                                LISTEN:监听
                                ESTABLISEHD:建立的连接
                                FIN_WAIT_1:
                                FIN_WAIT_2:
                                SYN_SENT:
                                SYN_RECV:
                                CLOSED:
                             
                        EXPRESSION:
                            dport =
                            sport =
                                示例:'( dport = :22 or sport = :22)'
                                    ~]# ss   -tan    '(  dport = :22 or sport = :22  )'
                                    ~]# ss  -tan  state  ESTABLISHED
                                     
        配置文件:
            IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
                IFACE:接口名称;
            路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
                         
            配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
             
                ifcfg-IFACE配置文件参数:
                    DEVICE:此配置文件对应的设备的名称;
                    ONBOOT:在系统引导过程中,是否激活此接口;
                    UUID:此设备的惟一标识;
                    IPV6INIT:是否初始化IPv6;
                    BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
                    TYPE:接口类型,常见的有Ethernet, Bridge;
                    DNS1:第一DNS服务器指向;
                    DNS2:备用DNS服务器指向;
                    DOMAIN:DNS搜索域;
                    IPADDR: IP地址;
                    NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
                    GATEWAY:默认网关;
                    USERCTL:是否允许普通用户控制此设备;
                    PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;
                    HWADDR:设备的MAC地址;
                     
                    NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
                     
                网络服务:
                    network
                    NetworkManager
                     
                    管理网络服务:
                        CentOS 6:  service  SERVICE  {start|stop|restart|status}
                        CentOS 7:systemctl  {start|stop|restart|status}  SERVICE[.service]
                         
                    配置文件修改之后,如果要生效,需要重启网络服务;
                        CentOS 6:# service  network  restart
                        CentOS 7:# systemctl  restart  network.service
                         
            用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
                支持两种配置方式,但不可混用;
                    (1) 每行一个路由条目:
                        TARGET  via  GW
                         
                    (2) 每三行一个路由条目:
                        ADDRESS#=TARGET
                        NETMASK#=MASK
                        GATEWAY#=NEXTHOP
                         
        给接口配置多个地址:
            ip addr之外,ifconfig或配置文件都可以;
             
            (1) ifconfig  IFACE_LABEL  IPADDR/NETMASK
             
                IFACE_LABEL: eth0:0, eth0:1, ...
                 
            (2) 为别名添加配置文件;
                DEVICE=IFACE_LABEL
                BOOTPROTO:网上别名不支持动态获取地址;
                    static, none
                     
        nmcli命令:
            nmcli  [ OPTIONS ] OBJECT { COMMAND | help }
                 
                device - show and manage network interfaces
                    COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
                 
                connection - start, stop, and manage network connections
                    COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
                     
                    modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
                     
                    如何修改IP地址等属性:
                        # nmcli  conn  modify  IFACE  [+|-]setting.property  value
                            ipv4.address
                            ipv4.gateway
                            ipv4.dns1
                            ipv4.method
                                manual
                                 
        博客作业:上述所有内容;
            ifcfg, ip/ss,配置文件
             
        课外作业:nmap, ncat, tcpdump命令;
     
    网络客户端工具:
         
        ping/lftp/ftp/lftpget/wget等;
         
        ping命令:
            send ICMP ECHO_REQUEST to network hosts
            ICMP:Internet Control Message Protocol     
             
            ping  [OPTION]  destination
                -c #:发送的ping包个数;
                -w #:ping命令超时时长;
                -W #:一次ping操作中,等待对方响应的超时时长;
                -s #:指明ping包报文大小;
             
        hping命令: (package: hping3)
            send (almost) arbitrary TCP/IP packets to network hosts
             
                --fast
                --faster
                --flood
                -i uX
             
        traceroute命令:
            - print the route packets trace to network host
             
            跟踪从源主机到目标主机之间经过的网关;
             
        ftp命令:
            ftp: File Transfer Protocol
                 
                ftp服务命令行客户端工具;
                 
        lftp命令:
            lftp  [-p port]  [-u user[,pass]] [site]
             
            get, mget
            put, mput
            rm, mrm
             
        lftpget命令:
            lftpget [-c] [-d] [-v] URL [URL...]
                -c:继续此前的下载;
                 
        wget命令:
            The non-interactive network downloader.
             
            wget [option]... [URL]...
                -b:在后台执行下载操作;
                -q:静默模式,不显示下载进度;
                -O file:下载的文件的保存位置;
                -c:续传;
                --limit-rate=amount:以指定的速率传输文件;
  • 相关阅读:
    Java IO(三)
    Java IO(二)
    Java IO(一)
    Java操作属性文件与国际化
    Java集合详解二
    Java集合详解一
    Spring官方文档翻译(转)
    S2SH整合
    NX二次开发-UFUN获取图纸视图最大边界和视图中心点UF_DRAW_ask_view_borders
    已知两点计算直线的向量
  • 原文地址:https://www.cnblogs.com/demonzk/p/6297053.html
Copyright © 2020-2023  润新知