CentOS7下使用rmcli配置IP地址详解及网络连接状态查看工具和进程管理工具的使用

一、在CentOS7中推荐使用nmcli工具来管理网卡配置,nmcli是NetworkManager Command-Line Interface(网络管理命令行接口)的简称,可以通过它以命令行的方式管理网卡。也可以使用nmtui管理工具,nmtui是NetworkManager Text-User Interface(网络管理文本用户接口)的简称,它提供的是图形化管理工具,相当于CentOS6下的system-config-network工具。以下着重介绍nmcli的使用。

1、查看所有网卡的详细信息,device指正在使用的网卡接口

]# nmcli device show

2、查看所有网卡的连接状态信息

]# nmcli device status

3、查看所有服务于网卡接口的连接,connection指一组关于网卡的配置信息,对于一个单一的网卡设备可以有多个连接,并且可以在多个连接之间切换,但一个网卡接口一次只能对应一个连接生效

]# nmcli connection show

4、查看所有活动的连接,即对应网卡生效的连接

]# nmcli connection show –active

5、添加一个新的连接并绑定网卡,添加完之后会在/etc/sysconfig/network-scripts目录下自动生成一个网卡的配置文件(如下,新建一个名为test的连接,并绑定网卡eno33554984)

]# nmcli connection add con-name test type ethernet ifname eno33554984 

    con-name:需要指定连接名

    type:需要指定网卡的类型,如 bond、adsl、team、ethernet等

    ifname:需要指定要绑定的网卡接口

6、使用modify命令可以修改连接的配置,如修改ip地址,修改网关gw,修改DNS、修改BOOTPROPO类型等,如下,修改test的配置为静态IP:1.1.1.10/24,GW:1.1.1.1、DNS:8.8.8.8,并且不让自动连接

]# nmcli connection modify test ipv4.method manual ipv4.addresses 1.1.1.10/24 ipv4.gateway 1.1.1.1 ipv4.dns 8.8.8.8 connection.autoconnect no

IP地址的修改可以使用加减号([+|-]ipv4.addresses),表示追加一个IP或删除一个IP,而不是覆盖修改原来的IP。DNS的修改也一样可以使用加减号([+|-]ipv4.dns);

常用的修改参数以及对应配置文件修改项如下:

ipv4.method manual:表示修改BOOTPROTO=none

ipv4.method auto:表示修改BOOTPROTO=dhcp

ipv4.addresses 192.0.2.100/24 :表示修改IPADDR0=192.0.2.100 PREFIX0=24

ipv4.gateway 192.0.2.1:表示修改GATEWAY=192.0.2.1

ipv4.dns 8.8.8.8:表示修改DNS1=8.8.8.8

+ipv4.dns 8.8.4.4:表示修改DNS2=8.8.4.4(有时候也表示DNS3或DNS1,主要看配置文件中已有DNS数量)

ipv4.dns-search example.com :表示修改DOMAIN=example.com

ipv4.ignore-auto-dns true:表示修改PEERDNS=no

connection.autoconnect yes:表示修改ONBOOT=yes

connection.id eth0:表示修改NAME=eth0

connection.interface-name eth0:表示修改DEVICE=eth0

802-3-ethernet.mac-address . . .:表示修改HWADDR= . . .

Examples:
nmcli con mod home-wifi wifi.ssid rakosnicek
nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8"
nmcli con mod em1-1 +ipv4.dns 8.8.4.4
nmcli con mod em1-1 -ipv4.dns 1
nmcli con mod em1-1 -ipv6.addr "abbe::cafe/56"
nmcli con mod bond0 +bond.options mii=500
nmcli con mod bond0 -bond.options downdelay

7、修改连接配置后需要重新加载配置,重新加载配置后不用重启服务也可立即生效

]# nmcli connection reload

也可以使用下面命令手动指定激活某个连接配置,这种方式经常用于不同连接之间的切换

]# nmcli connection up test

