Linux基礎之網絡與進程

1、 100.0.0.16/28 對應網段的網關地址、廣播地址、可分配IP地址範圍

    IP地址轉化爲二進制:01100100 00000000 00000000 00010000

                   子網掩碼:11111111 11111111 11111111 11110000

    網絡地址爲: 01100100 00000000 00000000 00010000

    IP範圍:01100100 00000000 00000000 00010000-01100100 00000000 00000000 00011111

        轉化爲十進制:100.0.0.16-100.0.0.31

    網關地址:100.0.0.16

    廣播地址:100.0.0.31

    IP地址範圍:100.0.0.17-100.0.0.30

2、 使用man手冊學習tcpdump的使用

NAME
       tcpdump - dump traffic on a network   #抓取網絡上的包
SYNOPSIS
       tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ --number ] [ -Q|-P in|out|inout ]
               [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ --time-stamp-precision=tstamp_precision ]
               [ --immediate-mode ] [ --version ]
               [ expression ]



1、指定端口抓包  -i 
[root@localhost ~]# tcpdump -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:47:33.900935 IP localhost.localdomain.59499 > gateway.domain: 12932+ A? www.baidu.com. (31)
22:47:33.901060 IP localhost.localdomain.59499 > gateway.domain: 54414+ AAAA? www.baidu.com. (31)
22:47:33.901189 IP localhost.localdomain.52477 > gateway.domain: 12402+ A? ss1.bdstatic.com. (34)
22:47:33.901287 IP localhost.localdomain.52477 > gateway.domain: 64121+ AAAA? ss1.bdstatic.com. (34)
22:47:33.903088 IP localhost.localdomain.36358 > gateway.domain: 43071+ PTR? 2.2.168.192.in-addr.arpa. (42)

2、只抓10個包  tcpdump -i ens33  -c 10
 [root@localhost ~]# tcpdump -c 10 -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:49:23.146872 IP localhost.localdomain.56946 > gateway.domain: 36132+ A? ss1.bdstatic.com. (34)
22:49:23.147031 IP localhost.localdomain.56946 > gateway.domain: 35127+ AAAA? ss1.bdstatic.com. (34)
22:49:23.147297 IP localhost.localdomain.38626 > gateway.domain: 28615+ A? www.baidu.com. (31)
22:49:23.147406 IP localhost.localdomain.38626 > gateway.domain: 57804+ AAAA? www.baidu.com. (31)
22:49:23.150173 IP localhost.localdomain.34523 > gateway.domain: 31762+ PTR? 2.2.168.192.in-addr.arpa. (42)
22:49:23.150241 IP localhost.localdomain.58912 > 183.232.231.172.https: Flags [S], seq 663413922, win 29200, options [mss 1460,sackOK,TS val 590537 ecr 0,nop,wscale 7], length 0
22:49:23.150384 IP localhost.localdomain.36253 > gateway.domain: 53982+ A? www.baidu.com. (31)
22:49:23.152896 IP gateway.domain > localhost.localdomain.56946: 35127 1/1/0 CNAME sslbdstatic.jomodns.com. (131)
22:49:23.154942 IP gateway.domain > localhost.localdomain.38626: 57804 1/1/0 CNAME www.a.shifen.com. (115)
22:49:23.156571 IP gateway.domain > localhost.localdomain.56946: 36132 2/0/0 CNAME sslbdstatic.jomodns.com., A 111.20.242.32 (84)
10 packets captured
371 packets received by filter
303 packets dropped by kernel

3、數字的方式顯示 tcpdump -nn
[root@localhost ~]# tcpdump -nn -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:56:24.902263 IP 192.168.2.100.58968 > 183.232.231.172.443: Flags [.], ack 2676554439, win 59860, length 0
22:56:24.902707 IP 183.232.231.172.443 > 192.168.2.100.58968: Flags [.], ack 1, win 64240, length 0
22:56:25.032250 IP 192.168.2.100.55043 > 209.97.168.88.123: NTPv4, Client, length 48
22:56:25.092723 IP 192.168.2.100.58964 > 183.232.231.172.443: Flags [.], ack 141766852, win 64240, length 0
22:56:25.093706 IP 183.232.231.172.443 > 192.168.2.100.58964: Flags [.], ack 1, win 64240, length 0
22:56:25.232069 IP 209.97.168.88.123 > 192.168.2.100.55043: NTPv4, Server, length 48
22:56:29.104888 IP 192.168.2.100.34140 > 193.228.143.24.123: NTPv4, Client, length 48
22:56:29.546396 IP 193.228.143.24.123 > 192.168.2.100.34140: NTPv4, Server, length 48

