日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

網(wǎng)絡(luò)連通性檢測

當(dāng)應(yīng)用出現(xiàn)網(wǎng)絡(luò)異常時,首先需要確認(rèn)的就是網(wǎng)絡(luò)的連通性是否正常,下面一組命令可快速檢測網(wǎng)絡(luò)的連通性,如下:
檢測DNS

dig www.baidu.combash
nslookup www.baidu.combash
host www.baidu.com

檢測主機(jī)是否可達(dá)

ping www.baidu.com

檢測port是否可達(dá)

#檢查tcp端口
telnet www.baidu.com 80
#檢查udp端口
nc -uvz ip port

檢測SSL
SSL認(rèn)證也經(jīng)常導(dǎo)致程序無法連接,主要出現(xiàn)在SSL握手過程中。

openssl s_client -connect www.baidu.com:443 -prexit

一鍵檢測
多數(shù)情況下,可以使用curl一鍵檢測所有過程,如果有問題,再使用上面的命令逐個排查。

curl -v http://www.baidu.com:80/

時間消耗分布
使用curl可檢測出http協(xié)議接口各階段花費(fèi)的時間。

$ curl -o /dev/null -s -w " time_namelookup:%{time_namelookup}sn time_connect:%{time_connect}sn time_starttransfer:%{time_starttransfer}sn time_total:%{time_total}sn speed_download:%{speed_download}n http_code:%{http_code}" "http://www.baidu.com"
 time_namelookup:0.016542s
 time_connect:0.038686s
 time_starttransfer:0.063550s
 time_total:0.063593s
 speed_download:37793.000
 http_code:200

time_namelookup:開始到DNS查詢完成的時間
time_connect:開始到TCP三次握手完成的時間
time_starttransfer:開始到收到服務(wù)端發(fā)來首字節(jié)數(shù)據(jù)的時間
time_total:開始到服務(wù)端數(shù)據(jù)接收完成的時間

檢查socket連接

由于網(wǎng)絡(luò)通信都需要靠socket,所以檢查一下socket連接以及它的分布情況也是非常有必要的。
檢查端口是否監(jiān)聽
服務(wù)端程序一定會監(jiān)聽至少一個端口,檢查監(jiān)聽socket是否存在,也是判斷服務(wù)進(jìn)程是否還存在的一種方法。

netstat -nltp|grep 8080
lsof  -nP -i -sTCP:LISTEN|grep 8080

查看socket狀態(tài)分布

$ ss -s
$ netstat -nat | awk '/tcp/{print $6}'|sort|uniq -c
      9 CLOSE_WAIT
    102 ESTABLISHED
     55 LISTEN
     70 TIME_WAIT

需格外關(guān)注TIME_WAIT與CLOSE_WAIT這兩種狀態(tài)的數(shù)量,如果TIME_WAIT過多,可考慮優(yōu)化內(nèi)核網(wǎng)絡(luò)參數(shù)或使用連接池,如果CLOSE_WAIT過多,就需要檢查程序代碼中哪里出現(xiàn)了連接泄露,導(dǎo)致未關(guān)閉連接了。
誰連我最多

netstat -ant | awk '/tcp/{rl=split($5,r,":");printf "%16st%sn",$4,r[rl-1]}' | sort | uniq -c | sort -nrk1 | head -n10

我連誰最多

netstat -ant | awk '/tcp/{ll=split($4,l,":");printf "%11st%sn",l[ll-1],$5}' | sort | uniq -c | sort -nrk1 | head -n10

網(wǎng)絡(luò)使用率檢測

查看各連接網(wǎng)速

iftop -B -nNP

查看各進(jìn)程網(wǎng)速

nethogs

查看網(wǎng)卡網(wǎng)速

sar -n DEV 1
ifstat 

查看網(wǎng)卡是否丟包

# ifconfig命令,觀察overrun/error/drop這幾項(xiàng)
ifconfig
# 同樣,觀察類似overflow、error、drop這些項(xiàng)
ethtool -S eth0

TCP層丟包與重傳
有時,網(wǎng)卡層未出現(xiàn)丟包,但網(wǎng)絡(luò)中間鏈路有可能出現(xiàn)丟包,這會導(dǎo)致tcp層重傳,另外,如果tcp層的內(nèi)核參數(shù)設(shè)置不合理,也可能導(dǎo)致丟包,比如backlog設(shè)置過小,服務(wù)器端網(wǎng)絡(luò)io處理不過來。

$ sar -n TCP,ETCP 1
$ sudo watch -d -n1  'netstat -s|grep -iE "listen|pruned|collapsed|reset|retransmit"'
    2879 connection resets received
    378542 segments retransmitted
    3357875 resets sent
    52 resets received for embryonic SYN_RECV sockets
    5 times the listen queue of a socket overflowed
    5 SYNs to LISTEN sockets dropped
    TCPLostRetransmit: 235599
    6337 fast retransmits
    7877 retransmits in slow start
    10385 connections reset due to unexpected data
    1183 connections reset due to early user close

