Linux網(wǎng)絡(luò)命令具體有哪些呢

這篇文章給大家介紹 Linux 網(wǎng)絡(luò)命令具體有哪些呢,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

十年建站經(jīng)驗, 成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)客戶的見證與正確選擇。創(chuàng)新互聯(lián)提供完善的營銷型網(wǎng)頁建站明細(xì)報價表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

 

看著 kali linux 上百個網(wǎng)絡(luò)命令,我陷入了沉思。專業(yè)的網(wǎng)絡(luò)命令實在是太多了,如果要羅列,上千個也是有的。個人不是滲透測試工作者,大部分功能只知皮毛。所以本文是非常淺顯的技術(shù)總結(jié),僅聚焦工作中常用到的一些 Linux 命令。

由于nio的普及,ck10k的問題已經(jīng)成為過去式?,F(xiàn)在隨便一臺服務(wù)器,就可以支持?jǐn)?shù)十萬級別的連接了。那么我們來算一下,100萬的連接需要多少資源。

首先,每一個連接都是文件句柄,所以需要文件描述符數(shù)量支持才行,每一個socket內(nèi)存占用15k-20k之間,這樣,僅維護(hù)相應(yīng) socket,就需要20G內(nèi)存;而廣播一個1KB的消息需要占用的帶寬為1000M!

查看當(dāng)前系統(tǒng)的連接

如何看當(dāng)前系統(tǒng)有多少連接呢?可以使用netstat結(jié)合awk進(jìn)行統(tǒng)計。如下腳本,統(tǒng)計了每一種狀態(tài)的tcp連接數(shù)量

# netstat -antp | awk '{a[$6]++}END{ for(x in a)print x,a[x]}'  LISTEN 41  CLOSE_WAIT 24  ESTABLISHED 150  Foreign 1  TIME_WAIT 92

但如果你在一臺有上萬連接的服務(wù)器上執(zhí)行這個命令,你可能會等上很長時間。所以,我們有了第二代網(wǎng)絡(luò)狀態(tài)統(tǒng)計工具:netstat => ss。

# ss -s  Total: 191 (kernel 220)  TCP: 5056 (estab 42, closed 5000, orphaned 3, synrecv 0, timewait 5000/0), ports 3469  ...

netstat屬于net-tools工具集,而ss屬于iproute。其命令對應(yīng)如下,是時候和 net-tools 說 Bye 了。

ss命令

基本使用

我們按照使用場景來看下ss的用法。

查看系統(tǒng)正在監(jiān)聽的tcp連接

ss -atr  ss -atn #僅ip

查看系統(tǒng)中所有連接

ss -alt

查看監(jiān)聽444端口的進(jìn)程 pid

ss -ltp | grep 444

查看進(jìn)程555占用了哪些端口

ss -ltp | grep 555

顯示所有 UDP 連接

ss -u -a
  • 查看TCP sockets,使用-ta選項

  • 查看UDP sockets,使用-ua選項

  • 查看RAW sockets,使用-wa選項

  • 查看UNIX sockets,使用-xa選項

和某個 IP 的所有連接

ss dst 10.66.224.130  ss dst 10.66.224.130:http  ss dst 10.66.224.130:smtp  ss dst 10.66.224.130:443

顯示所有的 HTTP 連接

ss dport = :http

查看連接本機(jī)最多的前 10 個 IP 地址

netstat -antp | awk '{print $4}' | cut -d ':' -f1 | sort | uniq -c | sort -n -k1 -r | head -n 10

Recv-Q 和 Send-Q

注意ss的執(zhí)行結(jié)果,我們說明一下Recv-Q和Send-Q。

Linux 網(wǎng)絡(luò)命令具體有哪些呢

這兩個值,在LISTEN和ESTAB狀態(tài)分別代表不同意義。一般,正常的應(yīng)用程序這兩個值都應(yīng)該為0(backlog除外)。數(shù)值越大,說明問題越嚴(yán)重。

LISTEN 狀態(tài)

  • Recv-Q:代表建立的連接還有多少沒有被accept,比如Nginx接受新連接變的很慢

  • Send-Q:代表listen backlog值

