一、配置方式概述

1)使用命令配置(临时有效)

   1ifcfg系列命令

1)ifconfig:配置ip,NETMASK

2)route:路由

3)netstat:网络状态及统计数据查看

   2iproute系列:

     1ip OBJECT

        此处的OBJECT可为:

         addr:地址和掩码

          link:接口

            route:路由

     2ss:网络状态及统计数据查看

2)配置文件配置(永久生效)

   1、配置网络地址等编辑文件/etc/sysconfig/network-scripts/ifcfg-DEVICE_NAME(大写处替换为具体的网卡名)

   2、要指定DNS服务器一般编辑配置文件/etc/resolv.conf

   3、主机名配置(本地主机名):编辑配置文件/etc/sysconfig/network

   注:在CentOS 7中可使用homenamectl命令,此命令是直接写入配置文件,所以是永久生效。

 

二、ifcfg系列命令

1ifconfig命令:接口及地址查看和管理

显示:ifconfig [interface]

        # ifconfig eth0

配置IP地址:ifconfig interface [aftype] options | address …

注:此处的interface是指网卡设备名,如eth0;ip即点分十进制的表示;而子网掩码可以给出255.255.0.0或者是16(长度)的格式;up和down分别表示启用或者禁用此网卡。

# ifconfig interface ip/netmask [up|down]

#ifconfig interface ip netmask [up]

    # ifconfig eth0 192.168.1.100/24 up
    # ifconfig eth0 192.168.1.100 255.255.255.0 up

 注意:此处亦可使用单独的ifup DEVICE_NAME 和 ifdown DEVICE_NAME来启用和禁用网卡。

 选项:

[-]promisc:混杂模式生效与否;有-表示不生效(以下类同)

   注:混杂模式即值接收来自互联网的任何类型的报文。

[-]arp:是否允许地址解析

[-]allmutilcast:是否允许组播或多播

注意:立即送往内核,并生效;但是下次重启失效。

管理IPv6地址

options

addaddr/prefixlen

deladdr/prefixlen

注:此处的prefixlen即指子网掩码长度。

    # ifconfig eth0 inet6 add2001:da8:207::9402

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

1)路由条目类型:

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

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

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

2)查看当前路由信息:

-n:表示不解析端口和主机为名称,直接显示为IP地址

    # route -n

     3)添加路由条目:

   add [-net|-host] target [netmask Nm] [gwGw] [[dev] IfACE]

例如:

    要到10.0.0.0地址要经过192.168.10.1通过自己的eth1接口
    # routeadd -net 10.0.0.0/8 gw 192.168.10.1 dev eth1
    添加默认路由
    # routeadd -net 0.0.0.0/0.0.0.0 gw 172.16.0.1
    # routeadd default gw 172.16.0.1

4)删除路由条目:

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

示例:

    #  routedel -net 10.0.0.8 gw 192.168.10.1 #删除一条路由
    #  routedel default #删除默认路由

3netstat命令

1)显示路由表信息:

netstat -rn

-r: 显示内核路由表

-n:数字格式

    #  netstat -rn
    Kernel IP routing table
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
        172.16.0.0      0.0.0.0         255.255.0.0     U     1      0        0 eth0
        192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
        0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0

2)显示网络连接:

netstat[OPTION]

1)选项

  -t:TCP协议相关连接,连接均有其状态。

      -u:UDP相关的连接

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

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

  -n:以数字方式显示地址和端口,不需要解析为名称

  -e:扩展格式,多余显示用户ID和相关套接字文件的inode

  -p:显示相关进程及PID

    2)常用组合:

    -tan(显示所有tcp连接)

# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:34296               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      
tcp        0      0 192.168.1.6:22              192.168.1.106:52900         ESTABLISHED 
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 :::56182                    :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:6010                    :::*                        LISTEN

    -tn(仅显示处于连接状态的tcp连接)

# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0     52 192.168.1.6:22              192.168.1.106:52900         ESTABLISHED

    -tnl(显示处于监听状态的tcp连接)

# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:34296               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 :::56182                    :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:6010                    :::*                        LISTEN

      -tunlp(处于监听状态的TCP和UDP连接并显示调用它们的进程和PID)

