【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:以指定的速率传输文件; 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号