網絡管理命令

網絡管理

1、簡述osi七層模型和TCP/IP五層模型

  • OSI七層模型為:從上至下為應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。
  • OSI七層參考模型的各個層次的劃分遵循下列原則:

a、同一層中的各網絡節點都有相同的層次結構,具有同樣的功能。
b、同一節點內相鄰層之間通過接口(可以是邏輯接口)進行通信。
c、七層結構中的每一層使用下一層提供的服務,并且向其上層提供服務。
d、不同節點的同等層按照協議實現對等層之間的通信。

  • 各層功能

應用層:文件傳輸,電子郵件,文件服務,虛擬終端。協議有:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示層:數據格式化,代碼轉換,數據加密
會話層:解除或建立與別的接點的聯系
傳輸層:提供端對端的接口。協議有:TCP,UDP
網絡層:為數據包選擇路由。協議有:IP,ICMP,RIP,OSPF,BGP,IGMP
數據鏈路層:傳輸有地址的幀以及錯誤檢測功能。協議有:SLIP,CSLIP,PPP,ARP,RARP,MTU
物理層:以二進制數據形式在物理媒體上傳輸數據。協議有:ISO2110,IEEE802,IEEE802.2

TCP/IP五層模型
TCP/IP五層模型為:應用層、傳輸層、網絡層、數據鏈路層、物理層

2、簡述iproute家族命令

iproute家族命令眾多,這里只介紹ip與ss命令

ip命令
這里主要介紹如何通過ip命令的link、route、addr分別設置查看主機的IP地址,路由等信息

  • ip link
    set:修改設備屬性
    show:顯示設備屬性的,state是狀態。顯示的是二層設備屬性的,與IP無關
    ip link set eht1 down/up
    //關閉或開啟網卡
    ip link set eth1 multicast off/on
    //關閉或開啟多播功能
    ip link set eth2 down
    ip link set eth1 name eno6668889999
    //先down掉網卡再改名
    ip link add mynet
    //添加一個叫mynet的網絡空間
    ip link set eno16777736 netns mynet
    //將16777736放入mynet空間
  • ip netns:管理網絡名稱空間(manage network namespaces)
    ip netns list:列出所有的netns
    ip netns add NAME:創建指定的netns
    ip netns del NAME:刪除指定的netns
    ip netns exec NAME COMMAND:在指定的netns中運行命令
    ip netns list
    //查看網絡空間名稱
    ip netns exec mynet ip link show
    //這時用普通的命令是查看不到16777736網卡的,用此命令才能查看到此網卡,這像是一個虛擬機一樣。這是用來創建虛擬網絡的
    ip netns del mynet
    //刪除網絡空間
  • ip address:IP地址管理
    ip address delete:刪除地址
    ip address show:查看地址
    ip address flush:清空所有地址
    ip addr show
    //顯示所有IP地址
    ip addr list
    ifconfig eth1 0
    //刪除eth1上的地址
    ip addr add 192.168.1.22/24 dev eno16777736
    //添加地址,可以在一塊網卡上添加多個地址,只有在一個網段的地址上才會有secondary,不同網段不會有。添加的地址用ifconfig是顯示不了的,如果要顯示需要加接口別名
    ip addr add 192.168.1.43/24 dev eno16777736 lable eno16777736:0
    //這樣用ifconfig就能顯示了
    ip link show
    //這樣可以查看到地址
    ip addr del 192.168.1.43/24 dev eno16777736
    //刪除地址
    ip addr flush dev eth1
    //清空eth1上的所有地址
  • ip route:路由表管理
    ip route add – add new route:添加路由
    ip route change – change route:修改路由
    ip route replace – change or add new one:替換路由,有老的就改老的,沒有就加新的
    ip route list
    顯示路由
    ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.20.0.1
    要到達192的網絡,要經由10網絡,via是指明下一跳地址的,下一跳地址應該是本地同一網段內的地址。還可以配置源地址,源地址應該是本地網卡上的地址中的一個
    ip route add default via 172.16.0.1 dev eno16777736
    //添加默認網關
    ip route delete 192.168.1.0/24
    刪除到192網絡的路由
    ip route show src 172.16.100.6
    只顯示源地址是172的路由條目
    ip route get 192.168.0.0/24
    顯示到192網絡的路由
    ip route flush 10/8
    清除10開頭的網絡路由,如果刪除不了,就要將地址寫的再詳細些

ss命令
選項:
-t:TCP協議的相關連接
-u:UDP相關的連接
-w:raw socket(裸套接字)相關的連接
-l:監聽狀態的連接
-a:所有狀態的連接
-n:數字格式
-p:相關的程序及其PID
-e:擴展格式信息
-m:內存用量
-o:計時器信息

3、詳細說明進行管理工具htop、vmstat等相關命令,并舉例
htop是比top命令更強大的監控命令
運行htop命令后會有如下顯示