網(wǎng)絡(luò)抓包

純文本抓包

# ngrep比較適合抓包類似http這種的純文本協(xié)議
sudo ngrep -W byline port 3306
# 在無法使用抓包命令的情況下,也可使用nc、socat之類的網(wǎng)絡(luò)工具,做一個端口轉(zhuǎn)發(fā),同時將轉(zhuǎn)發(fā)流量打印出來
# 另外在抓包https時,也可以使用socat將https流量代理為http流量,再進(jìn)行抓包
socat -v TCP4-LISTEN:9999,bind=0.0.0.0,reuseaddr TCP4:remoteIp:9999

通用抓包工具

# tcpdump抓包給wireshark分析
sudo tcpdump tcp -i eth1 -s 0 -c 10000 and port 9999 -w ./target.cap
# 抓rst包,用于網(wǎng)絡(luò)經(jīng)常出現(xiàn)connection reset異常的情況
sudo tcpdump -ni any -s0 tcp and 'tcp[13] & 4 != 0 ' -vvv
# 抓fin包,用于網(wǎng)絡(luò)經(jīng)常斷連的情況
sudo tcpdump -ni any -s0 tcp and 'tcp[13] & 1 != 0 ' -vvv

MySQL抓包

$ sudo tshark -i eth0 -n -f 'tcp port 3306' -Y 'mysql' -T fields  -e frame.number -e frame.time_epoch -e frame.time_delta_displayed  -e ip.src -e tcp.srcport -e tcp.dstport -e ip.dst -e tcp.stream -e tcp.len -e tcp.nxtseq -e tcp.time_delta -e tcp.analysis.ack_rtt -e mysql.query
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens33'
4       1605412440.114466205    0.000000000     10.224.72.135   3306    59016   10.221.38.217   0       88      89      0.001027726
6       1605412440.160709874    0.046243669     10.221.38.217   59016   3306    10.224.72.135   0       185     186     0.000020998
8       1605412440.160929986    0.000220112     10.224.72.135   3306    59016   10.221.38.217   0       48      137     0.000211802
9       1605412440.213810997    0.052881011     10.221.38.217   59016   3306    10.224.72.135   0       24      210     0.052881011     0.052881011
11      1605412440.214178087    0.000367090     10.224.72.135   3306    59016   10.221.38.217   0       22      159     0.000341184
12      1605412440.258391363    0.044213276     10.221.38.217   59016   3306    10.224.72.135   0       37      247     0.044213276     0.044213276     select @@version_comment limit 1
14      1605412440.258812895    0.000421532     10.224.72.135   3306    59016   10.221.38.217   0       83      242     0.000395748
15      1605412440.303693157    0.044880262     10.221.38.217   59016   3306    10.224.72.135   0       13      260     0.044880262     0.044880262     select 1
16      1605412440.303955060    0.000261903     10.224.72.135   3306    59016   10.221.38.217   0       49      291     0.000261903     0.000261903
17      1605412440.351387241    0.047432181     10.221.38.217   59016   3306    10.224.72.135   0       5       265     0.047432181     0.047432181

grpc抓包
對于grpc抓包,可以先使用tcpdump抓下來,然后到wireshark中查看,也可使用我從github找到的這個項(xiàng)目https://github.com/rmedvedev/grpcdump

sudo grpcdump -i eth0 -p 9999 -proto-path ~/protos -proto-files order/v1/log_service.proto

傳輸文件

使用scp

#上傳文件到遠(yuǎn)程機(jī)器
scp test.txt root@remoteIp:/home/
#從遠(yuǎn)程機(jī)器下載文件
scp root@remoteIp:/home/test.txt .

使用ncat
ncat其實(shí)就是常說的nc,但由于netcat也叫nc且用法稍有不同(ubuntu上的nc就是netcat),避免混淆,這里直接使用ncat

# 接收文件端
ncat -l 9999 > test.txt
# 發(fā)送文件端
ncat remoteIp 9999 < test.txt

使用Python http server
python的http server經(jīng)常用于分享本機(jī)文件給其它人,非常方便。

python -m SimpleHTTPServer 8000
wget http://remoteIp:8000/test.txt

使用使用python ftp server
使用python可以快速搭建一個ftp server,這樣就即可以上傳,又可以下載了。

sudo pip3 install pyftpdlib
python3 -m pyftpdlib -p 2121 -w
#上傳到ftp
curl ftp://remoteIp:2121/files/ -T file.txt
#從ftp下載
curl -O ftp://remoteIp:2121/files/file.txt

總結(jié)

掌握常用的網(wǎng)絡(luò)命令,還是非常有必要的,畢竟網(wǎng)絡(luò)是如此復(fù)雜,必須要有東西能夠窺探一些內(nèi)部運(yùn)行信息。

原創(chuàng):打碼日記(微信公眾號ID:codelogs),歡迎分享,轉(zhuǎn)載請保留出處。

分享到:
標(biāo)簽:命令 網(wǎng)絡(luò)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定