码迷,mamicode.com
首页 > 系统相关 > 详细

Linux网络管理相关命令

时间:2015-08-18 10:14:42      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:

•     OSI七层模型和TCP/IP四层模型
•     IP地址分类
•     了解常见的网络相关协议
•     TCP三次握手和四次挥手
•     网络相关的调试命令
•     实战tcpdump和tshark抓包


OSI 七层模型
物理层
    网络:中继器,集线器、网线、HUB
数据链路层
    网络:网卡,网桥,交换机
网络层
    网络:路由器,防火墙、多层交换机
传输层
    计算机:进程和端口
会话层
    计算机:建立会话,SESSION认证、断点续传
表示层
    计算机:编码方式,图像编解码、URL字段传输编码
应用层
    计算机:应用程序,如FTP,SMTP,HTTP

TCP/IP 四层模型
链路接口层--对应着OSI的数据链路层和物理层
网络层--对应着OSI的网络层
传输层 ---对应着OSI的传输层
应用层---应用层对应着OSI的 应用层 表示层 会话层


ip地址分类:
简单的说,IP地址分5类,常见的地址是A、B、C类

A类地址:
    范围从0-127,0是保留的并且表示所有IP地址(例:0.0.0.0),
    而127也是保留的地址,并且是用于测试环回口用的。
    因此A类地址的可用的范围其实是从1-126之间。
    以子网掩码来进行区别:255.0.0.0
B类地址:
    范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,
    剩下的2段号码为本地计算机的号码
    以子网掩码来进行区别:255.255.0.0
C类地址:
    范围从192-223,以子网掩码来进行区别: 255.255.255.0
D类地址:
    范围从224-239,被用在多点广播(Multicast)中
    多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
E类地址:
    范围从240~255,保留给实验用

私有IP:
    如果一个组织不需要接入互联网,但同时运行TCP/IP,则选择私网IP
    A:10.0.0.0/8
    B:  172.16.0.0 ~ 172.31.0.0/16
    C:  192.168.0.0 ~ 192.168.255.0/24    255.255.255.0
   
环回口:
    127网段:环回口一直是可用up状态
    本地ping 127开头的任何ip都可以ping通
    linux --lo
——————————————————————————————————————————————————————————————————
TCP/IP协议:
    定义:TCP/IP协议是一个协议簇。里面包括很多协议的。

    常见的TCP/IP协议:                         
        超文本传输协议(HTTP):万维网的基本协议. 80/tcp
        文件传输(TFTP简单文件传输协议):  69/udp
        远程登录(Telnet):23/tcp
        网络管理(SNMP简单网络管理协议):161/udp
        TCP Transmission Control Protocol,传输控制协议)是面向连接的协议,
        UDP UDP(User Data Protocol,用户数据报协议)非连接的协议
        Internet协议(IP)    
        Internet控制信息协议(ICMP)   
        地址解析协议(ARP)   
        反向地址解析协议(RARP)
    TCP和UDP区别:
        1.基于连接与无连接;
        2.对系统资源的要求(TCP较多,UDP少);
        3.UDP程序结构较简单;
        4.tcp流模式与udp数据报模式 ;
        5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。


    tcp: 三次握手
        是指建立一个TCP连接时,需要客户端和服务器总共发送3个包
        第一次握手:
            客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,
            以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
        第二次握手:
            服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,
            将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。
        第三次握手.
            客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来
            ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1
       
        SYN攻击---典型的ddos攻击
            在三次握手过程中,服务器发送SYN-ACK之后,
            收到客户端的ACK之前的TCP连接称为半连接(half-open connect).
            此时服务器处于Syn_RECV状态.当收到ACK后,服务器转入ESTABLISHED状态.
           
            Syn攻击就是 攻击客户端 在短时间内伪造大量不存在的IP地址,向服务器不断
            地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在
            的,服务器需要不断的重发直 至超时,这些伪造的SYN包 将长时间占用未连接队列
            ,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
           
            发现解决:
                检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,
                特别是源IP地址是随机的, 基本上可以断定这是一次SYN攻击.
                在Linux下可以如下命令检测是否被Syn攻击

                一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,修改tcp
                协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增
                加最大半连接和缩短超时时间等.但是不能完全防范syn攻击。
    tcp三次握手的链接状态
        C                        S
    TCP连接状态    建立过程         TCP连接状态
                LISTEN
    SYN_SENT    ---syn seq=a -->       SYN_RCVD
    ESTABLISHED <--syn seq=b  ack=a+1
                 --ack=b+1-->       ESTABLISHED  #(单词意思为:公认;含意为:连接成功)
       
    TCP四次挥手,作用:关闭连接
            四交挥手状态:
            关闭连接:四次挥手
          C                              S
        FIN_WAIT  --fin seq=a-->     CLOSE_WAIT
        FIN_WAIT2  <--ack a+1-- 
        TIME_WAIT  <--fin b--    LAST_ACK
                     --ack b+1-->   CLOSE
        【注意】中断连接端可以是Client端,也可以是Server端。

        为什么连接的时候是三次握手,关闭的时候却是四次握手?
        因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。
            其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当
            Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个
            ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所
            有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

    __________________________________________________________________________________________________________
