一、Linux网络属性配置

 1.Linux主机接入到网络方式

    IP/NETMASK:实现本地网络通信

    路由(网关):可以进行跨网络通信

    DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地址

    当第一个地址本身挂了,才会查找其备用地址;若第一个地址无法解析则停止

  

 2.网络属性配置方式

   (1)静态指定

    ①命令方式

    ifcfg系列命令:

    ifconfig:配置IP,NETMASK

    route:配置路由相关信息

    netstat:状态及统计数据查看

    iiproute2系列命令:

    ip OBJECT:

    addr:地址和掩码

    link:接口

    route:路由

    ss:状态及统计数据查看

    CentOS 7:nm(Network Manager)家族

    nmcli:命令行工具

    nmtui:text window 工具

    hostname/hostnamectl:主机名配置

    ② 配置文件:

    RedHat及相关发行版:/etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME

    DNS服务器指定配置文件:/etc/resolv.conf

    本地主机名配置文件:/etc/sysconfig/network

   注:命令配置能及时生效,但时关闭当前进程之后配置失效,为一次性配置方式

  通过配置文件配置网络属性,无法立即生效,需要重启服务、重新加载配置文件或者重启进程

  

   (2)动态分配:依赖于本地网络中有DHCP服务

     DHCP:Dynamic Host Configure Procotol, 动态主机配置协议,此时不能固定IP地址

 

 3.网络接口命名

   (1)传统命名

   以太网:eth#,例如eth0, eth1, ...

   PPP网络:ppp#, 例如,ppp0, ppp1, ...

  (2)可预测命名方案(CentOS 7)

   支持多种不同的命名机制,根据Fireware, 拓扑结构等信息自动配置

   1)Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2, ...

   2)Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...

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

   4) 如果用户显式定义,也可根据MAC地址命名,例如eno16777736(十六进制MAC), ...

   5)上述均不可用,则仍使用传统方式命名;

 (3)命名格式的组成

    en:ethernet,表示因特网网卡接口

    wl:wlan,表示无线网网卡接口

    ww:wwan,Wireless Wide Area Network,表示无线广域网网卡

 (4)名称类型:

    o:集成设备的设备索引号;

    s:扩展槽的索引号;

    x:基于MAC地址的命名;

    ps:基于总线及槽的拓扑结构进行命名;


二、ifcfg系列:fconfig, route, netstat

   1.ifconfig:配置查看网络接口,默认不能显示第二地址,只能显示主地址

    指明标签(接口别名)就能够显示了


   (1)ifconfig[INTERFACE] 默认只会显示**状态的网卡信息

         # ifconfig -a:显示所有接口,包括inactive非**状态接口;

注意:CentOS 6和CentOS 7显示结果有所不同

    CentOS 7 显示含义解析:

     eno1677736:网卡接口名称:

     flags:标志位,UP表示网卡启用**状态

     mtu:maximum transmission unit,网卡最大传输单元为1500字节

     inet:IPv4地址; netmask:子网掩码; broadcast:广播地址

     inet6:IPv6地址

     HWaddr :以太网地址,对应于CentOS 6中的HWaddr硬件地址

     txqueuelen 1000 (Ethernet):以太网传输队列长度

    RX packets 7526 bytes 631299 (616.5 KiB):此次网卡**后接搜到的报文数量,总大小

    RX errors :接收时错误的个数;dropped:丢包个数;overruns:溢出个数; frame:帧

    TX packets 162 bytes 18461 (18.0 KiB):传输的报文数量

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0:传输的错误、丢包、溢出、帧

    

     Linux网络属性配置命令

 

 CentOS 6显示含义解析

  eh0:网卡接口,其表现形式和CentOS 7有很大区别

  HWaddr 00:0C:29:11:75:E7硬件地址

    

     Linux网络属性配置命令


(2)ifconfig[-v] interface [aftype] options | address … 更改网卡IPv4地址

    立即送往内核中的TCP/IP协议栈,并生效,远程连接修改,原来的地址会没有导致掉线

    # ifconfigINTERFACE IP/MASK

    # ifconfig INTERFACE IP netmask NETMASK :用netmask关键字

    options: ifconfig INTERFACE OPTIONS

    [-]promisc:混杂模式,-表示关闭混杂模式,直接加表示进入混杂模式

    … …

    管理IPv6地址:add|del addr/prefixlen

