一、在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
原創文章,作者:苦澀咖啡,如若轉載,請注明出處:http://www.www58058.com/44535
內容寫的很詳細,面面俱到了,對于標題可以進行一些簡化。