首页 > 代码库 > 【linux基础】17、网络属性配置详解

【linux基础】17、网络属性配置详解


一、配置主机接入TCP/IP网络

路由:

    主机路由:host

    网络路由:net

    默认路由(网关):default

DNS服务器:

    主DNS服务器

    备用DNS服务器

主机名:


配置IP:

网络设备如何表示:

内核识别设备:驱动

设备:别名

以太网设备:ethX,

PPP网络:pppX

本地回环:lo

ip配置在内核上,显示在网卡上

静态指定:

        IP/Netmask

动态配置:

        DHCP服务器  Dynamic Host Configuration Protocol

1)用户空间工具

立即通知内核生效,关机失效

ifconfig

ip

2)网络设备服务配置文件

长久有效

3)GUI/TUI

用户空间的命令行工具:立即生效,但不会长久有效

ifconfig

iproute2(ip,ss)


ifconfig

ifconfig(ip addr,ip link)   显示所有活动接口的相关信息

ifconfig INTERFACE  仅显示指定接口的相关信息

ifconfig INTERFACE  IP/MASK

                    长格式:255,255.0.0

                                ifconfig INTERFACE IP netmask MASK

                     CIDR:16(1的个数)                          

                                 ifconfig INTERFACE IP/MASK

[root@localhost ~]# ifconfig eth0 192.168.100.10 netmask 255.255.255.0

[root@localhost ~]# ifconfig eth0 192.168.100.100/24

route              

route(ip route)   显示路由信息

             -n  使用数字格式显示,不反解地址到主机名

route add -host HOST_IP gw Next_Hop [dev Device]

          -net  Net_ADDR gw Next_Hop [dev Device]

          -net  0.0.0.0 目标地址为任意地址,加的是网关,默认路由

route del -host HOST_IP

          -net Net_ADDR

[root@localhost ~]# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.100.0   *               255.255.255.0   U     0      0        0 eth0

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

                                                U表示启用状态   度量值:0表示到达该网络不需要经过路由器

                                                G表示默认网关

                                                H表示主机路由                            [root@localhost ~]# route add -net 172.16.0.0/16 gw 192.168.100.1

[root@localhost ~]# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.100.0   *               255.255.255.0   U     0      0        0 eth0

172.16.0.0      192.168.100.1   255.255.0.0     UG    0      0        0 eth0

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

172.16.100.100  192.168.100.2   255.255.255.255 UGH   0      0        0 eth0

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

172.16.0.0      192.168.100.1   255.255.0.0     UG    0      0        0 eth0

[root@localhost ~]# route add -net 0.0.0.0 gw 192.168.100.3

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

172.16.100.100  192.168.100.2   255.255.255.255 UGH   0      0        0 eth0

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

172.16.0.0      192.168.100.1   255.255.0.0     UG    0      0        0 eth0

0.0.0.0         192.168.100.3   0.0.0.0         UG    0      0        0 eth0

[root@localhost ~]# route add default gw 192.168.100.4

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

172.16.100.100  192.168.100.2   255.255.255.255 UGH   0      0        0 eth0

192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

172.16.0.0      192.168.100.1   255.255.0.0     UG    0      0        0 eth0

0.0.0.0         192.168.100.4   0.0.0.0         UG    0      0        0 eth0

0.0.0.0         192.168.100.3   0.0.0.0         UG    0      0        0 eth0


DNS服务器指向

配置文件:/etc/resolv.conf

最多三个:

nameserver DNS_SERVER_IP


CentOS 5/6:

服务脚本:/etc/rc.d/init.d/network

CentOS 6:

服务脚本:/etc/rc.d/init.d/NetworkManager

服务脚本:SysV style LSB

       控制运行在后台守护进程,接受参数{start|stop|restart|status}

       脚本位置:/etc/rc.d/init.d或/etc/init.d

   

配置某服务开机自动启动:chkconfig Src_Script_Name on

禁止开机自动启动:chkconfig Src_Script_Name off

查看 chkconfig --list

调用机制:

      1./etc/init.d/Script_Name {start|stop|restart|status}

      1.service Script_Name {start|stop|restart|status}


与网络设备相关的服务控制脚本

    他们通常能够读取为网络配置的配置文件,以之实现其配置生效或失效等管理功能

配置文件有两类(/etc/sysconfig/network-scripts/)

配置IP、掩码、网关

       以太网:ifcfg-ethX

       PPP:ifcfg-pppX

匹配路由

      route-ethX

      route-pppX

配置IP、掩码、网关:ifcfg-ethX

      DEVICE="eth0"

           此配置关联至的设备。设备名要与文件ifcfg-后ude内容保持一致

      BOOTPROTO=none

           引导协议:{none|static|dhcp|bootp}

      HWADDR="00:0C:29:26:62:92"

            MAC地址:要与真实MAC地址保持一致,可省略

      NM_CONTROLLED="yes"

            是否接受NetworkManager脚本控制:{yes|no}

      ONBOOT="yes"

            是否开机自动启动此网络设备{yes|no}

      TYPE="Ethernet"

            设备类型Etheraget Bridge(桥接)

      UUID="14351f7f-a726-4dfc-966e-dfb1f352f226"

            唯一标识,可省略

      IPADDR=

            ip地址

      NETMASK=

            掩码

      GATEWAY=

            默认网关

      DNS1=

            DNS1服务地址

      IPV6INIT=no

            是否开启ipv6

      USERCTL=no

           是否允许普通用户操作网卡

      PEERDNS={yes|no}

           是否允许DHCP服务分配地址时直接更新/etc/resolv。conf中的DNS服务器地址