Alt text

  • 最上方顯示信息為:左邊為:cpu、內存、交換分區的使用情況,右邊為:Tasks為進程總數,當前運行的進程數、Load average為系統1分鐘,5分鐘,10分鐘的平均負載情況、Uptime為系統運行的時間。
  • 下方信息為:
    PID:進行的標識號
    USER:運行此進程的用戶
    PRI:進程的優先級
    NI:進程的優先級別值,默認的為0,可以進行調整
    VIRT:進程占用的虛擬內存值
    RES:進程占用的物理內存值
    SHR:進程占用的共享內存值
    S:進程的運行狀況,R表示正在運行、S表示休眠,等待喚醒、Z表示僵死狀態
    %CPU:該進程占用的CPU使用率
    %MEM:該進程占用的物理內存和總內存的百分比
    TIME+:該進程啟動后占用的總的CPU時間
    COMMAND:進程啟動的啟動命令名稱
  • 最下方信息為:
    F1:查看htop使用說明
    F2:htop 設定
    F3:搜索進程
    F4:增量進程過濾器
    F5:顯示樹形結構
    F6:選擇排序方式
    F7:可減少nice值可以提高對應進程的優先級
    F8:可增加nice值,降低對應進程的優先級
    F9:可對進程傳遞信號
    F10:結束htop

vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值
一般vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是采樣的時間間隔數,單位是秒,第二個參數是采樣的次數,如:vmstat 2 1,其中2表示每個兩秒采集一次服務器狀態,1表示只采集一次。一般只需要輸入多久采集一次就可以了。
下面解釋一下顯示的內容:

  • r 表示運行隊列(就是說多少個進程真的分配到CPU),我測試的服務器目前CPU比較空閑,沒什么程序在跑,當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關系,一般負載超過了3就比較高,超過了5就高,超過了10就不正常了,服務器的狀態很危險。top的負載類似每秒的運行隊列。如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。
  • b 表示阻塞的進程,這個不多說,進程阻塞,大家懂的。
  • swpd 虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其他機器。
  • free 空閑的物理內存的大小,我的機器內存總共8G,剩余3415M。
  • buff Linux/Unix系統是用來存儲,目錄里面有什么內容,權限等的緩存,我本機大概占用300多M
  • cache cache直接用來記憶我們打開的文件,給文件做緩沖,我本機大概占用300多M(這里是Linux/Unix的聰明之處,把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高 程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。)
  • si 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。我的機器內存充裕,一切正常。
  • so 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。
  • bi 塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte,我本機上沒什么IO操作,所以一直是0,但是我曾在處理拷貝大量數據(2-3T)的機器上看過可以達到140000/s,磁盤寫入速度差不多140M每秒
  • 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時間。

4、使用until和while分別實現192.168.0.0/24網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不通則輸出”fail!”
#!/bin/bash
#
NET=192.168.1.
NET1=0
trap 'echo "exit..." && exit 1' INT
while [ $NET1 -lt 255 ];do
let NET1++
if ping -c 1 -W 1 $$NET$NET1 &> /dev/null;then
echo -e "\033[31m$NET$NET1 is success!\033[0m"
else
echo -e "\033[32m$NET$NET1 is fail!\033[0m"
fi
done

#!/bin/bash
#
NET=192.168.1.
NET1=0
trap 'echo "exit!!!" && exit 1' INT
until [ $NET1 -ge 255 ];do
let NET1++
if ping -W 1 -c 1 $$NET$NET1 &> /dev/null;then
echo -e "\033[31m$NET$NET1 is success!\033[0m"
else
echo -e "\033[32m$NET$NET1 is fail!\033[0m"
fi
done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90908

(1)
ruopu1989ruopu1989
上一篇 2018-01-07 15:15
下一篇 2018-01-08 08:34

相關推薦

  • 程序包管理:rpm , yum ,與編譯

    1.RPM,Redhat Package Manager。是Redhat和CentOS等Linux系統上常見的軟件安裝工具。 軟件安裝: 常見選項 -i                #install…

    Linux干貨 2016-03-26
  • 編譯安裝apache

    編譯安裝apache可簡單分為3步: 第一步:下載apache軟件包解決依賴關系并生成Makefile 1.首先準備開發環境,可以通過yum安裝開發包組:yum groupinstall Development Tools 2.準備apache軟件包,可以通過http://httpd.apache.org下載到本地。隨后解包tar -xf?httpd-2.4…

    Linux干貨 2017-12-03
  • 馬哥教育網絡班21期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@centos ~]# cp -r /etc/skel /home/tuser1 [root@centos ~]# ls -aldh&…

    Linux干貨 2016-07-29
  • linux 啟動管理

    1、Linux系統啟動流程:POST 加電自檢 — BIOS(Boot Sequence)–>MBR(bootloader,446)(加載前512字節后的驅動程序,進入/boot目錄,加載內核)–>Kernel–>initrd–>(系統根路徑 /)(ROOTFS)/sbin/…

    Linux干貨 2017-09-03
  • 計算機網絡知識,腳本編程_第八周練習

    Q1:請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:網橋(Bridge)是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離沖突域。網橋比集線器(Hub)性能更好,集線器上各端口都是共享同一條背板總線的。后來,網橋被具有更多端口、同時也可隔離沖突域的交換機(Sw…

    Linux干貨 2016-12-25
  • Linux文件系統的創建、檢測、修復、分區等工具的使用

    一、文件系統管理 什么是文件系統?     我的理解是文件系統是對磁盤上的數據和文件結構的管理規范。     如果文件系統沒有繼承性,那么以前文件系統的數據就無法傳到新的文件系統中。     Linux的文件系統有這么幾種:ext2, ex…

    系統運維 2016-03-03
欧美性久久久久