日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络常用测试工具

發布時間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络常用测试工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

一、netstat

二、ping

三、traceroute

四、telnet命令

五、route命令

六、ifconfig命令

七、tcpdump--抓包命令

八、nc命令

九、curl命令

十、dig命令

十一、Linux如何查看端口使用情況


一、netstat

命令功能:

它可以用來查詢系統上的網絡套接字連接情況,包括tcp,udp以及Unix套接字;

netstat命令用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。netstat是在內核中訪問網絡及相關信息的程序,它能提供TCP連接,TCP和UDP監聽,進程內存管理的相關報告。

常見實例:

1)netstat

說明:無參數使用

從整體上看,netstat的輸出結果可以分為兩個部分:

一個是Active?Internet?connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。

另一個是Active?UNIX?domain?sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。

Proto顯示連接使用的協議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示連接到套接口的其它進程使用的路徑名。

Recv-Q、Send-Q

Recv-Q:表示收到的數據已經在本地接收緩沖,但是還有多少沒有被進程取走,recv()

Send-Q:對方沒有收到的數據或者說沒有Ack的,還是本地緩沖區.

這兩個值通常應該為0,如果不為0可能是有問題的。packets在兩個隊列里都不應該有堆積狀態。通過netstat的這兩個值就可以簡單判斷程序收不到包到底是包沒到還是包沒有被進程recv。

2)netstat -a

說明:列出所有端口

顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請(LISTENING)的那些連接。

3)netstat?-nu

說明:顯示當前UDP連接狀況

4)netstat?-i

說明:顯示網卡列表

5)netstat?-l

說明:顯示監聽的套接口

6)netstat?-n

說明:顯示所有已建立的有效連接

7)netstat?-r

說明:顯示關于路由表的信息

8)netstat?-at

說明:列出所有?tcp?端口

8)netstat?-au

說明:列出所有 udp?端口

二、ping

命令功能:

Linux系統的ping命令是常用的網絡命令,它通常用來測試與目標主機的連通性,這樣我們就可以根據它ping輸出的信息來確定目標主機是否可訪問(但這不是絕對的)。有些服務器為了防止通過ping探測到,通過防火墻設置了禁止ping或者在內核參數中禁止ping,這樣就不能通過ping確定該主機是否還處于開啟狀態。

常見實例:

1)ping?14.215.177.39

2)ping?-c?3?14.215.177.39

說明:ping指定次數

3)ping?-c?3?-i?1 14.215.177.39

說明:時間間隔和次數限制的ping

三、traceroute

命令功能:

通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什么路徑。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統中,我們稱之為traceroute,在MS?Windows中為tracert。?traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。

常見實例:

1)traceroute www.baidu.com

說明:

記錄按序列號從1開始,每個紀錄就是一跳?,每跳表示一個網關,我們看到每行有三個時間,單位是?ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包后,網關響應后返回的時間;如果您用?traceroute?-q?4?www.baidu.com?,表示向每個網關發送4個數據包。

有時我們traceroute?一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關的數據包返回數據。

有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會?有延時長的現象;您可以加-n(-n?直接使用IP地址而非主機名稱)。?參數來避免DNS解析,以IP格式輸出數據。

2)traceroute?-m?10?www.baidu.com

說明:跳數設置

3)traceroute?-n?www.baidu.com

說明:顯示IP地址,不查主機名

4)traceroute?-q?4?www.baidu.com

說明:把探測包的個數設置為值4

Traceroute的工作原理:

Traceroute最簡單的基本用法是:traceroute?hostname

Traceroute程序的設計是利用ICMP及IP?header的TTL(Time?To?Live)欄位(field)。首先,traceroute送出一個TTL是1的IP?datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,并送回一個「ICMP?time?exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute?收到這個消息后,便知道這個路由器存在于這個路徑上,接著traceroute?再送出另一個TTL是2?的datagram,發現第2?個路由器......?traceroute?每次將送出的datagram的TTL?加1來發現另一個路由器,這個重復的動作一直持續到某個datagram?抵達目的地。當datagram到達目的地后,該主機并不會送回ICMP?time?exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?

Traceroute在送出UDP?datagrams到目的地時,它所選擇送達的port?number?是一個一般應用程序都不會用的號碼(30000?以上),所以當此UDP?datagram?到達目的地后該主機會送回一個「ICMP?port?unreachable」的消息,而當traceroute?收到這個消息時,便知道目的地已經到達了。所以traceroute?在Server端也是沒有所謂的Daemon?程式。

Traceroute提取發?ICMP?TTL到期消息設備的IP地址并作域名解析。每次?,Traceroute都打印出一系列數據,包括所經過的路由設備的域名及?IP地址,三個包每次來回所花時間。

四、telnet命令

命令功能:

telnet命令通常用來遠程登錄。telnet程序是基于TELNET協議的遠程登錄客戶端程序。Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標準協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的?能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制臺上輸入一樣??梢栽诒镜鼐湍芸刂品掌鳌R_始一個?telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。

但是,telnet因為采用明文傳送報文,安全性不好,很多Linux服務器都不開放telnet服務,而改用更安全的ssh方式了。但仍然有很多別的系統可能采用了telnet方式來提供遠程登錄,因此弄清楚telnet客戶端的使用方式仍是很有必要的。

