Linux网络属性配置相关命令:

前言:

Linux网络属性配置相关命令_linux 网络属性配置

Linux属性配置可以分为两类。一类通过命令配置,另一类通过修改配置文件配置。


Linux属性配置的相关命令可以分为三大类

一、ifcfg命令家族:①ifconfig,②route,③netstat,④hostname

       ①ifconfig命令:主要负责接口及地址查看和管理

       ifconfig [INTERFACE]

                        #ifconfig -a:显示所有接口,包括inactive状态的接口。(包括激活和未激活的接口):

         Linux网络属性配置相关命令_linux 网络属性配置_02

如图所示,-a选项将会显示所有接口,包括没有激活的接口,如果不使用-a只会显示已经激活的接口,

         Linux网络属性配置相关命令_linux 网络属性配置_03

        ifconfig INTERFACE [aftype] options | address ...(用于完成地址等相关配置的命令)

                 # ifconfig  INTERFACE  IP/MASK  [up|down]

                   ifconfig  INTERFACE  IP  netmask  NETMASK配置接口的地址、掩码并能激活或                                                                                                        者关闭该接口

   Linux网络属性配置相关命令_linux 网络属性配置_04

    如图所示,通过该命令设置eth1接口的ip地址和子网掩码(255.255.255.0)并激活之,也可以使用

 ~]# ifconfig eth1 192.168.61.1 netmask 255.255.255.0 up命令行同样可以修改,netmask不能使用长度表示,只能使用完整格式。

                         options:

                               [-]promisc:混杂模式

                   (注:立 即送往内核中的TCP/IP协议栈,并生效) 

          ②route命令:路由查看及管理

                路由条目类型:

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

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

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

                查看路由:       

                               route -n(不使用-n选项表示反解地址为主机名,增加-n选项只显示数字                                                              格式,不进行反解,增加效率) 如图:

Destination表示目标网络,Geteway表示下一跳网关地址(0.0.0.0表示无需网关,目的地和主机在同一个网络中),Genmask表示目标掩码,Flags表示路由条目的标志,Metric,度量值。Iface:经过本地的接口。

        Linux网络属性配置相关命令_linux 网络属性配置_05

                 添加路由条目:

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

      添加的下一跳地址要和本地的某块网卡在同一网络中,dev可以省略,系统会自动判断接口如图:

   Linux网络属性配置相关命令_linux 网络属性配置_06

   Linux网络属性配置相关命令_linux 网络属性配置_07

添加默认网关:

                   route add -net 0.0.0.0/0.0.0.0 gw 192.168.61.1

                  删除路由条目:

                               route del [-net][-host] target [gw GW][netmask NETMASK][[DEV]IF]

    

              删除目标地址为10.0.0.0掩码为255.0.0.0的路由条目:

        Linux网络属性配置相关命令_linux 网络属性配置_08

          

    netstat命令

                        显示路由:netstat -rn(于route -n效果相似,默认字段有所不同)

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

Linux网络属性配置相关命令_linux 网络属性配置_09

-u:UDP相关的连接

-w:raw socket相关的连接

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

Linux网络属性配置相关命令_linux 网络属性配置_10

-a:所有状态

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

-e:扩展格式

Linux网络属性配置相关命令_linux 网络属性配置_11

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

   常用组合:

                              -tan :显示所有状态的tcp协议链接,并用数字格式显示ip和port

Linux网络属性配置相关命令_linux 网络属性配置_12

                            -uan:处于所有状态的udp协议连接,并用数字格式显示ip和port,也可使用-tuan显示所有状态的tcp和udp链接。

Linux网络属性配置相关命令_linux 网络属性配置_13

                            -tnl:显示处于监听状态的tcp协议的连接,并用数字格式显示ip和port

Linux网络属性配置相关命令_linux 网络属性配置_14

                           -unl:显示处于监听状态的udp协议的连接,并用数子格式显示其ip和port

Linux网络属性配置相关命令_linux 网络属性配置_15

                         -tunlp:显示处于监听状态的tcp协议和udp协议并显示相关的进程及PID(进程号),并用数字格式显示其ip和port