ESTAB 狀態(tài)

  1. Recv-Q:內(nèi)核中的數(shù)據(jù)還有多少(bytes)沒有被應(yīng)用程序讀取,發(fā)生了一定程度的阻塞

  2. Send-Q:代表內(nèi)核中發(fā)送隊列里還有多少(bytes)數(shù)據(jù)沒有收到ack,對端的接收處理能力不強(qiáng)

查看網(wǎng)絡(luò)流量

查看流量

有很多工具可以看網(wǎng)絡(luò)流量,但我最喜歡sar。sar是linux上功能最全的監(jiān)控軟件。如圖,使用sar -n DEV 1即可每秒刷新一次網(wǎng)絡(luò)流量。

Linux 網(wǎng)絡(luò)命令具體有哪些呢

watch cat /proc/net/dev

查看占流量最大的 IP

有時候我們發(fā)現(xiàn)網(wǎng)絡(luò)帶寬占用非常高,但我們無法判斷到底流量來自哪里。這時候,iftop就可以幫上忙了。如圖,可以很容易的找出流量來自哪臺主機(jī)。

Linux 網(wǎng)絡(luò)命令具體有哪些呢

當(dāng)你不確定內(nèi)網(wǎng)的流量來源,比如有人在壓測,api調(diào)用不合理等,都可以通過這種方法找到他。

抓包

tcpdump

當(dāng)我們需要判斷是否有流量,或者調(diào)試一個難纏的 netty 應(yīng)用問題,則可以通過抓包的方式去進(jìn)行進(jìn)一步的判斷。在 Linux 上,可以通過 tcpdump 命令抓取數(shù)據(jù),然后使用Wireshark 進(jìn)行分析。

tcpdump -i eth0 -nn -s0 -v port 80
  • -i 指定網(wǎng)卡進(jìn)行抓包

  • -n 和ss一樣,表示不解析域名

  • -nn 兩個n表示端口也是數(shù)字,否則解析成服務(wù)名

  • -s 設(shè)置抓包長度,0表示不限制

  • -v 抓包時顯示詳細(xì)輸出,-vv、-vvv依次更加詳細(xì)

1)加入-A選項將打印 ascii ,-X打印 hex 碼。

tcpdump -A -s0 port 80

2)抓取特定 IP 的相關(guān)包

tcpdump -i eth0 host 10.10.1.1  tcpdump -i eth0 dst 10.10.1.20

3)-w參數(shù)將抓取的包寫入到某個文件中

tcpdump -i eth0 -s0 -w test.pcap

4)tcpdump支持表達(dá)式,還有更加復(fù)雜的例子,比如抓取系統(tǒng)中的get,post請求(非https)

tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"

更多參見

https://hackertarget.com/tcpdump-examples/

抓取的數(shù)據(jù),使用 wireshark 查看即可。

Linux 網(wǎng)絡(luò)命令具體有哪些呢

HTTP 抓包

抓包工具將自身當(dāng)作代理,能夠抓取你的瀏覽器到服務(wù)器之間的通訊,并提供修改、重放、批量執(zhí)行的功能。是發(fā)現(xiàn)問題,分析協(xié)議,攻擊站點(diǎn)的利器。常用的有以下三款:

  • Burpsuite (跨平臺)

  • Fiddle2 (Win)

  • Charles (Mac)

流量復(fù)制

你可能需要使你的生產(chǎn)環(huán)境HTTP真實流量在開發(fā)環(huán)境或者預(yù)演環(huán)境重現(xiàn),這樣就用到了流量復(fù)制功能。

有三個工具可供選擇,個人傾向于Gor。

  • Gor

  • TCPReplay

  • TCPCopy

連接數(shù)過多問題

Linux 網(wǎng)絡(luò)命令具體有哪些呢

根據(jù)TCP/IP介紹,socket大概包含10個連接狀態(tài)。我們平常工作中遇到的,除了針對SYN的拒絕服務(wù)攻擊,如果有異常,大概率是TIME_WAIT和CLOSE_WAIT的問題。

TIME_WAIT一般通過優(yōu)化內(nèi)核參數(shù)能夠解決;CLOSE_WAIT一般是由于程序編寫不合理造成的,更應(yīng)該引起開發(fā)者注意。