linux网络类型接口表示方法
以太网(ethernet)  ethN
回环口              lo
光纤网             fddiN
桥设备:            br0
Linux ADSL宽带接口:ppp      pppN  如:ppp0
VPN                   tun0   tun1

linux网络相关调试命令:
    查看网卡硬件相关信息:
        mii-tool :查看网卡的物理连接是否正常
                [root@pagoda63 yum.repos.d]# mii-tool eth1
                eth1: negotiated 100baseTx-FD, link ok
        ethtool:用于查询及设置网卡参数的命令
                [root@pagoda63 yum.repos.d]# ethtool eth1
                显示一堆信息
                Speed: 1000Mb/s   #当前是1000M
                 Duplex: Full      #全双工
——————————————————————————————————————————————————————————————————————————————————————
    配置网络和IP地址:
        方法一:
            setup   (TUI,方式,文本用户界面(Text User Interface))  配置IP地址
                说明:在RHEL6中增加了一个新的网络服务:NetworkManager
                    [root@pagoda63 yum.repos.d]# /etc/init.d/NetworkManager stop
                    [root@pagoda63 yum.repos.d]# chkconfig Nchkconfig NetworkManager off
                    然后重启网络服务

        方法二:
            修改网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
                配置文件内容
                DEVICE=eth0  #物理设备的名字,内核通过这上名字来确认是哪个网卡
                BOOTPROTO=static 或dhcp 或none无(不指定),如是none,配上IP地址和static效果一样
                IPADDR=192.168.18.254
                NETMASK=255.255.255.0
                ONBOOT=YES   开机启动网卡
                TYPE=Ethernet    #类型为:以太网
                注:
                    BOOTPROTO=static   静态IP
                    BOOTPROTO=dhcp   动态IP
                    BOOTPROTO=none   无(不指定)
           
            给新添加的网卡添加IP地址和对应的配置文件。
                setup   #通过setup命令可以快速生成一个网卡的配置文件
          cp /etc/sysconfig/network-scripts/ifcfg-eth{0,1}

                注:有两个网卡,后面添加的新网卡不要设置默认的网关地址