(3)启用/关闭网卡

 1)# ifconfig INTERFACE up|down

  Linux网络属性配置命令

 

 2)ifup/ifdown命令:

注意:此命令是通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

(4)删除指定接口网卡 的地址:

# ifconfig INTERFACE 0

  Linux网络属性配置命令


2.route命令:路由查看及管理

    路由条目类型(三种):

    主机路由:目标地址为单个IP;

    网络路由:目标地址为IP网络;

    默认路由:目标为任意网络,0.0.0.0/0.0.0.0

 (1)查看:

    -n: 表示以数字形式显示信息,不反向解析地址和端口号

   

  Linux网络属性配置命令

   显示解析:

    Destination:目标地址

    Gateway:下一跳网管地址

    0.0.0.0:表示本地主机的网络地址,自己的主机就在网络上无需网关,直连路由,

    Genmask:目标网络的掩码地址

    Flags:路由条目的标志

       U (route is up):up,表示启用状态

       H (target is a host):目标地址是一个主机地址

       G (use gateway):使用一个网关

       R (reinstate route for dynamic routing):为路由恢复动态路径选择

       D (dynamically installed by daemon or redirect)

       M (modified from routing daemon or redirect)

       A (installed by addrconf)

       C (cache entry)

       ! (reject route)

       G:表示是一个网关,但不一定是目标网关,只有目标地址是0.0.0.0的才是默认网关

    Metric:度量值,表示到达这个网络中间要进过的开销

    Ref:Number of references to this route. (Not used in the Linux kernel.)

    Use:Count of lookups for the route

    Iface:通过本主机的哪块网卡接口对发送数据

(2)添加:

    route add [-net|-host] target [netmask Nm] [gw GW] [dev] If]

    -net|-host :网络路由| 主机路由,默认路由为网络路由

    target [netmask Nm] :目标地址,可以用简写子网掩码格式,也可以用关键字netmask完整格式

    [gw GW] :gw为关键字,GW表示真正的下一跳地址

    下一跳必须与自己的某块网卡在同一网段内,且存在

    [dev] If]:进由哪块网卡,可以省略,能自动判断


示例:

route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1


(3)删除:

  route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

  示例: route del -net 10.0.0.0/8 gw 192.168.10.1


Linux网络属性配置命令


3.netstat命令:查看网络状态及统计数据,显示网络连接、路由表、接口连接、伪装连接和多播成员关系

(1)显示路由表:

    -r:显示内核路由表

    -n:以数字形式显示信息,不反向解析地址

    Linux网络属性配置命令

(2)显示网络连接信息:(常用组合:-tan, -uan, -tnl, -unl, -tunlp)

    -t,--tcp:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);

    通信开始之前,要建立一个虚链路;通信完成后还要拆除链接

    -u,--udp:UDP相关的连接;无连接的协议;直接发送数据报文

    -w:raw socket裸套接字相关的连接

    -l:处于监听状态的连接

    -a:所有状态的连接

    -n:以数字格式显示IP和Port;

    -e:扩展格式

    -p:显示相关的进程及PID;

 Linux网络属性配置命令

tcp状态:LISTEN、ESTABLISEHD、FIN_WAIT_1等待状态、FIN_WAIT_2、SYN_SENT、SYN_RECV、CLOSED

注意:传输 层协议区别(TCP|UDP)

    tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;

    udp:无连接的协议;直接发送数据报文;


(3)显示接口的统计数据:

netstat {--interfaces|-I|-i} [iface][--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]


netstat -i:所有接口

Linux网络属性配置命令

Linux网络属性配置命令


4.配置主机名hostname/hostnamectl命令:

  (1)hostname

    查看:hostname

    配置:hostname HOSTNAME,当前系统有效,重启后无效;

  (2)hostnamectl命令(CentOS 7):该命令会直接修改配置文件生效

    hostnamectl status:显示当前主机名信息;

    hostnamectl HOSTNAME:设定主机名,永久有效

    Linux网络属性配置命令

三、iproute系列:ip、ss

iproute2系列和内核关系紧密,直接放置到内核生效,其版本号和内核的版本号会保持一致


 Linux网络属性配置命令


 Linux网络属性配置命令