4、顯示報文的以太頭  -e
[root@localhost ~]# tcpdump -i ens33 -c 4 -e host www.baidu.com
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
23:05:41.780052 00:0c:29:12:e0:1e (oui Unknown) > 00:50:56:e6:bc:18 (oui Unknown), ethertype IPv4 (0x0800), length 74: localhost.localdomain.58994 > 183.232.231.172.https: Flags [S], seq 4281264146, win 29200, options [mss 1460,sackOK,TS val 1569167 ecr 0,nop,wscale 7], length 0
23:05:41.830814 00:50:56:e6:bc:18 (oui Unknown) > 00:0c:29:12:e0:1e (oui Unknown), ethertype IPv4 (0x0800), length 60: 183.232.231.172.https > localhost.localdomain.58994: Flags [S.], seq 3359722914, ack 4281264147, win 64240, options [mss 1460], length 0
23:05:41.830892 00:0c:29:12:e0:1e (oui Unknown) > 00:50:56:e6:bc:18 (oui Unknown), ethertype IPv4 (0x0800), length 54: localhost.localdomain.58994 > 183.232.231.172.https: Flags [.], ack 1, win 29200, length 0
23:05:41.831130 00:0c:29:12:e0:1e (oui Unknown) > 00:50:56:e6:bc:18 (oui Unknown), ethertype IPv4 (0x0800), length 571: localhost.localdomain.58994 > 183.232.231.172.https: Flags [P.], seq 1:518, ack 1, win 29200, length 517
4 packets captured
122 packets received by filter
55 packets dropped by kernel

5、只抓與某個主機交互的包  host 選項
[root@localhost ~]# tcpdump -i ens33 host www.baidu.com
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
23:12:40.353274 IP localhost.localdomain > 183.232.231.172: ICMP echo request, id 3763, seq 1, length 64
23:12:40.423969 IP 183.232.231.172 > localhost.localdomain: ICMP echo reply, id 3763, seq 1, length 64
23:12:50.433735 IP localhost.localdomain > 183.232.231.172: ICMP echo request, id 3763, seq 2, length 64
23:12:50.496038 IP 183.232.231.172 > localhost.localdomain: ICMP echo reply, id 3763, seq 2, length 64
23:12:51.436260 IP localhost.localdomain > 183.232.231.172: ICMP echo request, id 3763, seq 3, length 64
23:12:51.485216 IP 183.232.231.172 > localhost.localdomain: ICMP echo reply, id 3763, seq 3, length 64

6、只抓tcp報文,udp報文,http報文,https報文
tcpdump -i ens33 -c 4 tcp|udp|http|https

7、只抓指定tcp端口號,udp端口號的報文
tcpdump -i ens33 tcp port 80

3、 詳細敘述殭屍進程產生的原因以及危害

1、什麼是殭屍進程?

當子進程(child process)先於父進程(parent process)退出,但是父進程沒有調用wait/waitpid回收子進程的資源,則子進程變成殭屍進程。

但是如果該進程的父進程已經結束,那該進程就不會變成殭屍進程,因爲每個進程結束的時候,系統會掃描所有運行中的進程,看看有沒有哪個進程是剛

剛結束的進程的子進程,如果有就由Init來接管他,成爲他的父進程。

 
2、危害?

如果父進程不調用wait/waitpid,則子進程的保留信息不會被釋放,造成內核資源的無法回收,同時進程號會一直被佔用,系統所能使用的進程號是

有限的,大量地產生殭屍進程將會導致系統不能產生新的進程。

3、怎麼避免殭屍進程?

防止的辦法是當父進程fork一個子進程後,必須通過wait/waitpid等函數等待子進程結束,但這會導致父進程掛起,所以通常的做法是用signal函數爲

SIGCHLD安裝handler,在handler函數中調用wait/waitpid函數進行回收。


4、 詳細說明vmstat輸出結果的含義

1)vmstat命令:  用來獲得有關進程、虛存、頁面交換空間及 CPU活動的信息。這些信息反映了系統的負載情況

2)用法

vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]

-a:顯示活躍和非活躍內存

-f顯示從系統啓動至今的fork數量 。

-m顯示slabinfo

-n只在開始時顯示一次各字段名稱。

-s顯示內存相關統計信息及多種系統活動數量。

delay刷新時間間隔。如果不指定,只顯示一條結果。

count刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。

-d顯示磁盤相關統計信息。

-p顯示指定磁盤分區統計信息

-S使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)

-V顯示vmstat版本信息。

3)字段含義說明:

類別

項目

含義

說明

Procs(進程)

r

等待執行的任務數

展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu個數,就會出現cpu瓶頸。

B

等待IO的進程數量


Memory(內存)

swpd

正在使用虛擬的內存大小,單位k


free

空閒內存大小


buff

已用的buff大小,對塊設備的讀寫進行緩衝


cache

已用的cache大小,文件系統的cache


inact

非活躍內存大小,即被標明可回收的內存,區別於free和active

具體含義見:概念補充(當使用-a選項時顯示)

active

活躍的內存大小

具體含義見:概念補充(當使用-a選項時顯示)

Swap

si

每秒從交換區寫入內存的大小(單位:kb/s)


so

每秒從內存寫到交換區的大小


IO

bi

每秒讀取的塊數(讀磁盤)

現在的Linux版本塊的大小爲1024bytes

bo

每秒寫入的塊數(寫磁盤)


system

in

每秒中斷數,包括時鐘中斷

這兩個值越大,會看到由內核消耗的cpu時間會越多

cs

每秒上下文切換數

CPU(以百分比表示)

Us

用戶進程執行消耗cpu時間(user time)

us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期超過50%的使用,那麼我們就該考慮優化程序算法或其他措施了

Sy

系統進程消耗cpu時間(system time)

sys的值過高時,說明系統內核消耗的cpu資源多,這個不是良性的表現,我們應該檢查原因。

Id

空閒時間(包括IO等待時間)


wa

等待IO時間

Wa過高時,說明io等待比較嚴重,這可能是由於磁盤大量隨機訪問造成的,也有可能是磁盤的帶寬出現瓶頸。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章