# netstat -tunlp

wKioL1Z_pgyh4zhbAABGyuotoxM591.png

  4、hostnamehostnamectlCentOS 7))配置主机名 

    1)查看:hostname

    2)配置:hostname HOSTNAME

    注:当前系统有效,重启后无效;

    3)hostnamectl命令:

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

        hostnamectl set-hostname:设定主机名,永久有效

    4)编辑配置文件:/etc/sysconfig/network

HOSTNAME=<hostname>

永久有效

  5、配置DNS服务器指向

    配置文件:/etc/resolv.conf

                                    nameserver DNS_SERVER_IP ---->(DNS服务器的地址)

                 注意:ping 地址解析是先找/etc/hosts,然后再找/etc/resolv.conf上的dns服务器查询。

二、iproute2系列命令

  1、ip命令

   用途:查看或管理路由、网卡设备、策略路由和隧道

   使用格式:ip [ OPTIONS ] OBJECT { COMMAND | help }

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

   注意:OBJECTCOMMAND都能简写,可被唯一识别即可。

   例如:ip addr li等同于ip address list。  

  1ip link:网络设备配置

                    子命令

        set:修改设备属性

           dev NAMEdefault)即dev也可不写

            up and down:启用或者禁用设备

           multicast on or multicast off:启用或禁用多播(组播)功能

           name:重命名接口名称;注意:一般重命名需先禁用设备再改

           mtu NUMBER:设置MTU的大小,以太网是1500

           netns PID: nsnamespace,用于将接口移动到指定的名称空间;基于此机制可以构建一个大

                的内部网络(虚拟网络)

        show|list:显示设备属性。 wKioL1Z_rTejRdZ6AAAR2h5wSEM572.png  2ip netns:管理网络名称空间 

        ip netns list

        ip netns add NAME:创建指定的netns

        ip netns del NAME:删除指定的netns

        ip netns exec NAME COMMAND:在指定的netns中运行命令

  (3ip address:协议地址管理

     子命令:

        1)ip addr add [ local ] IFADDR dev IFACE

            [label NAME]:为接口额外的地址指明标签

            [broadcast ADDRESS]:广播地址;会根据IPNETMASK计算得到,所以一般不用指出。

                                                     [scope SCOPE_VALUE]:

                    global:全局可用

                    link:接口可用

                    host:仅本机可用

            注:可添加多个地址。

                                   2) ip addr show IFACE

            ifconfig显示不了多余的地址,指明标签label后才可以。而此命令可以显示出来

        name一般是(设备名:编号)

        # ip addr add 192.168.1.7/24 dev eth0 label eth0:0 scope global
        # ip addr show dev eth0 
        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qle                 n 1000
            link/ether 00:0c:29:c4:a4:84 brd ff:ff:ff:ff:ff:ff
            inet 172.16.25.71/16 brd 172.16.255.255 scope global eth0
               valid_lft forever preferred_lft forever
            inet 192.168.1.7/24 brd 192.168.1.255 scope global eth0:0
               valid_lft forever preferred_lft forever
            inet6 fe80::20c:29ff:fec4:a484/64 scope link 
               valid_lft forever preferred_lft forever

        3)ip address delete - 删除地址

            ip addr del IPADDR dev IFACE

            用法与add相似

        4)ip address flush - 清除某接口的所有地址         

            ip addr flush dev IFACE

  (4)ip route 路由管理

      1)ip route add - 添加路由条目

         ip route change - 改变路由条目

         ip route replace - 改变路由条目或者添加一个新的条目

                                        以上三个命令的用法相同,故以add为例进行说明

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

        说明:TYPE PREFIX 即指明IP和子网掩码,via GW 指明下一跳,dev IFACE指明网卡接口,               src SOURCE_IP 即指明发送数据包出去的源地址,但是仅当一个网卡接口上有多个地址时指出

                                                时才有意义。

        # 从网卡eth1的10.0.20.200这个地址发往192.168.0.0网络的数据报文的下一跳是10.0.0.1
        # ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1  src 10.0.20.200

      2)ip route delete - 删除路由条目  

        ip route del TYPE PRIFIX

        # ip route delete 192.168.1.0/24

     注意:如果有多个指向192.168.1.0的路由条目要指明此条目关联的网卡接口,必要时还应指

        出源地址。

     3)ip route show - 列出所有路由条目

        # ip route show
        192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
        172.16.0.0/16 dev eth0  proto kernel  scope link  src 172.16.25.67  metric 1 
        192.168.0.0/16 dev eth0  proto kernel  scope link  src 192.168.1.6 
        default via 172.16.0.1 dev eth0  proto static

      4)ip route flush - 清空路由表

      5)ip route get - 获取单个路由条目信息

       ip route get TYPE PREFIX

        # ip route get 192.168.1.0/24
        192.168.1.0 dev eth0  src 192.168.1.6 
            cache  mtu 1500 advmss 1460 hoplimit 64

  