TIME_WAIT

TIME_WAIT 是主動關(guān)閉連接的一方保持的狀態(tài),像 nginx、爬蟲服務(wù)器,經(jīng)常發(fā)生大量處于time_wait狀態(tài)的連接。TCP 一般在主動關(guān)閉連接后,會等待 2MS,然后徹底關(guān)閉連接。由于 HTTP 使用了 TCP 協(xié)議,所以在這些頻繁開關(guān)連接的服務(wù)器上,就積壓了非常多的 TIME_WAIT 狀態(tài)連接。

某些系統(tǒng)通過 dmesg 可以看到以下信息。

__ratelimit: 2170 callbacks suppressed  TCP: time wait bucket table overflow  TCP: time wait bucket table overflow  TCP: time wait bucket table overflow  TCP: time wait bucket table overflow

通過ss -s命令查看,可以看到timewait已經(jīng)有2w個了。

ss -s  Total: 174 (kernel 199)  TCP: 20047 (estab 32, closed 20000, orphaned 4, synrecv 0, timewait 20000/0), ports 10785

sysctl 命令可以設(shè)置這些參數(shù),如果想要重啟生效的話,加入/etc/sysctl.conf文件中。

# 修改閾值  net.ipv4.tcp_max_tw_buckets = 50000  # 表示開啟TCP連接中TIME-WAIT sockets的快速回收  net.ipv4.tcp_tw_reuse = 1  #啟用timewait 快速回收。這個一定要開啟,默認(rèn)是關(guān)閉的。net.ipv4.tcp_tw_recycle= 1  # 修改系統(tǒng)默認(rèn)的TIMEOUT時間,默認(rèn)是60s  net.ipv4.tcp_fin_timeout = 10

測試參數(shù)的話,可以使用 sysctl -w net.ipv4.tcp_tw_reuse = 1 這樣的命令。如果是寫入進(jìn)文件的,則使用sysctl -p生效。

CLOSE_WAIT

CLOSE_WAIT一般是由于對端主動關(guān)閉,而我方?jīng)]有正確處理的原因引起的。說白了,就是程序?qū)懙挠袉栴},屬于危害比較大的一種。

我們拿”csdn 諧音太郎”遇到的一個典型案例來說明。

Linux 網(wǎng)絡(luò)命令具體有哪些呢

代碼是使用HttpClient的一個使用片段。在這段代碼里,通過調(diào)用in.close()來進(jìn)行連接資源的清理。但可惜的是,代碼中有一個判斷:非200狀態(tài)的連接直接返回null。在這種情況下,in連賦值的機(jī)會都沒有,當(dāng)然也就無法關(guān)閉,然后就發(fā)生了連接泄漏。

所以,HttpClient的正確關(guān)閉方式是使用其api:abort()。

其他常用命令

應(yīng)用軟件

# 斷點(diǎn)續(xù)傳下載文件  wget -c $url  # 下載整站  wget -r -p -np -k $url  # 發(fā)送網(wǎng)絡(luò)連接(常用)  curl -XGET $url  # 傳輸文件  scp  sftp  # 數(shù)據(jù)鏡像備份  rsync

檢測工具

# 連通性檢測  ping google.com  # 到對端路由檢測  tracepath google.com  # 域名檢測  dig google.com  nslookup google.com  # 網(wǎng)絡(luò)掃描工具  nmap  # 壓力測試  iperf  # 全方位監(jiān)控工具(好東西)  nmon

配置工具

# 停止某個網(wǎng)卡  ifdown  # 開啟某個網(wǎng)卡  ifup  # 多功能管理工具  ethtool

壓力測試

wrk  ab  webbench  http_load

多功能工具

# 遠(yuǎn)程登錄  telnet  ssh  nc  # 防火墻  iptables -L

除了基本的工具,本文提到的很多網(wǎng)絡(luò)命令,都不是預(yù)裝的,需要使用yum自行安裝。

關(guān)于 Linux 網(wǎng)絡(luò)命令具體有哪些呢就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

新聞名稱:Linux網(wǎng)絡(luò)命令具體有哪些呢
路徑分享:http://muchs.cn/article4/ihdsie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、ChatGPT品牌網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站收錄網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)