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
下一篇 2016-09-08

相关推荐

  • LVS集群类型

     lvs:Linux Virtual Server         l4:四层路由、四层交换          根据请求报文的目标IP和目标PORT将其调度转发至后端的某主机;      IPTABLES:  …

    Linux干货 2017-01-10
  • OpenSSL

    一、什么是OpenSSL 在电脑网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通讯,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。 OpenSSL由三部分组成:     libencryp…

    Linux干货 2016-04-25
  • Linux程序包管理之RPM

    Linux程序包管理之RPM RPM概念 rpm是什么 RPM 是Ret Hat Package Manager(RPM软件包管理器)的缩写,遵循GPL协议,可以运行在各种Linux上,公认的行业标准。 rpm干什么 对于终端用户来说 简化了Linux系统的安装、卸装、更新和升级的过程,用命令完成 对于开发者来说 RPM允许把软件编码包装成源代码和程序包提供…

    Linux干货 2016-11-22
  • https实现

    实现https 搭建CA 颁发证书

    2018-01-29
  • LVM逻辑卷管理

    本次内容         1、什么是LVM         2、为什么使用LVM         3、LVM的操作命令 …

    Linux干货 2016-09-02
  • httpd配置

    httpd配置 修改监听的IP和端口(port) 持久连接 MPM DSO(Dynamic Shared Object) main server的文档页面路径 站点访问控制 定义站点主页面 定义路径别名 设定默认字符集 日志 基于用户的访问控制 虚拟主机 httpd状态页面 使用压缩模块mod_daflate优化速度 基于IP 为每个虚拟主机至少准备一个IP…

    Linux干货 2016-12-21

评论列表(1条)

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

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