Linux网络属性配置相关命令_linux 网络属性配置_16

           传输层协议:

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

           (udp:无连接协议,直接发送数据报文)

                           

             显示接口的统计数据   :

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

                          显示所有接口的相关数据netstat -i,  如图:

Linux网络属性配置相关命令_linux 网络属性配置_17

                           显示指定接口的相关数据:netstat -I<IFACE>(-I和接口名称之间不能有空格),

Linux网络属性配置相关命令_linux 网络属性配置_18

                          ifup/down命令:启动或禁用接口。

                                      if{up|down} dev  

     Linux网络属性配置相关命令_linux 网络属性配置_19

     (注:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置。)

   

                ④hostname命令:配置主机名称。

                                       hostname:查看主机名

             Linux网络属性配置相关命令_linux 网络属性配置_20

                                       hostname HOSTNAME:配置主机名

            Linux网络属性配置相关命令_linux 网络属性配置_21

                               (注:使用此命令只对当前系统有效,重启后无效)

 可以更改配置文件:/etc/sysconfig/network,不会立即生效,重启后有效,永久有效。


二:iproute命令家族:

           ①  ip命令ip [OPTIONS]OBJECT{COMMAND|HELP}

                      OBJECT:= { link |addr | route }

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

                              ip  OBJECT

                               ip link network device configuration(网络接口配置信息)        

                               ip link  set - change device  attributes(改变网络属性)

                               dev NAME (default):指明要管理的设备,dev关键字可省略;

                               updown:启用和禁用

              启用eth1接口如图:

Linux网络属性配置相关命令_linux 网络属性配置_22

                               multicast onmulticast off:启用或禁用多播功能;

                                       启用eth1接口多播功能,如图:

    Linux网络属性配置相关命令_linux 网络属性配置_23

    Linux网络属性配置相关命令_linux 网络属性配置_24


                                name NAME:重命名接口

 重命名eth1接口名称为tzzz(改动之前要先禁用该接口)如图:

    Linux网络属性配置相关命令_linux 网络属性配置_25

    Linux网络属性配置相关命令_linux 网络属性配置_26


                   mtu NUMBER:设置MTU的大小,默认为1500

                                                           

                                    ip link show- display device attributes(显示接口属性)

                      如图 :

Linux网络属性配置相关命令_linux 网络属性配置_27

                                             

                                       ip  link help显示简要使用帮助;

                      如图:

     Linux网络属性配置相关命令_linux 网络属性配置_28


            

                           ip address - protocol address management.(ip管理)

                                   ip address show - look at protocol addresses(查看ip地址)

                                 ip  address  show  [IFACE]:显示接口的地址;

Linux网络属性配置相关命令_linux 网络属性配置_29

                           ip address add - add new protocol address:添加新的ip地址

                                                 ip  address  add  IFADDR  dev  IFACE

Linux网络属性配置相关命令_linux 网络属性配置_30

Linux网络属性配置相关命令_linux 网络属性配置_31

                            [label NAME]:为额外添加的地址指明接口别名;(不添加别名,                                                                                           使用ifconfig命令无法查出)

   Linux网络属性配置相关命令_linux 网络属性配置_32

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

                           ip address delete - delete protocol address(删除ip地址)

                                   ip address  delete  IFADDR  dev  IFACE 

    Linux网络属性配置相关命令_linux 网络属性配置_33

                                  ip address flush - flush protocol addresses(删除接口的所有ip地址)

                                            ip  address  flush  dev  IFACE

Linux网络属性配置相关命令_linux 网络属性配置_34


                          ip route - routing table management(路由表管理)

                                 ip route show - list routes(显示路由条目)

                                                   TYPE PRIFIX  

Linux网络属性配置相关命令_linux 网络属性配置_35

                           ip route add - add new route(增加路由条目)

                                  ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]             

Linux网络属性配置相关命令_linux 网络属性配置_36

                         注:当接口有多个ip地址时可使用src指定ip来源,否则默认为主ip

                         ip route delete - delete route

                         ip  route  del  TYPE PRIFIX 