常見實例:

1)telnet?192.168.120.204

說明:

五、route命令

命令功能:

Linux系統的route命令用于顯示和操作IP路由表(show?/?manipulate?the?IP?routing?table)。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位于兩個網絡的網關來實現。在Linux系統中,設置路由通常是為了解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那么就需要將這臺機器的IP地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之后,該路由就失效了;可以在/etc/rc.local中添加route命令來保證該路由設置永久有效。

常見實例:

1)route

說明:顯示當前路由

2)route add

說明:添加網關/設置網關

六、ifconfig命令

命令功能:

命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。

常見實例:

1)ifconfig

說明:顯示網絡設備信息

lo?是表示主機的回壞地址,這個一般是用來測試一個網絡程序,但又不想讓局域網或外網的用戶能夠查看,只能在此臺主機上運行和查看所用的網絡接口。比如把?HTTPD服務器的指定到回壞地址,在瀏覽器輸入?127.0.0.1?就能看到你所架WEB網站了。但只是您能看得到,局域網的其它主機或用戶無從知道。

2)ifconfig?ens33 up? ? ? ? ? ? ifconfig?ens33 down

說明:ifconfig?ens33?up?為啟動網卡ens33 ;ifconfig?ens33?down?為關閉網卡ens33。

3)ifconfig?eth0?192.168.120.56?

說明:給eth0網卡配置IP地:192.168.120.56

七、tcpdump--抓包命令

過濾主機/IP:?

tcpdump -i eth1 host 172.16.7.206
抓取所有經過網卡1,目的IP或源地址為172.16.7.206的網絡數據?

tcpdump -i eth1 src host 172.16.7.206? ?指定源地址

tcpdump -i eth1 dst host 172.16.7.206? ?指定目的地址?

過濾端口:?

tcpdump -i eth1 dst port 1234
抓取所有經過網卡1,目的端口為1234的網絡數據?

過濾特定協議:?

tcpdump -i eth1 udp
抓取所有經過網卡1,協議類型為UDP的網絡數據?

特定協議特定端口:?

tcpdump udp port 1234
抓取所有經過1234端口的UDP網絡數據?

抓取特定類型的數據包:?

tcpdump -i eth1 ‘tcp[tcpflags] = tcp-syn’
抓取所有經過網卡1的SYN類型數據包

tcpdump -i eth1 udp dst port 53
抓取經過網卡1的所有DNS數據包(默認端口)?

使用-w參數指定將監聽到的數據包寫入文件中保存

八、nc命令

功能說明:功能強大的網絡工具 語  法:nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>][-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信端口...] 參  數:-g<網關> 設置路由器躍程通信網關,最丟哦可設置8個。-G<指向器數目> 設置來源路由指向器,其數值為4的倍數。-h 在線幫助。-i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通信端口。-l 使用監聽模式,管控傳入的資料。-n 直接使用IP地址,而不通過域名服務器。-o<輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。-p<通信端口> 設置本地主機使用的通信端口。-r 亂數指定本地與遠端主機的通信端口。-s<來源位址> 設置本地主機送出數據包的IP地址。-u 使用UDP傳輸協議。-v 詳細輸出--用兩個-v可得到更詳細的內容-w<超時秒數> 設置等待連線的時間。-z 使用0輸入/輸出模式,只在掃描通信端口時使用。 (1)端口掃描 # nc -v -w 2 192.168.2.34 -z 21-24 nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused Connection to 192.168.2.34 22 port [tcp/ssh] succeeded! nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused(2)從192.168.2.33拷貝文件到192.168.2.34 在192.168.2.34上: nc -l 1234 > test.txt 在192.168.2.33上: nc 192.168.2.34 < test.txt(3)簡單聊天工具 在192.168.2.34上: nc -l 1234 在192.168.2.33上: nc 192.168.2.34 1234 這樣,雙方就可以相互交流了。使用ctrl+C(或D)退出。

九、curl命令

在Linux中curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

(1)獲取頁面內容

當我們不加任何選項使用 curl 時,默認會發送 GET 請求來獲取鏈接內容到標準輸出。

(2)顯示 HTTP 頭

如果我們只想要顯示 HTTP 頭,而不顯示文件內容,可以使用 -I 選項:

(3)將鏈接保存到文件

我們可以使用 > 符號將輸出重定向到本地文件中。

curl http://www.codebelief.com > index.html

也可以通過 curl 自帶的 -o/-O 選項將內容保存到文件中。

  • -o(小寫的 o):結果會被保存到命令行中提供的文件名
  • -O(大寫的 O):URL 中的文件名會被用作保存輸出的文件名

curl -o index.html http://www.codebelief.com

curl -O http://www.codebelief.com/page/2/

(4)同時下載多個文件

我們可以使用 -o 或 -O 選項來同時指定多個鏈接,按照以下格式編寫命令:

十、dig命令

域名解析工具

十一、Linux如何查看端口使用情況

1、lsof -i:端口號 用于查看某一端口的占用情況,比如查看8000端口使用情況,lsof -i:8000

2、netstat -tunlp |grep 端口號,用于查看指定的端口號的進程情況,如查看8000端口的情況,netstat -tunlp |grep 8000

總結

以上是生活随笔為你收集整理的网络常用测试工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。