1、簡述osi七層模型和TCP/IP四層模型 OSI七層模型 TCP/IP四層模型 2、簡述iproute家族命令 ip命令: ip [OPTIONS] OBJECT {COMMAND|help} ip link:network device configuration. ip link set D ...
1、簡述osi七層模型和TCP/IP四層模型
OSI七層模型
TCP/IP四層模型
2、簡述iproute家族命令
ip命令:
ip [OPTIONS] OBJECT {COMMAND|help}
ip link:network device configuration.
ip link set DEV:修改設備屬性
1) up或down:啟用或停用介面;示例,ip link set eth1 up/down
2) multicast on 或 multicast off:啟用或禁用多播功能;示例,ip link set eth1 multicast on/off
3) name NAME:重命名介面;示例,ip link set eth1 name eth666
4) mtu NUMBER:設置MTU的大小,預設為1500;(MTU,最大傳輸單元,某一層通信協議上所能承受的最大數據包大小;MTU越大承載的有效數據包就越大)
5) netns PID:將指定的網卡移動到指定的虛擬網路(本地系統將看不到這塊網卡)
示例,ip netns add mynet ( 構建虛擬網路mynet )
ip link set eth1 netns mynet ( 將介面eth1添加到虛擬網路mynet )
ip netns exec mynet ip link show ( 查看虛擬網路mynet的介面信息 )
ip netns del mynet ( 刪除虛擬網路 )
ip link show/list:顯示設備屬性
ip link help:顯示簡要使用幫助
ip netns:manage network namespaces.
釋義:netns是linux中提供網路虛擬化的一個項目,使用netns可以在本地虛擬化出多個網路環境,每個虛擬網路空間都獨立於當前系統的網路空間,其中的網路設備及iptables規則等都是獨立的。
1) ip netns list:列出所有的netns
2) ip netns add NAME:創建指定的netns
3) ip netns del NAME:刪除指定的netns
4) ip netns exec NAME COMMAND:在指定的netns中運行命令
5) ip netns help:顯示簡要使用幫助
6) exit:退出虛擬網路
ip address:protocol address management.
1) ip address add IFADDR dev IFACE:給指定網卡添加多一個IP;示例,ip address add 192.168.10.2/24 dev eth1
[label NAME]:為額外添加的地址指明介面別名;示例,ip address add 10.1.1.10/8 dev eth1 label eth1:0
[broadcast ADDRESS]:廣播地址;會根據IP和NETMASK自動計算得到;
[scope SCOPE_VALUE]:global:全局可用;link:介面可用;host:僅本機可用
2) ip address delete IFADDR dev IFACE:刪除介面的ip;示例,ip address delete 10.1.1.10/8 dev eth1
3) ip address list/show [IFACE]:顯示介面的地址信息;示例,ip address show,ip address list eth1
4) ip address flush dev IFACE:清空介面所有的地址信息;示例,ip address flush dev eth1
ip route:routing table management.
1) ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]:添加路由信息;
示例,ip route add 10.0.2.0/24 via 10.0.1.11 (到達10.0.2.0/24網路的下一跳地址為10.0.1.11)
ip route add 10.0.2.0/24 dev eth0 (通過介面eth0到達10.0.2.0/24網路)
ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 (到達192.168.1.0/24網路須通過介面eth1的下一跳地址10.0.0.1)
ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.10.100 (通過eth1介面的10.0.10.100地址,經下一跳10.0.0.1到達網路192.168.1.0/24;此條路由的網關是本機)
ip route add default via 172.16.0.1 dev eth0 (添加預設路由,通過eth0介面經下一跳172.16.0.1出去)
2) ip route del:刪除路由信息
示例,ip route delete 192.168.1.0/24
ip route show:顯示路由信息
3) ip route flush - flush routing tables
示例,ip route flush 192.168.1.0/24
4) ip route get:獲取路由信息
示例,ip route get 192.168.0.0/24
ss命令:
獲取socket信息,顯示和netstat類似的內容,但比netstat更高效。
ss [options] [FILTER]
options:
-t:TCP協議的相關連接
-u:UDP相關的連接
-w:僅顯示raw套接字的連接
-l:顯示處於監聽狀態的連接
-a:所有狀態的連接
-n:不解析服務名稱
-p:顯示使用socket的進程
-e:顯示詳細的信息
-m:記憶體用量
-s:顯示socket使用概況
-o:計時器信息
FILTER:
=[state TCP-STATE] [EXPRESSION]
TCP-STATE包括:
LISTEN:監聽
ESTABLISEHD:建立的連接
FIN_WAIT_1:等待遠程TCP連接中斷請求
FIN_WAIT_2:從遠程TCP等待連接中斷請求
SYN_SENT:客戶端發送請求連接
SYN_RECV:服務端接收請求連接
CLOSED:沒有任何連接
示例,ss -tan state ESTABLISHED
EXPRESSION:
dport=
sport=
示例,ss -tan '( dport = :22 or sport = :22 )' (註意,此命令空格不能省略)
3、詳細說明進行管理工具htop、vmstat等相關命令,並舉例
htop
基於文本模式的、互動式的進程查看器,主要用於控制台或shell中,比top命令更加人性化,可以說是top的高級版。Linux系統預設不安裝htop,需要自行安裝,可以登錄官網下載安裝或配置epel源,通過yum install htop安裝。
htop的使用:
[root@happiness ~]# htop
總共分成四個區:
1)上左區:顯示CPU(1、2表示CPU的核數)、物理記憶體和交換分區的信息;
2)上右區:顯示任務數量(tasks)、平均負載(load average)和系統從開機到現在的運行時長;
3)進程區域:動態顯示當前系統中的所有進程;
4)操作提示區:顯示當前界面中F1~F10功能鍵中定義的快捷功能。
htop常用功能鍵:
F1 : 查看htop使用說明
F2 : 設置
F3 : 搜索進程
F4 : 過濾器,按關鍵字搜索
F5 : 顯示樹形結構
F6 : 選擇排序方式
F7 : 減少nice值,這樣就可以提高對應進程的優先順序
F8 : 增加nice值,這樣可以降低對應進程的優先順序
F9 : 殺掉選中的進程
F10 : 退出htop
/ : 搜索字元
h : 顯示幫助
l :顯示進程打開的文件
u :顯示所有用戶,並可以選擇某一特定用戶的進程
s : 將調用strace追蹤進程的系統調用
t : 顯示樹形結構
H :顯示/隱藏用戶線程
I :倒轉排序順序
K :顯示/隱藏內核線程
M :按記憶體占用排序
P :按CPU排序
T :按運行時間排序
上下鍵或PgUP,PgDn:移動選中進程
左右鍵或Home,End:移動列表
Space(空格):標記/取消標記一個進程
htop常用選項:
-d #:指定延遲時間間隔
-u UserName:僅顯示指定用戶的進程
-s COLUME:以指定欄位進行排序
vmstat
指定時間間隔內,動態監控系統的虛擬記憶體、進程、CPU活動的整體情況,屬於低開銷工具。命令格式:vmstat [options] [ delay [count] ]。
delay:刷新時間間隔,如果不指定,只顯示一條結果;
count:刷新次數;如果不指定count但指定了delay,這時會一直刷新。
常用的options選項:
-a:顯示活躍和非活躍記憶體
-f:顯示從系統啟動至今的fork數量
-m:顯示slab信息(slab,Linux的記憶體分配機制)
-n:只在開始時顯示一次各欄位名稱
-s:顯示記憶體相關統計信息及多種系統活動數量
-d:顯示磁碟相關統計信息
-p:顯示指定磁碟分區統計信息
-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576位元組(bytes)。預設單位為K(1024 bytes)
-V:顯示vmstat版本信息
示例:
預設顯示1次摘要信息
間隔2秒刷新1次摘要,總共顯示3次
關鍵字釋義:
4、使用while實現ping 192.168.0.0/24網路
#!/bin/bash declare -i up=0 declare -i down=0 declare -i i=0 declare -i j=1 trap 'interrupt_trap' INT interrupt_trap() { echo "QUIT" echo "There are $up ips being up." echo "There are $down ips being down." exit 1 } while [ $i -le 255 ]; do while [ $j -le 255 ]; do if [ $i -eq 255 -a $j -eq 255 ]; then break fi ping -W1 -c1 192.168.$i.$j &> /dev/null if [ $? -eq 0 ]; then echo "192.168.$i.$j is up." let up++ else echo "192.168.$i.$j is down." let down++ fi let j++ done j=0 let i++ done echo "There are $up ips being up." echo "There are $down ips being down."