也可以使用如下命令断开某个连接,如果该链接所绑定的网卡有多个连接配置,则会自动切换到下一个连接上,这种方式断开后还会自动激活该链接

]# nmcli connection down test

8、删除某个连接配置可以使用delete命令,删除时自动将/etc/sysconfig/network-scripts下的相关配置文件一并删除,如下,删除test连接

]# nmcli connection delete test

9、禁用某个网卡接口设备,但是系统重启后还会自动激活该网卡

]# nmcli device disconnect eno33554984 

10、多个网卡绑定(bond),使用mode1(active-backup)

第1步:创建bond,并指定IP地址,网关等

]# nmcli connection add type bond mode active-backup miimon 100 ip4 10.10.20.78 gw4 10.10.20.1 

第2步,将网卡eno50332208和eno33554984加入到bond中(需要几个网卡就添加几个)

]# nmcli connection add con-name bond-eth1 type bond-slave ifname eno50332208 master nm-bond

]# nmcli connection add con-name bond-eth2 type bond-slave ifname eno33554984 master nm-bond

第3部,启用bond、bond-eth1和bond-eth2

]# nmcli connection up bond

]# nmcli connection up bond-eth1 

]# nmcli connection up bond-eth2

二、网络连接状态查看工具

1、netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作,一般用于检验本机各端口的网络连接情况,使用时如果不带参数,netstat显示活动的 TCP 连接。

netstat命令常用的选项有:

    -a:显示所有socket,包括正在监听的

    -t:显示TCP协议的连接情况

    -u:显示UDP协议的连接情况

    -l:显示处于 Listen (监听) 状态的服务

    -n:以数字显示ip和端口而非解析过的主机名或用户名

    -e:显示扩展信息,包括用户信息、Inode 信息

    -p:显示相关进程及PID

    -r:显示路由表

    -i:显示所有网络接口数据包收发情况

    -I:显示某一个网卡接口数据包收发情况

    -s:显示每种协议的统计信息

    常用的组合有:-tan、-uan、-tnl、-unl