1.ip命令:show / manipulate routing, devices, policy routing and tunnels 策略路由、隧道、路由、设备

  ip [ OPTIONS ] OBJECT { COMMAND | help }

     OBJECT := { link | addr | route | netns }

    注意: OBJECT可简写,各OBJECT的子命令也可简写;

(1)iplink:network device configuration,网络设备配置

    1)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,用于将接口移动到指定的网络名称空间;

  2)ip link show/list :display device attributes,显示设备属性

实例:

修改eth1名称,注意在修改前要先停用

[[email protected] ~]# ip link set lo down

[[email protected] ~]# ip link set lo name ethtest

[[email protected] ~]# ip link show

Linux网络属性配置命令

 3)ip link help:显示简要使用帮助

Linux网络属性配置命令

(2)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中运行命令


(3)ip address: protocol address management. 协议地址管理

   1)ip address add :add new protocol address,增加新的协议地址

    ip addr add INTERFACEADDR dev INTERFACE

    [label NAME]:为额外添加的地址指明接口别名;

    [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;

    [scope SCOPE_VALUE]:范围变量

    global:全局可用;

    link:接口可用;

    host:仅本机可用;

Linux网络属性配置命令

2)ip address delete :delete protocol address,删 除协议地址

3)ip address show:look at protocol addresses,查看协议地址

 # ip addr list [IFACE]:显示接口的地址;

Linux网络属性配置命令

4)ip address flush:flush protocol addresses,删 除指定接口上所有的的地址

 # ip addr flush dev IFACE

Linux网络属性配置命令

(4)ip route :outing table management,管理路由表

   1)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

   2)ip route delete - delete route

    ip route del TYPE PRIFIX

   3)ip route show - list routes

   4)ip route flush - flush routing tables

   5)ip route get - get a single route

    ip route get TYPE PRIFIX

2.ss命令:查看网络状态及统计数据 ss [options] [ FILTER ]

(1)[OPTION]:

    -t:TCP协议的相关连接

    -u:UDP相关的连接

    -w:raw socket相关的连接

    -l:监听状态的连接

    -a:所有状态的连接

    -n:数字格式

    -p:相关的程序及其PID

    -e:扩展格式信息

    -m:内存用量

    -o:计时器信息

Linux网络属性配置命令


(2)FILTER := [ state TCP-STATE ] [ EXPRESSION ] 状态过滤功能

可以过滤端口、状态等信息来查看

    EXPRESSION:

    dport =

    sport =

示例:

   ~]# ss -tan '( dport = :22 or sport = :22 )'

    ~]# ss -tan state ESTABLISHED

 Linux网络属性配置命令


五、配置文件:

 1.IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

    ifcfg-IFACE:实际接口名称;

Linux网络属性配置命令

(1)vim编辑配置文件

  配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性,可直接修改

 1)fcfg-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服务来控制接口


2)管理网络服务:

  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


(2)专用的命令的进行修改

  CentOS 6:system-config-network (setup)


  ~]# setup

Linux网络属性配置命令


~]# system-config-networkLinux网络属性配置命令



CentOS 7: 

  ~]# nmtuiLinux网络属性配置命令

2.路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE

 用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE

 支持两种配置方式,但不可混用;

   (1) 每行一个路由条目: TARGET via GW

   (2) 每三行一个路由条目:

        ADDRESS#=TARGET

        NETMASK#=MASK

        GATEWAY#=NEXTHOP

3.给接口配置多个地址

  (1)ip addr add INTERFACEADDR dev INTERFACE label LABELNAME

  (2)ifconfig IFACE_LABEL IPADDR/NETMASK

     IFACE_LABEL: eth0:0, eth0:1, ...

  (3)为别名添加配置文件;

    DEVICE=IFACE_LABEL

    BOOTPROTO:网上别名不支持动态获取地址;

    static, none

4.hostname配置文件:/etc/sysconfig/network

  命令:HOSTNAME=

注意:此方法的设置不会立即生效; 重读配置文件或者重启系统后后会一直有效;

5.配置DNS服务器指向:

 配置文件:/etc/resolv.conf,添加 nameserver DNS_SERVER_IP

6./etc/hosts 别名,名称解析,事先生效,先查看此文件。