配置路由:route-ethX

配置文件的格式1:每行一个要配置的路径条目

       目标 via 下一跳

配置文件的格式2:每一组一个路由条目

       ADDRESS#=目标

       NETMASK#=掩码

       GATEWAY#=下一跳


       ADDRESS0=192.168.0.0

       NETMASK0=255.255.255.0

       GATEWAY0=172.16.100.1


如何实现在单网卡上配置多个地址:

    通过网络接口别名来实现

     eth0X

     eth0:X,eth0:0,eth0:1....


     配置1:

     ifconfig ethX:Y IP/mask

     配置2:

 ifcfg-ethX:Y

      DEVICE=ethX:Y

      BOOTPROTO={none|static}

      IPADDR=

      NETMASK=

注意一个主机只能有一个网关,非主地址不支持DHCP协议获取 

           

ip命令的使用

wKiom1YbRNKDkEkeAAOzEkPUA84286.jpg

ip link 

    ip link show 查看默认信息

    ip link

    ip link set 接口 [up|down] [multicast on|off]:

ip addr

      可以在一个接口配置多个地址而不使用接口别名:显示这些地址

    ip addr show

    ip addr

    ip addr add dev 接口 ip地址/掩码 [ label 别名 ]

    ip addr add dev 接口 ip地址 [ label 别名 ]

    ip addr flush 接口 [to 网络地址]

ip route             

     ip route add 目标 via 下一跳 src 地址 [dev 设备]

     ip route del 目标

     ip route show


启用/禁用接口:

  ip link set 接口 up|down

  ifconfig 接口 up|down

  ifdown 接口,ifup 接口   会重置网络连接


TUI或GUI

  system-config-network-tui   配置结束后将保存配置文件中

  setup --> Network Configuration


网络管理或检测等相关的工具:

    ping:ICMP 互联网控制报文协议

       ping [options] ip

         -c 次数

-w 测试执行时长

          

1.命令格式:

ping [参数] [主机名或IP地址]

2.命令功能:

    ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。

如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

    ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

3.命令参数:

-d 使用Socket的SO_DEBUG功能。

-f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。

-n 只输出数值。

-q 不显示任何传送封包的信息,只显示最后的结果。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R 记录路由过程。

-v 详细显示指令的执行过程。

<p>-c 数目:在发送指定数目的包后停止。

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。

-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。


TTL:生存时间        

指定数据报被路由器丢弃之前允许通过的网段数量。        

TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。        

TTL 字段值可以帮助我们识别操作系统类型。        

    l  UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255。           

    l  Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64。           

    l  LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64。           

    l  微软 Windows NT/2K/2k3/2k8操作系统 ICMP 回显应答的 TTL 字段值为 128。           

    l  微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32。        


traceroute HOST:

        获取当前主机到目标主机所经过的网关

mtr HOST


netstat

    Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

 

输出信息含义

执行netstat后,其输出结果为

[root@xxj ~]# netstat

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 192.168.100.20:ssh          192.168.100.3:57272         ESTABLISHED 

Active UNIX domain sockets (w/o servers)

Proto RefCnt Flags       Type       State         I-Node Path

unix  2      [ ]         DGRAM                    7659   @/org/kernel/udev/udevd

unix  7      [ ]         DGRAM                    8876   /dev/log

unix  2      [ ]         DGRAM                    10769  

unix  2      [ ]         DGRAM                    9696   

unix  2      [ ]         DGRAM                    9507   

unix  2      [ ]         DGRAM                    9379   

unix  3      [ ]         STREAM     CONNECTED     9373   

unix  3      [ ]         STREAM     CONNECTED     9372    

unix  3      [ ]         STREAM     CONNECTED     9360

从整体上看,netstat的输出结果可以分为两个部分:

一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。 

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

 

常见参数

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。

-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名

-r 显示路由信息,路由表

-e 显示扩展信息,例如uid等

-s 按各个协议进行统计

-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

常用组合:

        netstat -naptu

        netstat -tan

netstat -tunl

netstat -rn


ss,用于取代netstat

       -t:tcp协议的连接

       -u:udp协议的链接

       -l:监听状态的连接

       -a:所有状态的连接

       -e:显示扩展信息

       -m:显示套接连接使用的内存信息

       -p:进程及UDP

       -n:数字格式显示

       -o state (established) 


ethtool 接口: 显示接口设备属性

ethtool -S 接口:显示设备接口的统计数据 


课外任务:

   nmap:扫描器

   tcpdump:嗅探器

   wireshark:嗅探器

   tshark:字符界面的

使用ping命令探测172.16.0.0/16有哪些主机在线


   在线,用绿色显示

   不在线的,用红色显示

#!/bin/bash

 for i in {0..255};do

    for j in {1..254};do

        ping -c 1 172.16.$i.$j &> /dev/null

       if [[ $? -eq 0 ]];then

         echo -e -n "\033[32mping 172.16.$i.$j ke da !\033[0m\n"

       else

         echo -e -n "\033[31mping 172.16.$i.$j bu ke da !\033[0m \n"

       fi

    done

done


【linux基础】17、网络属性配置详解