Examples:
#查看路由表,不跟-n的情况下
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.20.0      *               255.255.255.0   U         0 0          0 bond0
link-local      *               255.255.0.0     U         0 0          0 bond0
default         10.10.20.1      0.0.0.0         UG        0 0          0 bond0
#查看路由表,跟上-n选项是以数字的形式显示ip和端口
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.20.0      0.0.0.0         255.255.255.0   U         0 0          0 bond0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 bond0
0.0.0.0         10.10.20.1      0.0.0.0         UG        0 0          0 bond0
#查看网卡接口数据包收发情况
[root@localhost ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eno16777  1500     4782      0      0 0          4172      0      0      0 BMRU
...
#查看TCP协议下已连接的端口
[root@localhost ~]# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0     52 192.168.99.101:22       192.168.99.1:55726      ESTABLISHED
#查看TCP协议下的所有监听端口
[root@localhost ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN
#查看所有状态下并且使用TCP协议的应用程序端口,包括监听状态、已连接状态等
[root@localhost ~]# 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:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0     52 192.168.99.101:22       192.168.99.1:55726      ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN 
#查看所有状态下并且使用TCP协议的应用程序端口及进程PID
[root@localhost ~]# netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1497/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1594/master         
tcp        0     52 192.168.99.101:22       192.168.99.1:55726      ESTABLISHED 10924/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      1497/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1594/master  
#查看所有状态下并且使用TCP协议的应用程序端口及进程PID ,以及用户信息和Inode信息
[root@localhost ~]# netstat -tanpe
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          19087      1497/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          19217      1594/master         
tcp        0     52 192.168.99.101:22       192.168.99.1:55726      ESTABLISHED 0          40072      10924/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      0          19097      1497/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      0          19218      1594/master

    2、ss是Socket Statistics的缩写。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss命令的用法以及选项跟netstat的基本一样,这里不做过多解释,推荐使用ss命令。

三、进程管理工具

进程的状态有:

D,interruptible sleeping— 不可中断睡眠

R ,running— 运行状态

S ,interruptible sleeping— 可中断睡眠

T ,stopped— 停止状态,暂停与内存中,但不会被调度,除非手动停止

Z ,zombie— 僵死状态,父进程结束前,子进程不关闭

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:session leader,会话(子进程)发起者

   

1、ps命令,ps命令用来列出系统中当前运行的进程。ps命令列出的是当前进程的快照,就是执行ps命令时的那些进程,不能实时的动态列出进程。使用PS命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

ps不跟选项的默认情况下只显示当前终端上的进程,ps常用的选项有:

BSD风格的选项,不用跟“-”号

a:显示所有终端上的进程

x:显示所有与终端无关的进程,即不需要连接终端的进程

u:显示进程所有者的信息,aux是常用的组合

f:用ASCII字符显示树状结构,表达进程间的关系

o:常与ax结合使用,可定制显示某些信息,如pid、comm、%cpu、%mem、state、tty、euser、ruser

[root@localhost ~]# ps axo pid,comm,%cpu,%mem,state,tty,euser,ruser 
   PID COMMAND         %CPU %MEM S TT       EUSER    RUSER
     1 systemd          0.0  0.3 S ?        root     root
     2 kthreadd         0.0  0.0 S ?        root     root
[root@localhost ~]# ps aux  
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 192104  7300 ?        Ss   15:01   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    15:01   0:00 [kthreadd]

UNIX风格的常用组合,跟一个“-”号

-ef:-e表示显示所有进程,等同于-A,-f表示显示完整格式程序信息

-fFH:-F表示更完整格式的进程信息,-H表示以层级格式显示进程相关信息

-eo:o表示可定制显示某些信息,如pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

2、uptime 可以显示当前时间、系统已启动的时间、当前上线人数、系统平均负载(1、5、10分钟的平均数,一般不会超过1)

[root@localhost ~]# uptime 
 20:42:32 up  5:41,  1 user,  load average: 0.00, 0.01, 0.05

3、top命令,top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

wKiom1fQDJOBPxqrAABbF6KwrUE478.png

第一行:显示的信息与uptime显示的一样;

第二行:显示的是任务(进程)信息,具体包括系统现在共有344个进程,其中处于运行状态的有1个,处于可中休眠状态的有343个,处于停止状态的有0个,处于僵死状态的有0个;

第三行:显示的是关于CPU的信息,具体解释如下

    sy:表示用户运行程序占用CPU的百分比

    sy:表示用于运行内核占用CPU的百分比

    ni:用户进程空间所改变过优先级的进程占用CPU的百分比

    id:空闲CPU百分比

    wa:IO等待占用CPU的百分比

    hi:硬中断占用CPU的百分比

    si:软中断占用CPU的百分比

    st:被虚拟机“偷走”的百分比

第四行:显示的是物理内存使用情况

第五行:显示的是交换内存使用情况

第六行:默认是空白行,当在top程序中输入命令时,显示状态的地方,在这里可以输入的命令有:

    P:以占据CPU的百分比大小排序

    M:以占据内存空间大小排序

    T:以CPU累积占用时间排序

    l:是否显示系统负载行(第一行信息)

    t:是否显示进程摘要信息及CPU负载状态(第二行和第三行信息)

    1(数字):平均或单独显示CPU的负载状态

    m:是否显示内存相关的状态信息(第四行和第五行信息)

    s:修改刷新时间间隔

    k:终止指定进程

    q:退出命令

第七行:各个进程的状态监控信息,没列的含义如下:

    PID:每个进程ID

    USER:进程的所有者

    PR:进程的优先级,值越小优先级越高

    NI:Nice的简写,与priority有关,也是值越小优先级越高

    VIRT:进程需要的虚拟内存大小,而非使用的虚拟内存大小

    RES:进程当前使用的内存大小,不包括swap

    SHR:进程与其他进程共享的内存大小

    S:进程的状态

    %CPU:CPU的使用率

    %MEM:内存的使用率

    TIME+:CPU使用时间的累加

4、htop命令,htop是top的增强版,功能更强大,系统默认情况下是没有安装的,需要epel源来进行安装。

wKioL1fQG8rQzEcMAADq254DjsA842.png

htop与top不同的是最下面有操作提示,可以根据提示进行更多更能的操作,例如可以设置CPU、内存的显示风格等。

5、pgrep命令,根据指定的内容从运行进程队列中查找进程,并显示查找到的进程ID。

用法:pgrep [options] <pattern>

常用选项:

-U:显示指定用户(真正发起者)的进程

-u:显示指定用户(真正生效者)的进程

-G:显示指定用户组(真正发起者)的进程

-g:显示指定用户组(真正生效者)的进程

-t:显示指定终端上的进程

-P,显示指定进程的子进程

-l:显示进程名称

-a:显示完整格式的进程名

6、pidof命令,显示指定命令所自动的进程ID。

例如要显示sshd命令进程的ID:  #]pidof sshd

7、kill命令,向进程发送控制信号,以实现对进程管理

显示当前系统可以信号:#] kill -l

其中常用的信号有:

1)SIGHUP: 通知进程重读配置文件已让新的配置生效,无须重新启动进程

2)SIGINT: 打断正在运行中的进程;相当于Ctrl+c