2ss命令

ss [options] [ FILTER ]

 

选项:

-ttcp协议相关的连接

-uudp协议相关的连接

-w裸套接字相关的连接

-l:监听状态的连接

-a:所有状态的连接

-n:数字格式

-p:相关程序和PID

-e:扩展格式信息

-m:内存用量(某个连接的内存使用相关信息)

-o:显示计时器相关信息 

        注:此处ss命令与netstat显示内容相似,故不做举例。但值得一提的是ss作为netstat的替代工具

          它的优势在于netstat在大范围主机下性能要好。

                                FILTER := [ state TCP-STATE ] [ EXPRESSION ] 

 EXPRSSION

dport=

sport=

           # ss -o state established '( dport = :22 or sport = :22 )'
            Recv-Q Send-Q  Local Address:Port   Peer Address:Port   
            0      0       192.168.1.6:ssh      192.168.1.106:54918    
            timer:(keepalive,81min,0)
           # ss -o state established '( dport = :ssh or sport = :ssh )'
            Recv-Q Send-Q  Local Address:Port   Peer Address:Port   
            0      52      192.168.1.6:ssh      192.168.1.106:54918    
            timer:(on,239ms,0)

三、编辑配置文件来进行网络配置

  1)IP地址、子网掩码、网关、DNS服务器地址等属性的配置文件(RedHat系列下)

   /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME

   例如:/etc/sysconfig/network-scripts/ifcfg-eth0

  2)路由的相关配置文件:

   /etc/sysconfig/network-scripts/route-NETCARD_NAME 

需要用到非默认网关路由,且让其永久有效,编辑配置文件

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

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

TARGET via GW

                192.168.0.0/24  via 192.168.1.1

即指要到192.168.0.0网络的报文发出的下一跳是192.168.1.1

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

ADDRESS NUM=TARGET

NETMASK NUM=MASK

GATEWAY NUM=NEXTHOP

                 ADDRESS0=192.168.0.0
                 NETMASK0=255.255.255.0
                 GATEWAY0=192.168.1.1

即指要到192.168.0.0网络的报文发出的下一跳是192.168.1.1

  3)配置文件的配置方式

    1)可通过vim等编辑器来编辑

    2)使用专有命令启动字符配置界面来配置

      CentOS 6:system-config-network或者setup

      CentOS 7:nmtui字符配置界面

  4)ifcfg-NETCARD_NAME配置参数解释

DEVICE:此配置文件对应的设备的名称

ONBOOT:在系统引导过程中,是否激活此接口

UUID:此设备的唯一标识

IPV6INIT:是否初始化IPV6

BOOTPROTO:激活此接口时是用什么协议来配置接口属性,常用的有dhcpbootpstaticnone。

TYPE:接口类型,常见的有EthernetBridge等

DNS1:第一DNS服务器指向;

DNS2:第二DNS服务器指向

DOMAIN:DNS搜索域

IPADDRIP地址

PREFIX:地址掩码长度

NETMASK:地址掩码

HWADDR:硬件设备的MAC地址

 

USERCTL:是否允许普通用户控制此设备

PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp服务器分配的dns服务器指向覆盖本地手动指向的DNS服务器指向;默认为允许(yes

 

NM_CONTROLLED:是否允许使用NetworkManager服务来控制接口;(CentOS 6 上非常有用)

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

                               CentOS 6service network restart

       CentOS 7systemctl restart network.service



注:本文测试结果均来自CentOS系统。