删除192.168.0.0的路由条目

                 Linux网络属性配置相关命令_linux 网络属性配置_37

                        ip route flush - flush routing tables

                            ip route flush(删除所有路由条目)

                        

                        ip route get - get a single route(显示指定路由条目的详细信息)

                             ip  route  get  TYPE PRIFIX

                       Linux网络属性配置相关命令_linux 网络属性配置_38

      ②ss命令:(类似于netstat命令)            

                        ss  [options]  [ FILTER ]

     选项:

                        -t:TCP协议的相关连接

                         -u:UDP相关的连接

                         -w:raw socket相关的连接

                         -l:监听状态的连接

                          -a: 所有状态的连接

                           -n:数字格式

                         -p:相关的程序及其PID

                         -e:扩展格式信息

                          -m:内存用量

                          -o:计时器信息

Linux网络属性配置相关命令_linux 网络属性配置_39

                  FLTER :(过滤器)= [ state TCP-STATE ]  [ EXPRESSION ]只看某种状态的连接

                                        TCP的常见状态(TCP FSM):

                                                                     LISTEN

                                                                     ESTABLISEHD

                                                                      FIN_WAIT_1

                                                                     FIN_WAIT_2

                                                                     SYN_SENT

                                                                     SYN_RECV

                                                                     CLOSED

Linux网络属性配置相关命令_linux 网络属性配置_40

                    EXPRESSION

                                               dport = (目标端口)

                                               sport = (源端口)

Linux网络属性配置相关命令_linux 网络属性配置_41                                           (注意空格的使用)



以上提到的修改网络属性的相关命令都是在当前系统上有效,如果想要永久有效需要修改配置文件来配置网络属性,修改配置文件将会永久有效。


通过修改配置文件来配置网络属性:


配置文件:

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

            IFACE:接口名称

如图,每个接口都有相应的配置文件

Linux网络属性配置相关命令_linux 网络属性配置_42  


通过大量参数来定义借口的属性:

  其可通过vim等文本编辑器直接修改配置文件,也可使用专用的命令进行修改,CentOS6上使用setup命令,CentOS7上使用nmtui命令。



ifcfg-IFACE配置文件参数:

Linux网络属性配置相关命令_linux 网络属性配置_43

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(CentOS7)


注:配置文件修改之 后,如果要生效,需要重启网络服务。

                        CentOS6:service network restart

        CentOS 7:systemctl  restart  network.service


如果想要是用非默认网关路由,需要修改配置文件

              /etc/sysconfig/network-scripts/route-IFACE

 

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

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

TARGET  via  GW

          Linux网络属性配置相关命令_linux 网络属性配置_44

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

ADDRESS#=TARGET

NETMASK#=MASK

GATEWAY#=NEXTHOP

          Linux网络属性配置相关命令_linux 网络属性配置_45

           #表示可以配置多个路由的条目

给接口配置多个地址:

ip addr之外,ifconfig或配置文件都可以;

(1) ifconfig  IFACE_LABEL  IPADDR/NETMASK

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

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

DEVICE=IFACE_LABEL

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

static, none



上文提到为接口添加多个ip地址的方法:ip address add命令和修改配置文件之外

使用ifconfig命令也可以添加多个ip地址,给接口添加多个标签就能添加多个ip地址:

         (1) ifconfig  IFACE_LABEL  IPADDR/NETMASK

             IFACE_LABEL :例: eth0:#

            (注:该方式只在当前系统上有效重启后无效)

        (2)为别名添加配置文件(重启后也有效)      

                        DEVICE=IFACE_LABEL

BOOTPROTO:不能为dhcp,网上别名不支持动态获取地址;为static,none,需要使                                                   用IPADDR定义ip

                      

总结:在网络运维中要经常使用到网络属性管理工具,所以熟练掌握很有必要,其中ifconfig命令历史最为悠久,功能也非常好用,但会被ss命令所替代,ss命令几乎涉及到了ifconfig的所有命令,查看所有接口的信息可以使用ss命令,管理ip地址使用ip address命令,管理路由的属性可以使用route命令。