一、在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的任务管理器。
第一行:显示的信息与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源来进行安装。
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
转载于:https://blog.51cto.com/fengliang/1847517