• 日常运维


    使用w查看系统负载

    1.w/uptime

    17:03:51 当前时间
    up 6 days 系统启动多长时间
    4 users 目前登录了几个用户
    load average: 0.00, 0.01, 0.05 系统负载 
    第一段 0.00 指一分钟内使用cpu活动的进程,这个值等于逻辑cpu个数是最合适的
    第二段 0.01 指五分钟内使用cpu活动的进程
    第三段 0.05 指十五分钟内使用cpu活动的进程
    LOGIN 什么时候登录的 
    IDLE 空闲了多长时间
    网络登录的是TTY:pts/0、pts/1的形式,终端登录的是tty1——6
    [root@bogon awk]# w
     17:03:51 up 6 days, 17:18,  4 users,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     :0       :0               2612月17 ?xdm?  55:42   3.08s gdm-session-wor
    root     pts/0    :0               二09    3days  0.04s  0.04s /bin/bash
    root     pts/1    :0               2912月17  6days  0.06s  0.06s /bin/bash
    root     pts/2    10.21.95.218     二09    7.00s  2.71s  0.02s w
    [root@bogon awk]# 
    

    2.查看系统cpu信息(processor : 0说明只有一颗)

    [root@bogon awk]# cat /proc/cpuinfo 
    

    vmstat命令查看系统瓶颈

    1.vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

    [root@bogon awk]# vmstat 1 5
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0 400260 249648     32 244032    0    1    29     5   55   20  0  0 99  0  0
     0  0 400260 249648     32 244032    0    0     0     0   61  118  0  0 100  0  0
     0  0 400260 249648     32 244032    0    0     0     0   85  151  1  0 99  0  0
     0  0 400260 249648     32 244032    0    0     0     0   71  133  0  1 99  0  0
     0  0 400260 249616     32 244032    0    0     0     0   64  118  0  0 100  0  0
    [root@bogon awk]#
    

    2表示每隔两秒采集一次服务器状态,1表示只采集一次。

    r:run 有多少个进程处于运行状态

    b:表示阻塞的进程

    swpd:有多少块被交换了(当内存不够的时候),当数值不大且固定可以不用管

    free   空闲的物理内存的大小

    buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,

    cache cache直接用来记忆我们打开的文件,给文件做缓冲

    si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常

    so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上

    bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,

    bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

    in 每秒CPU的中断次数,包括时间中断

    cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

    us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

    sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

    id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

    wt 等待IO CPU时间。

     top命令查看具体进程

     1.top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

    [sun.yujun@kddi-zol-fss-web1 autorun]$ top -bn1
    top - 09:33:16 up 38 days, 17 min, 14 users,  load average: 0.12, 0.09, 0.33
    Tasks: 388 total,   1 running, 387 sleeping,   0 stopped,   0 zombie
    Cpu(s): 12.1%us,  0.8%sy,  0.0%ni, 87.0%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
    Mem:   8060540k total,  6555192k used,  1505348k free,    93216k buffers
    Swap: 16777196k total,  2133356k used, 14643840k free,   300296k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                       
    13003 yang.lei  20   0 8033m 4.8g 1572 S  7.8 62.5   1123:34 python                                        
     8099 sun.yuju  20   0 15160 1344  824 R  1.9  0.0   0:00.01 top                                           
        1 root      20   0 19352  560  332 S  0.0  0.0   2:22.45 init                                          
        2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                      
        3 root      RT   0     0    0    0 S  0.0  0.0   1:09.12 migration/0                                   
        4 root      20   0     0    0    0 S  0.0  0.0   0:33.01 ksoftirqd/0                                   
        5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                     
        6 root      RT   0     0    0    0 S  0.0  0.0   0:06.61 watchdog/0                                    
        7 root      RT   0     0    0    0 S  0.0  0.0   1:13.85 migration/1                                   
        8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1                                     
        9 root      20   0     0    0    0 S  0.0  0.0   1:16.91 ksoftirqd/1                                   
       10 root      RT   0     0    0    0 S  0.0  0.0   0:05.43 watchdog/1
    

    1.top默认3秒刷新一次、按cpu降序排,加-bn1不刷新

    2.统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

    01:06:48    当前时间
    up 1:22    系统运行时间,格式为时:分
    1 user    当前登录用户数
    load average: 0.06, 0.60, 0.48    系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
    

    3.第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

    total 进程总数
    running 正在运行的进程数
    sleeping 睡眠的进程数
    stopped 停止的进程数
    zombie 僵尸进程数
    Cpu(s): 
    0.3% us 用户空间占用CPU百分比
    1.0% sy 内核空间占用CPU百分比
    0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
    98.7% id 空闲CPU百分比
    0.0% wa 等待输入输出的CPU时间百分比
    0.0%hi:硬件CPU中断占用百分比
    0.0%si:软中断占用百分比
    0.0%st:虚拟机占用百分比
    

    4.最后两行为内存信息。内容如下:

    Mem:
    191272k total    物理内存总量
    173656k used    使用的物理内存总量
    17616k free    空闲内存总量
    22052k buffers    用作内核缓存的内存量
    Swap: 
    192772k total    交换区总量
    0k used    使用的交换区总量
    192772k free    空闲交换区总量
    123988k cached    缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
    

    5.进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

    序号  列名    含义
    a    PID     进程id
    b    PPID    父进程id
    c    RUSER   Real user name
    d    UID     进程所有者的用户id
    e    USER    进程所有者的用户名
    f    GROUP   进程所有者的组名
    g    TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
    h    PR      优先级
    i    NI      nice值。负值表示高优先级,正值表示低优先级
    j    P       最后使用的CPU,仅在多CPU环境下有意义
    k    %CPU    上次更新到现在的CPU时间占用百分比
    l    TIME    进程使用的CPU时间总计,单位秒
    m    TIME+   进程使用的CPU时间总计,单位1/100秒
    n    %MEM    进程使用的物理内存百分比
    o    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    p    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
    q    RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    r    CODE    可执行代码占用的物理内存大小,单位kb
    s    DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    t    SHR     共享内存大小,单位kb
    u    nFLT    页面错误次数
    v    nDRT    最后一次写入到现在,被修改过的页面数。
    w    S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
    x    COMMAND 命令名/命令行
    y    WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
    z    Flags   任务标志,参考 sched.h
    

    默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。 

    更改显示内容通过 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。 
    按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。 
    按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

    命令使用

    top使用格式

    top [-] [d] [p] [q] [c] [C] [S] [s]  [n]


    参数说明

    d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 
    p 通过指定监控进程ID来仅仅监控某个进程的状态。 
    q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。 
    S 指定累计模式 
    s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 
    i 使top不显示任何闲置或者僵死进程。 
    c 显示整个命令行而不只是显示命令名
    


    其他实用命令
    下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

    Ctrl+L 擦除并且重写屏幕。 
    h或者? 显示帮助画面,给出一些简短的命令总结说明。 
    k       终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
    i 忽略闲置和僵死进程。这是一个开关式命令。 
    q 退出程序。 
    r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
    S 切换到累计模式。 
    s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也
    会大大增加。 f或者F 从当前显示中添加或者删除项目。 o或者O 改变显示项目的顺序。 l 切换显示平均负载和启动时间信息。 m 切换显示内存信息。 t 切换显示进程和CPU状态信息。 c 切换显示命令名称和完整命令行。 M 根据驻留内存大小进行排序。 P 根据CPU使用百分比大小进行排序。 T 根据时间/累计时间进行排序。 W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    附常用操作:

    top   //每隔5秒显式所有进程的资源占用情况
    top -d 2  //每隔2秒显式所有进程的资源占用情况
    top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
    top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
    top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
    

    按内存排序 M, P按cpu排序

    sar命令System Activity Reporter, 系统活动情况报告

    1.被人们称作linux中的瑞士军刀 

    2.sar -n DEV 1 2  1代表每分钟显示一次,2显示两次

    3.rxpck接收的数据包量(几千是正常的),txpck发出的数据包量

    [root@bogon ~]# sar -n DEV 1 2
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    15时19分40秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    15时19分41秒 eno16777736      5.05      2.02      0.58      0.25      0.00      0.00      0.00
    15时19分41秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    15时19分41秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    15时19分41秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    15时19分41秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    15时19分42秒 eno16777736      5.00      1.00      0.60      0.57      0.00      0.00      0.00
    15时19分42秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    15时19分42秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    15时19分42秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    平均时间: eno16777736      5.03      1.51      0.59      0.41      0.00      0.00      0.00
    平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    平均时间: virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    平均时间:    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    [root@bogon ~]# 
    

    4.查看某一天的历史数据

    [root@bogon ~]# sar -n DEV -f /var/log/sa/sa02 
    

    5.查看系统负载

    [root@bogon ~]# sar -q 1 5
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    15时31分55秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    15时31分56秒         2       693      0.00      0.01      0.05         0
    15时31分57秒         2       693      0.00      0.01      0.05         1
    15时31分58秒         2       693      0.00      0.01      0.05         1
    15时31分59秒         2       695      0.00      0.01      0.05         0
    15时32分00秒         1       694      0.00      0.01      0.05         0
    平均时间:         2       694      0.00      0.01      0.05         0
    [root@bogon ~]# 
    

    6.查看某一天的系统负载

    [root@bogon ~]# sar -q -f /var/log/sa/sa19 
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    15时20分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    15时30分01秒         2       689      0.00      0.01      0.05         0
    平均时间:         2       689      0.00      0.01      0.05         0
    [root@bogon ~]# 
    

    7.查看磁盘的读写

    [root@bogon ~]# sar -b
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    15时20分01秒       tps      rtps      wtps   bread/s   bwrtn/s
    15时30分01秒      0.20      0.02      0.18      0.36     11.34
    平均时间:      0.20      0.02      0.18      0.36     11.34
    [root@bogon ~]# 
    

    nload命令

    nload 默认分为上下两块:

    上半部分是:Incoming也就是进入网卡的流量,

    下半部分是:Outgoing,也就是从这块网卡出去的流量,

    每部分都有当前流量(Curr),

    平均流量(Avg),

    最小流量(Min),

    最大流量(Max),

    总和流量(Ttl)这几个部分,看起来还是蛮直观的。


    nload默认的是eth0网卡,如果你想监测eth1网卡的流量

    #nload eth1



    -a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.

    -i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

    -m:不显示流量图,只显示统计数据。

    -o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

    -t:显示数据的刷新时间间隔,单位是毫秒,默认500。

    -u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!

    h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.

    H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.

    -U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!

    Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

    如只监控eth0命令:# nload eth0

    使用 $ nload eth0 ,可以查看第一网卡的流量情况,显示的是实时的流量图, $ nload -m 可以同时查看多个网卡的流量情况。

    监控io性能

    [root@bogon ~]# iostat 
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.22    0.04    0.27    0.16    0.00   99.31
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.65        33.33         5.13   19455533    2995131
    sdb               0.00         0.00         0.00       2652          0
    scd0              0.00         0.02         0.00       9918          0
    dm-0              0.68        33.20         4.28   19378412    2498203
    dm-1              0.23         0.12         0.82      70860     477044
    dm-2              0.00         0.00         0.00        556          0
    
    [root@bogon ~]# 
    

    1.%util表示io等待

    [root@bogon ~]# iostat -x
    Linux 3.10.0-327.el7.x86_64 (bogon)     2018年01月19日  _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.22    0.04    0.27    0.16    0.00   99.31
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.03     0.23    0.47    0.18    33.33     5.13   117.54     0.02   31.44   27.84   40.94   5.23   0.34
    sdb               0.00     0.00    0.00    0.00     0.00     0.00    12.00     0.00    4.24    4.24    0.00   3.55   0.00
    scd0              0.00     0.00    0.00    0.00     0.02     0.00    20.43     0.00    2.87    2.87    0.00   2.74   0.00
    dm-0              0.00     0.00    0.47    0.21    33.20     4.28   110.49     0.02   31.84   28.04   40.43   4.86   0.33
    dm-1              0.00     0.00    0.03    0.20     0.12     0.82     8.02     0.10  415.84   14.88  474.50   1.09   0.03
    dm-2              0.00     0.00    0.00    0.00     0.00     0.00    13.40     0.00    2.11    2.11    0.00   1.53   0.00
    
    [root@bogon ~]#
    
    rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge
    了。 rsec/s:每秒读取的扇区数; wsec/:每秒写入的扇区数。 rKB/s:The number of read requests that were issued to the device per second; wKB/s:The number of write requests that were issued to the device per second; avgrq-sz 平均请求扇区的大小 avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。 await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。 svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。
    %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度
    。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

    free命令

    1.查看内存使用情况

    [root@bogon ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           977M        479M        117M         15M        380M        310M
    Swap:          2.0G        425M        1.6G
    [root@bogon ~]# 
    

    Mem:表示物理内存统计 
    -/+ buffers/cached:表示物理内存的缓存统计 
    Swap:表示硬盘上交换分区的使用情况,

    第1行  Mem:
    total:表示物理内存总量。 
    used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 
    free:未被分配的内存。 
    shared:共享内存,一般系统不会用到,这里也不讨论。 
    buffers:系统分配但未被使用的buffers 数量。 
    cached:系统分配但未被使用的cache 数量。buffer 与cache 的区别见http://blog.csdn.net/xifeijian/article/details/8209758
    total = used + free    
    第2行   -/+ buffers/cached:
    used:也就是第一行中的used - buffers-cached   也是实际使用的内存总量。
    free:未被使用的buffers 与cached 和未被分配的内存之和,这就是系统当前实际可用内存=free+buffers+cached。

    因为buffers和cached是系统为了提高性能申请的内存数,实际上当应用程序需要此功能时,是可以使用这些内存的,所以对应用程序来说,这些内存也是可以使用的。

    ps命令

    1.ps aux

    [root@bogon ~]# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.2 188864  2436 ?        Ss   1月12   0:24 /usr/lib/systemd/systemd --switched-root --system --deseriali
    root          2  0.0  0.0      0     0 ?        S    1月12   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    1月12   0:10 [ksoftirqd/0]
    root          7  0.0  0.0      0     0 ?        S    1月12   0:00 [migration/0]
    root          8  0.0  0.0      0     0 ?        S    1月12   0:00 [rcu_bh]
    root          9  0.0  0.0      0     0 ?        S    1月12   0:00 [rcuob/0]
    root         10  0.0  0.0      0     0 ?        S    1月12   0:00 [rcuob/1]
    

    2.ps -ef

    [root@bogon ~]# ps -ef
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 1月12 ?       00:00:24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
    root          2      0  0 1月12 ?       00:00:00 [kthreadd]
    root          3      2  0 1月12 ?       00:00:10 [ksoftirqd/0]
    root          7      2  0 1月12 ?       00:00:00 [migration/0]
    
    USER:该 process 属于那个使用者账号的
    PID :该 process 的号码
    %CPU:该 process 使用掉的 CPU 资源百分比
    %MEM:该 process 所占用的物理内存百分比
    VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
    RSS :该 process 占用的固定的内存量 (Kbytes)
    TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
    STAT:该程序目前的状态,主要的状态有
    R :该程序目前正在运作,或者是可被运作
    S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
    T :该程序目前正在侦测或者是停止了
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
    START:该 process 被触发启动的时间
    TIME :该 process 实际使用 CPU 运作的时间
    COMMAND:该程序的实际指令
    

    netstat查看网络状态

    http://www.jb51.net/hack/186589.html

    -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态

    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。

    1.netstat -lnp

    [root@bogon ~]# netstat -lnp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2868/mysqld         
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2452/nginx: master  
    tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      4607/dnsmasq        
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1211/sshd           
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1206/cupsd          
    tcp6       0      0 :::22                   :::*                    LISTEN      1211/sshd           
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1206/cupsd          
    tcp6       0      0 :::8888                 :::*                    LISTEN      8241/httpd          
    udp        0      0 0.0.0.0:57029           0.0.0.0:*                           121923/dhclient     
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           946/avahi-daemon: r 
    udp        0      0 0.0.0.0:50702           0.0.0.0:*                           15430/dhclient      
    udp        0      0 192.168.122.1:53        0.0.0.0:*                           4607/dnsmasq        
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           4607/dnsmasq        
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           121923/dhclient     
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           15430/dhclient      
    udp        0      0 0.0.0.0:35456           0.0.0.0:*                           946/avahi-daemon: r 
    udp6       0      0 :::44888                :::*                                15430/dhclient      
    udp6       0      0 :::56762                :::*                                121923/dhclient     
    Active UNIX domain sockets (only servers)
    Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
    unix  2      [ ACC ]     STREAM     LISTENING     581380   13667/gnome-termina  /run/user/0/at-spi2-socket-13667
    

    2.netstat -an查看所有连接状态

    [root@bogon ~]# netstat -an
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:80              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     52 10.21.95.122:22         10.21.95.218:60472      ESTABLISHED
    tcp        0      0 10.21.95.122:22         10.21.95.218:50134      ESTABLISHED
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 ::1:631                 :::*                    LISTEN     
    tcp6       0      0 :::8888                 :::*                    LISTEN   
    

    1. 列出所有端口 (包括监听和未监听的)

     列出所有端口 netstat -a

    # netstat -a | more
     Active Internet connections (servers and established)
     Proto Recv-Q Send-Q Local Address           Foreign Address         State
     tcp        0      0 localhost:30037         *:*                     LISTEN
     udp        0      0 *:bootpc                *:*
     
    Active UNIX domain sockets (servers and established)
     Proto RefCnt Flags       Type       State         I-Node   Path
     unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
     unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket
    

    列出所有 tcp 端口 netstat -at

    [root@bogon ~]# netstat -at
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN     
    tcp        0      0 bogon:domain            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
    tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
    tcp        0     52 bogon:ssh               bogon:60472             ESTABLISHED
    tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
    tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
    tcp6       0      0 [::]:ddi-tcp-1          [::]:*                  LISTEN     
    [root@bogon ~]# 
    

    列出所有 udp 端口 netstat -au

    [root@bogon ~]# netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    udp        0      0 0.0.0.0:57029           0.0.0.0:*                          
    udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
    udp        0      0 0.0.0.0:50702           0.0.0.0:*                          
    udp        0      0 bogon:domain            0.0.0.0:*                          
    udp        0      0 0.0.0.0:bootps          0.0.0.0:*                          
    udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
    udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
    udp        0      0 0.0.0.0:35456           0.0.0.0:*                          
    udp6       0      0 [::]:44888              [::]:*                             
    udp6       0      0 [::]:56762              [::]:*                             
    [root@bogon ~]# 
    

    2. 列出所有处于监听状态的 Sockets

    只显示监听端口 netstat -l 

    只列出所有监听 tcp 端口 netstat -lt

    只列出所有监听 udp 端口 netstat -lu

    只列出所有监听 UNIX 端口 netstat -lx

    3. 显示每个协议的统计信息

    显示所有端口的统计信息 netstat -s

    显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

    找出程序运行的端口

    [root@bogon ~]# netstat -ap | grep httpd
    tcp6       0      0 [::]:ddi-tcp-1          [::]:*                  LISTEN      8241/httpd          
    [root@bogon ~]# 
    

    找出运行在指定端口的进程

    netstat -an | grep ':80'
    

    显示详细信息,像是 ifconfig 使用 netstat -ie:

    [root@bogon ~]# netstat -ie
    Kernel Interface table
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.21.95.122  netmask 255.255.248.0  broadcast 10.21.95.255
            inet6 fe80::20c:29ff:fec1:d18d  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:c1:d1:8d  txqueuelen 1000  (Ethernet)
            RX packets 1982450  bytes 1199270303 (1.1 GiB)
            RX errors 0  dropped 12  overruns 0  frame 0
            TX packets 377406  bytes 43147467 (41.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

      

    查看连接某服务端口最多的的IP地址

    netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
    

    TCP各种状态列表

    [root@bogon ~]# netstat -nat |awk '{print $6}'
    established)
    Foreign
    LISTEN
    LISTEN
    LISTEN
    LISTEN
    LISTEN
    ESTABLISHED
    LISTEN
    LISTEN
    LISTEN
    [root@bogon ~]# 
    
    先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
    [root@bogon ~]# netstat -nat |awk '{print $6}'|sort|uniq -c
          1 established)
          1 ESTABLISHED
          1 Foreign
          8 LISTEN
    [root@bogon ~]# 
    

      

    [root@bogon ~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
          8 LISTEN
          1 Foreign
          1 ESTABLISHED
          1 established)
    [root@bogon ~]# 
    

     

    分析access.log获得访问前10位的ip地址
    awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10
    

      

    Linux下抓包

     1.需要指定网卡的名称 -nn代表ip和端口

    [root@bogon ~]# tcpdump -nn -i eno16777736
    
    #抓取所有经过 eth0,目的或源地址是 192.168.29.162 的网络数据
    命令:tcpdump -n -i eth0 host 192.168.29.162
    
    # 源地址
    命令:tcpdump -i eth1 src host 192.168.29.162
    # 目的地址
    命令:tcpdump -i eth1 dst host 192.168.29.162
    
    #抓取当前服务器eth0网卡端口8080的网络数据
    命令:tcpdump -n -i eth0 port 8080
    
    #抓取mysql执行的sql语句
    命令:tcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings
    
    #抓取mysql通讯的网络包(cap用wireshark打开)
    命令tcpdump -n -nn -tttt -i eth0 -s 65535 'port 3306' -w 20160505mysql.cap
    
    #抓取SMTP 数据
    命令:tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'
    
    #抓取HTTP GET数据,"GET "的十六进制是 47455420
    命令:tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'
    
    #抓取SSH返回,"SSH-"的十六进制是 0x5353482D
    命令:tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'
    
    #实时抓取端口号8080的GET包,然后写入GET.log
    命令:tcpdump -i eth0 '((port 8080) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log
    
    #抓取指定SYN个数,-c 参数指定抓多少个包。
    命令:time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10
    

    抓10个数据包

    [root@bogon ~]# tcpdump -nn -i eno16777736 -c 10
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eno16777736, link-type EN10MB (Ethernet), capture size 65535 bytes
    17:51:37.366999 IP 10.21.95.218.62207 > 64.233.189.138.443: Flags [S], seq 3948769275, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
    17:51:37.367040 IP 10.21.95.218.62190 > 64.233.189.102.443: Flags [S], seq 1726614355, win 8192, options [mss 1460,nop,nop,sackOK], length 0
    17:51:37.371158 IP 10.21.95.122.22 > 10.21.95.218.60472: Flags [P.], seq 4093317757:4093317953, ack 845950440, win 272, length 196
    17:51:37.374023 IP 10.21.95.218.60472 > 10.21.95.122.22: Flags [.], ack 196, win 16210, length 0
    17:51:37.375754 IP 10.21.95.122.22 > 10.21.95.218.60472: Flags [P.], seq 196:776, ack 1, win 272, length 580
    17:51:37.375982 IP 10.21.95.122.22 > 10.21.95.218.60472: Flags [P.], seq 776:924, ack 1, win 272, length 148
    17:51:37.376099 IP 10.21.95.218.60472 > 10.21.95.122.22: Flags [P.], seq 1:53, ack 924, win 16425, length 52
    17:51:37.376220 IP 10.21.95.122.22 > 10.21.95.218.60472: Flags [P.], seq 924:1184, ack 53, win 272, length 260
    17:51:37.376373 IP 10.21.95.122.22 > 10.21.95.218.60472: Flags [P.], seq 1184:1348, ack 53, win 272, length 164
    17:51:37.376539 IP 10.21.95.218.60472 > 10.21.95.122.22: Flags [.], ack 1348, win 16319, length 0
    10 packets captured
    10 packets received by filter
    0 packets dropped by kernel
    [root@bogon ~]# 
    

    查看抓到的包文件

    [root@bogon ~]# tcpdump -r /tmp/tcpdump.txt
    

      

    tshark

    1,实时打印当前http请求的url
    
    # tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '	'
    
    参数含义:
    
        -s 512 :只抓取前512个字节数据
        -i eth0 :捕获eth0网卡
        -n :禁止网络对象名称解析
        -f 'tcp dst port 80' :只捕捉协议为tcp,目的端口为80的数据包
        -R 'http.host and http.request.uri' :过滤出http.host和http.request.uri
        -T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
        -l :输出到标准输出
    
    2、实时打印当前mysql查询语句
    
    # tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
    
    参数含义:
    
        -s 512 :只抓取前512个字节数据
        -i eth0 :捕获eth0网卡
        -n :禁止网络对象名称解析
        -f 'tcp dst port 3306' :只捕捉协议为tcp,目的端口为3306的数据包
        -R 'mysql.query' :过滤出mysql.query
        -T fields -e mysql.query :打印mysql查询语句
    

     

    在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析。
    最近才发现,原来wireshark也提供有Linux命令行工具-tshark。tshark不仅有抓包的功能,还带了解析各种协议的能力。下面我们以两个实例来介绍tshark工具。
    
    主要参数:
    
    1. 抓包接口类
    -i 设置抓包的网络接口,不设置则默认为第一个非自环接口。
    -D 列出当前存在的网络接口。在不了解OS所控制的网络设备时,一般先用“tshark -D”查看网络接口的编号以供-i参数使用。
    -f 设定抓包过滤表达式(capture filter expression)。抓包过滤表达式的写法雷同于tcpdump,可参考tcpdump man page的有关部分。
    -s 设置每个抓包的大小,默认为65535,多于这个大小的数据将不会被程序记入内存、写入文件。(这个参数相当于tcpdump的-s,tcpdump默认抓包的大小仅为68)
    -p 设置网络接口以非混合模式工作,即只关心和本机有关的流量。
    -B 设置内核缓冲区大小,仅对windows有效。
    -y 设置抓包的数据链路层协议,不设置则默认为-L找到的第一个协议,局域网一般是EN10MB等。
    -L 列出本机支持的数据链路层协议,供-y参数使用。  
    2. 抓包停止条件
    -c 抓取的packet数,在处理一定数量的packet后,停止抓取,程序退出。
    -a 设置tshark抓包停止向文件书写的条件,事实上是tshark在正常启动之后停止工作并返回的条件。条件写为test:value的形式,如“-a duration:5”表示tshark启动后在5秒内抓包然后停止;“-a filesize:10”表示tshark在输出文件达到10kB后停止;“-a files:n”表示tshark在写满n个文件后停止。(windows版的tshark0.99.3用参数“-a files:n”不起作用——会有无数多个文件生成。由于-b参数有自己的files参数,所谓“和-b的其它参数结合使用”无从说起。这也许是一个bug,或tshark的man page的书写有误。)
    3. 文件输出控制
    -b 设置ring buffer文件参数。ring buffer的文件名由-w参数决定。-b参数采用test:value的形式书写。“-b duration:5”表示每5秒写下一个ring buffer文件;“-b filesize:5”表示每达到5kB写下一个ring buffer文件;“-b files:7”表示ring buffer文件最多7个,周而复始地使用,如果这个参数不设定,tshark会将磁盘写满为止。
    4. 文件输入
    -r 设置tshark分析的输入文件。tshark既可以抓取分析即时的网络流量,又可以分析dump在文件中的数据。-r不能是命名管道和标准输入。
    5. 处理类
    -R 设置读取(显示)过滤表达式(read filter expression)。不符合此表达式的流量同样不会被写入文件。注意,读取(显示)过滤表达式的语法和底层相关的抓包过滤表达式语法不相同,它的语法表达要丰富得多,请参考http://www.ethereal.com/docs/dfref/和http://www.ethereal.com/docs/man-pages/ethereal-filter.4.html。类似于抓包过滤表达式,在命令行使用时最好将它们quote起来。
    -n 禁止所有地址名字解析(默认为允许所有)。
    -N 启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。
    -d 将指定的数据按有关协议解包输出。如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”。注意选择子和解包协议之间不能留空格。
    6. 输出类
    -w 设置raw数据的输出文件。这个参数不设置,tshark将会把解码结果输出到stdout。“-w-”表示把raw输出到stdout。如果要把解码结果输出到文件,使用重定向“>”而不要-w参数。
    -F 设置输出raw数据的格式,默认为libpcap。“tshark -F”会列出所有支持的raw格式。
    -V 设置将解码结果的细节输出,否则解码结果仅显示一个packet一行的summary。
    -x 设置在解码输出结果中,每个packet后面以HEX dump的方式显示具体数据。
    -T 设置解码结果输出的格式,包括text,ps,psml和pdml,默认为text。
    -t 设置解码结果的时间格式。“ad”表示带日期的绝对时间,“a”表示不带日期的绝对时间,“r”表示从第一个包到现在的相对时间,“d”表示两个相邻包之间的增量时间(delta)。
    -S 在向raw文件输出的同时,将解码结果打印到控制台。
    -l 在处理每个包时即时刷新输出。
    -X 扩展项。
    -q 设置安静的stdout输出(例如做统计时)
    -z 设置统计参数。
    7. 其它
    -h 显示命令行帮助。
    -v 显示tshark的版本信息。
    -o 重载选项。
    

      

    tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'
    

      

    下面介绍参数含义:

    -s 512 :只抓取前512个字节数据
    -i eth0 :捕获eth0网卡
    -n :禁止网络对象名称解析
    -f 'tcp dst port 80' :只捕捉协议为tcp,目的端口为80的数据包
    -R 'http.host and http.request.uri' :过滤出http.host和http.request.uri
    -T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
    -l :输出到标准输出
    3、实时打印当前mysql查询语句
    tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
    下面介绍参数含义:
    -s 512 :只抓取前512个字节数据
    -i eth0 :捕获eth0网卡
    -n :禁止网络对象名称解析
    -f 'tcp dst port 3306' :只捕捉协议为tcp,目的端口为3306的数据包
    -R 'mysql.query' :过滤出mysql.query
    -T fields -e mysql.query :打印mysql查询语句
    tshark使用-f来指定捕捉包过滤规则,规则与tcpdump一样,可以通过命令man pcap-filter来查得。
    tshark使用-R来过滤已捕捉到的包,与界面板wireshark的左上角Filter一致。

     Linux网络相关

    1.ip addr查看网络信息

    2.不能用ifconfig的时候需要安装net-tools包

    3.ifup 连接一个网卡,断掉一个网卡 ifdown

    4.添加虚拟网卡

    [root@bogon ~]# cd /etc/sysconfig/network-scripts/
    [root@bogon network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736:0
    
    [root@bogon network-scripts]# vi !$
    vi ifcfg-eno16777736:0

    修改网卡配置文件

    "ifcfg-eno16777736:0" 19L, 353C written
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eno16777736:0
    UUID=236aa9fb-d376-43af-9781-a2844479a034
    DEVICE=eno16777736:0
    ONBOOT=yes
    IPADDR=10.21.95.123
    NETMASK=255.255.255.0

    新网卡添加成功

    [root@bogon network-scripts]# ifdown eno16777736 && ifup eno16777736
    Device 'eno16777736' successfully disconnected.
    成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
    [root@bogon network-scripts]# ifconfig
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.21.95.122  netmask 255.255.248.0  broadcast 10.21.95.255
            inet6 fe80::20c:29ff:fec1:d18d  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:c1:d1:8d  txqueuelen 1000  (Ethernet)
            RX packets 2023896  bytes 1218698819 (1.1 GiB)
            RX errors 0  dropped 12  overruns 0  frame 0
            TX packets 414344  bytes 51499666 (49.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.21.95.123  netmask 255.255.255.0  broadcast 10.21.95.255
            ether 00:0c:29:c1:d1:8d  txqueuelen 1000  (Ethernet)
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 0  (Local Loopback)
            RX packets 14  bytes 1368 (1.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 14  bytes 1368 (1.3 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
            ether 00:00:00:00:00:00  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    virbr0-nic: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether 52:54:00:7c:76:ca  txqueuelen 500  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@bogon network-scripts]# 
    

      

     成功ping通

    查看网络是否通

    [root@bogon network-scripts]# ethtool eno16777736
    
    [root@bogon network-scripts]# mii-tool eno16777736
    eno16777736: negotiated 1000baseT-FD flow-control, link ok
    [root@bogon network-scripts]# 
    

      

     更改主机名

    ubuntu@ip-10-23-45-76:/$ hostnamectl set-hostname sunyujun
    

    更改主机名的配置文件

    ubuntu@ip-10-23-45-76:~$ cat /etc/hostname 
    ip-10-23-45-76
    ubuntu@ip-10-23-45-76:~$ 
    

    DNS配置文件

    ubuntu@ip-10-23-45-76:~$ cat /etc/resolv.conf 
    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 10.23.0.2
    search cn-north-1.compute.internal
    ubuntu@ip-10-23-45-76:~$ 
    
    ubuntu@ip-10-23-45-76:/$ vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

    linux hosts 文件

    ubuntu@ip-10-23-45-76:/$ cat /etc/hosts
    127.0.0.1 localhost
    
    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    ubuntu@ip-10-23-45-76:/$ 
    

      

    firewalld和netfilter

    1.临时关闭运行setenforce 0,永久关闭selinux需要编辑配置文件

    [root@bogon ~]# vim /etc/selinux/config 
    [root@bogon ~]#
    

    2.设置配置文件SELINUX=disabled保存退出

    3.用getenforce查看

    [root@bogon ~]# getenforce 
    Disabled
    [root@bogon ~]#
    

    4.关闭firewalld开机启动

    [root@bogon ~]# systemctl disable firewalld 
    [root@bogon ~]# 
    

    5.关闭firewalld服务

    [root@bogon ~]# systemctl stop firewalld   
    [root@bogon ~]# 
    

    6.安装iptables服务

    [root@bogon ~]# yum install -y iptables-services
    

    7.开启netfilter服务

    [root@bogon ~]# systemctl enable ip
    ip6tables.service  iprinit.service    iprutils.target    iptables.service
    iprdump.service    iprupdate.service  ipsec.service      
    [root@bogon ~]# systemctl enable iptables
    Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
    [root@bogon ~]# systemctl start iptables
    [root@bogon ~]#  

    8.查看iptables防火墙的默认规则

    [root@bogon ~]# iptables -nvL
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    79568  195M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    12367 2538K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT 73815 packets, 4971K bytes)
     pkts bytes target     prot opt in     out     source               destination         
    [root@bogon ~]# 
  • 相关阅读:
    SpringBoot:Web开发
    java @Value注解 和 @Data注解
    携程 Apollo 配置中心传统 .NET 项目集成实践
    Spring Boot 整合 JPA 使用多个数据源
    ibatis 核心原理解析!
    Spring Boot 面试,一个问题就干趴下了!
    在Docker中部署Spring Boot项目
    REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    超全详解Java开发环境搭建
    SpringBoot入门(一):从HelloWorld开始
  • 原文地址:https://www.cnblogs.com/sunyujun/p/8205616.html
Copyright © 2020-2023  润新知