9)SIGKILL: 强行中止正在运行的进程

15)SIGTERM:安全中止正在运行的进程

18)SIGCONT:继续运行指定进程

19)SIGSTOP:暂停进程,后台休眠

向进程发送信号的语法为:kill [-SIGNAL] PID

原创文章,作者:苦涩咖啡,如若转载,请注明出处:http://www.178linux.com/44535

(1)
上一篇 2016-09-07 22:27
下一篇 2016-09-08 18:55

相关推荐

  • 对软连接进行cp,rm

    软连接的原理 图1 由 1 号inode 读取到连结档的内容仅有档名,根据档名链接到正确的目录去取得目标文件的inode , 最终就能够读取到正确的数据了。 软连接的使用 创建软连接,从下图可以看出软连接的大小是11个字节,对比/etc/passwd和passwdlns可知他们不是同一个文件。 在复制cp的时候对软连接的处理 对指向文件的的软连接:使用cp …

    Linux干货 2017-02-25
  • Linux常见文件管理命令

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。3、请使用命令行展开功能来完成以下练习:(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d(2)、创建/tmp/mylinux目录下的:mylinux/├── bin├── boot│  …

    2018-02-26
  • 浅谈用户名和权限

        小编已经写了两篇博客了,却忘了自我介绍,咳咳咳(隆zhuang重qiang介zuo绍shi)一下:翠衣薄纱如花艳,柳眉凤眼俏佳人说的就是我!不扯了其实,小编拥有一个四口之家,那么小编今天就借家献佛给你们讲讲用户组和权限。     所属主(me):一般为文件的创建者,谁创建了该文件,就天然的成…

    Linux干货 2017-07-30
  • ansible基础应用

    ansible基础 一、运维主要工作 ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansible特性 (1)模块化:调用特定的模块,完成特定任务; (2)基于python语言实现,由paramiko,PYYAML和JINJa2三个关键模块组成 (3)部署简单:agentless…

    Linux干货 2017-01-04
  • varnish浅述

    安装varnish,安装包需要到官网下载http://www.varnish-cache.org/releases/index.html varnish的程序环境: /etc/varnish/varnish.params:配置varnish服务进程的工作特性,例如监听的地址、端口及缓存机制等; /etc/varnish/default.vcl:配置各Chil…

    2016-11-15
  • Linux不同发行版之间的联系与区别

    Linux发行版有商业版、社区版两类。两者的共同点都是GNU/Linux发行版,区别在于商业版是由商业公司维护,社区版是社区组织维护。由于linux发行版都要遵循GPL协定,任何人都有使用、共享、修改软件源代码的自由,所以商业版的收入主要来自向企业提供支持服务,它的软件基本都是免费的。

    Linux干货 2018-03-04

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 11:23

    内容写的很详细,面面俱到了,对于标题可以进行一些简化。