主机之间进行通信:路由
    Linux跨网网络通信需要路由:主机上的路由一般来说分为三类:主机路由、网络路由、默认路由
    Linux主机接入网络中需要配置的相关信息:IP/Mask、默认网关、DNS服务器
    Linux配置网络方式:
    动态指定:DHCP服务
    静态指定:临时/永久配置
    ifcfg系列工具:ifconfig/route/netstat等工具
    ip系列工具:ip {link route addr}/ss等工具
    修改配置文件:/etc/sysconfig/network-scripts/*
    CentOS7配置工具: nmcli
    IP地址查看及配置
    - ifconfig命令: net-tools软件包
    [root@test ~]# ifconfig —help
    Usage:
    ifconfig [-a] [-v] [-s] [[]

    ]
    查看所有网络接口配置信息:
    ifconfig -a
    查看指定网络接口配置:
    ifconfig [up|down]
    配置IP地址:
    ifconfig x.x.x.x/x up
    ifconfig x.x.x.x netmask x.x.x.x up
    [-]promisc 启动混杂模式(- 表示关闭)
    混杂模式:表示该主机能够接受所有流经网卡的数据包
    非混在模式:表示该主机的网卡只能够接受目的地址是自己的数据包
    开启: ifconfig promisc
    关闭: ifconfig -promisc
    route命令:
    查看内核路由信息:
    route -n
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.10.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
    Flags: 路由的标志位
    U:启用状态
    G: 表示默认网关
    H:主机路由
    手动添加路由: route add [-host|-net] gw dev
    主机路由:
    route add -host 172.16.0.1 gw 172.16.0.2 dev ens32
    网络路由:
    route add -net 172.16.0.0/16 gw 172.16.0.2 dev ens32
    默认路由:
    route add default gw 172.16.0.2
    删除路由:
    route del [-host|-net] gw dev
    删除主机路由:
    route del -host 172.16.0.1 gw 172.16.0.2 dev ens32
    删除网络路由:
    route del -net 172.16.0.0/16 gw 172.16.0.2 dev ens32
    删除默认路由:
    route del default gw 172.16.0.2

    DNS指定:
    配置文件: /etc/resolv.conf
    nameserver DNS_SERVER_1
    nameserver DNS_SERVER_2
    网卡配置文件中:
    DNS1=x.x.x.x
    DNS2=x.x.x.x
    正向解析: 域名->IP地址
    netstat命令:查看网络连接状态
    network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    网络连接 路由表信息 接口统计 伪装连接 组播成员关系
    常用参数:
    -t : 显示tcp协议相关
    -u :显示udp协议相关
    -w :显示raw socket相关(混在模式收到的相关数据包)
    -l :显示处于Listen状态连接
    -a :显示所有状态的连接
    -n :以数字显示IP地址和端口号
    -p :显示相关进程及PID
    -e :扩展格式显示
    显示路由表:netstat -rn
    -r: 显示内核路由表信息
    显示接口统计信息: netstat -i | netstat -I
    -i:显示接口统计信息
    -I:显示指定接口信息
    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
    ens34 1500 4587 0 0 0 2745 0 0 0 BMRU

    ifup/ifdown 用来启用/禁用一个接口 -> 要有该接口的相关配置文件
    ethtool 显示接口设备属性
    ethtool -S 显示接口设备的统计数据
    ip命令:
    ip link:网络设备配置
    ip link set [interface]
    [up|down] 激活或禁用指定端口
    multicast [on| off] 开启或关闭接口组播功能
    name 重名命接口
    mtu 设置MTU值
    netns [PID|Name] 将接口移至指定的命名空间中

    ip link show 显示所有接口信息
    ip link show 显示指定接口信息
    ip link show up 仅显示处于up状态的接口
    ip address: 协议地址管理
    ip address show 查看所有设备IP地址信息
    dev 查看指定设备的IP地址信息
    label 查看指定设备的标签
    dev primary 查看指定设备主IP
    ip address [add | del] IPADRESS dev
    ip address add x.x.x.x/x dev ens32 [broadcase x.x.x.x | label ens32:1] 配置IP地址
    ip address add x.x.x.x/x dev ens32 scope [global|link|host] 指定作用域
    global 全局可用
    link 仅链接可用(同一广播域通信)
    host 本机可用(只能跟自己通信)

    ip address flush dev 清空指定设备的所有IP地址


    ip route:网络路由配置
    ip route add
    x.x.x.x/x via x.x.x.x dev 网络路由
    x.x.x.x via x.x.x.x dev 主机路由
    default x.x.x.x/x via x.x.x.x dev 默认路由
    src x.x.x.x 添加路由时可以指定源IP地址
    ip route change|replace x.x.x.x/x via x.x.x.x
    dev 修改路由信息
    ip route delete x.x.x.x/x 删除指定路由
    ip route show 查看路由信息
    ip route get x.x.x.x/x 查看指定路由相信信息
    ip route flush 清空所有路由
    ip route flush x.x.x.x 清空指定路由
    ss命令: 显现socket连接状态
    常用参数:
    -t: tcp
    -u: udp
    -w:raw socket
    -x: unix socket
    -l: Listen
    -a: all
    -n: number形式
    -p: Pid
    -m: memory
    -o: timer
    -e: 扩展格式

    指定过滤器状态查看:
    -F, —filter=FILE read filter information from FILE
    FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
    STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
    # 指定TCP状态: TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
    connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
    synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
    bucket := {syn-recv|time-wait}
    big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
    [root@test ~]# ss -tan state connected
    State Recv-Q Send-Q Local Address:Port Peer Address:Port
    ESTAB 0 0 192.168.10.128:22 192.168.10.1:62607
    ESTAB 0 52 192.168.10.100:22 192.168.10.1:62694
    [root@test ~]# ss -tan state established
    Recv-Q Send-Q Local Address:Port Peer Address:Port
    0 0 192.168.10.128:22 192.168.10.1:62607
    0 52 192.168.10.100:22 192.168.10.1:62694
    [root@test ~]# ss -tan state closing
    Recv-Q Send-Q Local Address:Port Peer Address:Port
    指定表达式:
    dport = :22
    sport = :1110
    ss ‐tan sport = :22 显示源端口为22的连接
    ss ‐tan dport = :51471 显示目的端口为51417的连接
    ss ‐tan dport = :51471 or sport = :22 显示目的端口为51417或源端口为22的连接
    ss ‐tan dport = :51471 and sport = :22 显示目的端口为51417且源端口为22的连接
    IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-Interface_Name
    路由相关的配置文件(默认没有须手动创建):/etc/sysconfig/network-scripts/route-Interface_Name
    /etc/sysconfig/network-scripts/ifcfg-IFACE:
    DEVICE=eth0 此配置文件应用到的设备
    HWADDR=00:0C:29:3F:16:62 对应的设备的MAC地址
    BOOTPROTO=static 激活此设备时使用的地址配置协议(dhcp, static, none, bootp)
    NM_CONTROLLED=no NM是NetworkManager的简写,此网卡是否接受NM控制;CentOS6建议为”no”
    ONBOOT=yes 在系统引导时是否激活此设备
    TYPE=Ethernet 接口类型,常见有的Ethernet, Bridge
    UUID=6f404499-c071-4191-a5bd-fc29d8008783 设备的惟一标识
    IPADDR=192.168.10.1 指明IP地址
    NETMASK=255.255.255.0 子网掩码
    GATEWAY=192.168.10.254 默认网关
    DNS1=202.96.134.133 第一个DNS服务器指向
    DNS2=114.114.114.114 第二个DNS服务器指向
    USERCTL=no 普通用户是否可控制此设备
    PEERDNS=yes 如果BOOTPROTO的值为”dhcp”,是否允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件中
    /etc/sysconfig/network-scripts/route-IFACE <指定网卡>
    两种风格:两种不能混用,只能固定使用其中某一种
    第一种:TARGET via GW
    192.168.0.0/24 via 192.168.10.254
    第二种:每三行定义一条路由
     ADDRESS#=TARGET
     NETMASK#=mask
     GATEWAY#=GW
     ADDRESS0=192.168.0.0
     NETMASK0=255.255.255.0
     GATEWAY0=192.168.10.254
    重启网络服务: systemctl restart network
    给网卡配置多地址:配置子接口
    a) ifconfig eth0:0 192.168.0.1/24
    b) ip addr add 192.168.0.1/24 dev eth0 label eth0:0
    配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0:0
    DEVICE=eth0:0 # 注意:网卡别名不能使用dhcp协议引导


    Linux网络属性配置工具tui(text user interface):
    system-config-network-tui,也可以使用setup命令调用system-config-network-tui;注意:记得重启网络服务方能生效;
    修改当前主机的主机名:
    hostname [HOSTNAME] 临时修改 | hostnamectl set-hostname 永久修改
    配置文件:/etc/sysconfig/network :HOSTNAME=New_Name
    主机名解析:/etc/hosts
    127.0.0.1 New_Name
    网络接口识别并命名相关的udev配置文件:可以用于修改网卡的设备名称,不过要重新装载网卡驱动生效
    /etc/udev/rules.d/70-persistent-net.rules
    lsmod 查看内核装载的模块
    卸载网卡驱动:modprobe -r e1000
    装载网卡驱动:modprobe e1000
    nmcli [ OPTIONS ] OBJECT { COMMAND | help }
    device - show and manage network interfaces
     nmcli device status 查看所有网卡状态
     nmcli device show 查看所有网卡信息
     nmcli device show eth0 查看指定网卡信息
     nmcli device connect eth0 连接指定网卡
     nmcli device disconnect eth0 断开指定网卡
    connection - start, stop, and manage network connections
     nmcli connection show 查看所有设备连接信息
     nmcli c show eth0 查看指定设备详细信息
    如何修改IP地址等属性:
    #nmcli connection modify IFACE [+|-]setting.property value
     nmcli c modify eth0 ipv4.addresses 192.168.1.1/24
     nmcli c modify eth0 ipv4.gateway 192.168.1.254
     nmcli c modify eth0 ipv4.dns1 202.96.134.133
     nmcli c modify eth0 ipv4.method manual  指定网络信息获取方式,这里为手动指定
    网络配置tui工具:nmtui
    网络客户端工具:lftp, ftp, lftpget, wget
     # lftp [-p port] [-u user[,password]] SERVER
    子命令:
    get 下载单个文件
    mget 下载多个文件
    ls 显示当前目录文件
    help 显示帮助信息
     # lftpget URL 直接跟URL地址下载文件到当前目录
    # ftp 传统的ftp客户端工具,能用lftp就不用这个
    # wget | curl
    wget [option]… [URL]…
    -q 静默模式
    -c 断点续传
    -O 指定下载到指定路径
    —limit-rates= 限制传输速率