——————————————————————————————————————————————————————————————————————————————————————   
    查看ip相关信息
        ifconfig 查看所有激活状态的网卡信息
        ifconfig DEVICE 指定网卡查看信息
        ifconfig -a 查看所有网卡,包括没有启动的网卡信息
        ifconfig DEVICE down/up 启用,关闭某网卡
        ifdown  关闭网卡
        ifup    激活网卡

        临时为一个网卡添加多个ip
            ifconfig eth0:1 192.168.10.63 netmask 255.255.255.0
    怎样永久为一个网卡添加多个ip
        肯定和配置文件有关:
            [root@pagoda63 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1
            [root@pagoda63 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:2
            [root@pagoda63 network-scripts]# vim ifcfg-eth0:1
           
            DEVICE=eth0:1   #修改
            TYPE=Ethernet
            UUID=dac7c54e-c60f-497a-92a5-698574f80677
            ONBOOT=yes
            NM_CONTROLLED=yes
            BOOTPROTO=static
            HWADDR=00:0C:29:E1:83:B1
            IPADDR=192.168.2.63   #修改
            PREFIX=24
            DEFROUTE=yes
            IPV4_FAILURE_FATAL=yes
            IPV6INIT=no
            NAME="System eth0:1" #修改
            USERCTL=no
        重启服务,ifocnfig查看
————————————————————————————————————————
    修改主机名配置文件
        作用:设置主机名永久生效
        其他相关配置文件:
        #vim /etc/sysconfig/network
        NETWORKING=yes   开机时激活网络,开启network服务
        注:如果NETWORKING=no,即使network设置为开机启动,那也启不来。
        HOSTNAME=localhost.localdomain
            [root@pagoda63 yum.repos.d]# vim /etc/sysconfig/network           
                NETWORKING=yes
                HOSTNAME=pagoda63.cn
                NTPSERVERARGS=iburst
————————————————————————————————————————————————————————————————————————————————————————————————
    配置IP与主机名(域名)的对应
        /etc/hosts   #优先级高于DNS解析
        [root@pagoda63 yum.repos.d]# cat /etc/hosts
        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

        192.168.1.63  pagoda63.cn
        192.168.1.64  pagoda64.cn
————————————————————————————————————————————————————————————————————————————————————————————
    DNS配置的配置文件
        /etc/resolv.conf
        RHEL5,用这个文件。在RHEL6中直接在网卡配置文件中指定:DNS1=192.168.1.1
        默认情况下,域名解析顺序: 本地hosts文件-》DNS查询
        是不是一定先解析hosts再解析DNS?---》往下看就知道
————————————————————————————————————————————————————————————————————————————————————————————————
    配置本机域名DNS解析顺序
    [root@pagoda63 yum.repos.d]# vim /etc/nsswitch.conf    
    #hosts:     db files nisplus nis dns
    hosts:      files dns #先解析文件。再解析dns配置
    #hosts:      dns files
————————————————————————————————————————————————————————————————————————————————   
    端口号和服务对应的配置文件
         /etc/services  ##此文件可以查看常用端口对应的名字
         iptables或netstat要把端口解析成协议名时,都需要使用到这个文件。
         另外后期xinetd服务管理一些小服务时,
         也会使用到此文件来查询对应的小服务端口号。
————————————————————————————————————————————————————————————————————————————————————————————
查看路由信息: 查看默认网关
    route
[root@pagoda63 yum.repos.d]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
说明:
Destination 目标
          The destination network or destination host. 目标网络或目标主机。
Gateway 网关
          The gateway address or ‘*‘ if none set. 网关地址,如果没有就显示星号或4个0。
Genmask 网络掩码
          The  netmask  for  the  destination net; ‘255.255.255.255‘ for a
          host destination and ‘0.0.0.0‘ for the default route.

    添加/删除路由条目
        增加 (add) 与删除 (del) 路由的相关参数:
             -net    :表示后面接的路由为一个网域;
             -host  :表示后面接的为连接到单部主机的路由;
            netmask :与网域有关,可以设定 netmask 决定网域的大小;
            dev    :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
       
        添加路由(把Linux做成路由器时或服务器有多个网卡,指定到不同网段走哪个网卡)
[root@pagoda63 yum.repos.d]# route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

        删除路由
[root@pagoda63 yum.repos.d]# route del -net 192.168.2.0 netmask 255.255.255.0

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    临时修改MAC地址:
    root@pagoda63 ~]# ifconfig eth0 hw  ether mac地址


    查看网络连接状态
    [root@pagoda63 yum.repos.d]# netstat -antup
        -a, --all
        -n, --numeric              don‘t resolve names
        -p, --programs
        -t  显示tcp连接
        -u  显示udp连接

    ping命令
        -c 数目 在发送指定数目的包后停止。
        -i 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
        -I 指定从哪个端口出去。
            [root@pagoda63 yum.repos.d]# ping -c 3 192.168.1.1
            [root@pagoda63 ~]# ping -i 0.01 192.168.1.1
            [root@pagoda63 ~]# ping -I eth0 192.168.1.1

    iptraf
        查看网络流量
        需要安装
        [root@pagoda63 ~]# iptraf  #会弹出类似setup的界面

    arping: 查看IP地址是否有冲突
        [root@pagoda63 ~]# arping 192.168.1.1
        ARPING 192.168.1.1 from 192.168.1.63 eth0
        Unicast reply from 192.168.1.1 [AC:F1:DF:FC:C9:BB]  1.445ms
        Unicast reply from 192.168.1.1 [AC:F1:DF:FC:C9:BB]  1.116ms
        Unicast reply from 192.168.1.1 [AC:F1:DF:FC:C9:BB]  1.077ms
        如果出现arp攻击会有多个不同的mac地址

  arpwatch
     [root@pagoda63 ~]# yum install arpwatch 

     arp监控
     [root@pagoda63 ~]# /etc/init.d/arpwatch start
     [root@pagoda63 ~]# arpwatch -i eth0 #监听eth0
     [root@pagoda63 ~]# tail -f /var/log/messages #查看
     [root@pagoda63 ~]# vim /etc/sysconfig/arpwatch #配置文件





    tcpdump命令:抓包
        (1)指定接口(-i)
                [root@pagoda63 ~]# tcpdump -i eth0
           抓包分析三次握手
            在主机A上开启SSHD服务,此时不要有任何客户端主机来连接主机A的SSHD服务。
            这样是为了抓包更清楚。

            主机A执行:
                tcpdump port 22 -c 3 -n  -S
                    # port  端口号
                    -c  抓几个包
                    -n  不解析端口号为协议名
                    -S Print absolute, rather than relative,  TCP  sequence numbers.
            主机B执行:
                yum install telnet -y   #安装telnet
                telnet 192.168.1.63 22    #连接主机A的22端口

                然后根据内容分析数据包

   iftop :流量监控
     安装:[root@pagoda63 ~]# yum install iftop
    
   NetHogs:用来按进程或程序实时统计网络带宽使用率
     yum install nethogs
     nethogs -d 5 5s刷新一次
     -d : delay for refresh rate.
     -h : display available commands usage.
     -p : sniff in promiscious mode (not recommended).
     -t : tracemode.
     -V : prints Version info.
     以下是NetHogs的一些很有用的交互控制(键盘快捷键)
     -m : Change the units displayed for the bandwidth in units like KB/sec -> KB -> B-> MB.
     -r : Sort by magnitude of respectively traffic.
     -s : Sort by magnitude of sent traffic.
     -q : Hit quit to the shell prompt.

    wireshark:
        yum install wireshark -y
        [root@pagoda63 ~]# tshark -w filename -i eth0
            -w 将抓包的数据写入文件filename中。
            -i 指定要抓包的接口名称

        [root@pagoda63 ~]# tshark -r filename
            -r 指定要读取的包文件
            -V 将包尽可能的解析(这个有时在包数量很多的情况下可以不使用,这样它
                会给出一个很简洁的报文解释)
           
           
       
                   
       
       
       
           
           


       
       
       
               
   
   


       
       
       
~                     
           
       

                   

           
           

Linux网络管理相关命令

标签:

原文地址:http://www.cnblogs.com/ylion/p/4738524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!