⑴ 怎麼在Linux伺服器上測試TCP/UDP埠的連通性
翻譯自:
How to Test Port[TCP/UDP] Connectivity from a Linux Server (文檔 ID 2212626.1)
適用於:
Linux OS - Version Oracle Linux 5.0 to Oracle Linux 6.8 [Release OL5 to OL6U8]
Information in this document applies to any platform.
目標:
在Linux伺服器上檢查TCP/UDP埠的連通性。
解決方案:
telnet和nc 是用來測試埠連通性的一般工具。
telnet可以測試tcp埠的連通性。
nc可以測試tcp和udp埠的連通性。
請確保telnet和nc工具已經安裝
在CODE上查看代碼片派生到我的代碼片
# yum install nc
# yum install telnet
測試tcp埠的連通性:
語法如下:
在CODE上查看代碼片派生到我的代碼片
telnet <hostname/IP address> <port number>
如下是連通成功的例子:
在CODE上查看代碼片派生到我的代碼片
# telnet 192.118.20.95 22
Trying 192.118.20.95...
Connected to 192.118.20.95.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
Protocol mismatch.
Connection closed by foreign host.
如下是連通不成功的例子:
在CODE上查看代碼片派生到我的代碼片
# telnet 192.118.20.95 22
Trying 192.118.20.95...
telnet: connect to address 192.118.20.95: No route to host
使用nc命令來測試tcp埠的連通性:
語法:
在CODE上查看代碼片派生到我的代碼片
nc -z -v <hostname/IP address> <port number>
如下是連通成功的例子:
在CODE上查看代碼片派生到我的代碼片
# nc -z -v 192.118.20.95 22
Connection to 192.118.20.95 22 port [tcp/ssh] succeeded!
如下是連通不成功的例子:
在CODE上查看代碼片派生到我的代碼片
# nc -z -v 192.118.20.95 22
nc: connect to 192.118.20.95 port 22 (tcp) failed: No route to host
使用nc命令來測試udp埠的連通性:
語法:
在CODE上查看代碼片派生到我的代碼片
nc -z -v -u <hostname/IP address> <port number>
在CODE上查看代碼片派生到我的代碼片
# nc -z -v -u 192.118.20.95 123
Connection to 192.118.20.95 123 port [udp/ntp] succeeded!
nc檢測埠的用法
nc -z -w 10 %IP% %PORT%
-z表示檢測或者掃描埠
-w表示超時時間
-u表示使用UDP協議
⑵ 怎麼對tcp壓力測試
查看httpd進程數: Linux命令: ps -ef grep httpd wc -l 返回結果示例:1388 表示伺服器能夠處理1388個並發請求,這個值伺服器可根據負載情況自動調整。 查看伺服器的並發請求數及其TCP連接狀態: Linux命令: netstat -n awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 返回結果示例: LAST_ACK 5 SYN_RECV 30 ESTABLISHED 1597 FIN_WAIT1 51 FIN_WAIT2 504 TIME_WAIT 1057 其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
⑶ 要測試本機的tcp/ip協議是否正常,常使用的命令是
1. 單擊「開始」/「運行」,輸入CMD按回車,打開命令提示符窗口。
2.首先檢查IP地址、子網掩碼、默認網關、DNS伺服器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網路配置,觀查是否正確。
3.輸入ping 127.0.0.1,觀查網卡是否能轉發數據,如果出現「Request timed out」(請求超時),表明配置出錯或網路有問題。
4.Ping一個互聯網地址,看是否有數據包傳回,以驗證與互聯網的連接性。
5. Ping 一個區域網地址,觀查與它的連通性。
6.用nslookup測試DNS解析是否正確,輸入如nslookup ,查看是否能解析。
⑷ 使用 Ping 命令測試 TCP/IP 配置
Ping命令的使用方法:
1、點擊開始菜單。
2、選擇運行。快捷鍵為WIN徽標鍵+R。
3、輸入CMD回車。
5、如果顯示timeout則網路未連接或掉包。如果顯示位元組、時間等信自息則網路正常,時間的MS數越小,說明網速越快。
Ping 是Windows、Unix和Linux系統下的一個命令。ping也屬於一個通信協議,是TCP/IP協議的一部分。利用「ping」命令可以檢查網路 是否連通,可以很好地分析和判定網路故障。應用格式:Ping空格IP地址。該命令還可以加許多參數使用,具體是鍵入Ping按回車即可看到詳細說明。
⑸ 怎麼在Linux伺服器上測試TCP/UDP埠的連通性
telnet和nc 是用來測試埠連通性的一般工具。
telnet可以測試tcp埠的連通性。
nc可以測試tcp和udp埠的連通性。
請確保telnet和nc工具已經安裝
# yum install nc# yum install telnet
⑹ 如何使用 JMeter 對 TCP 協議的服務進行負載測試
1.建立一種類型測試
這里只描述簡單的tcp測試建立步驟,因為目前支持的測試類型很多,無法一一陳述,功能細節部分可以參考JMeter文檔
1)創建測試線程組
2)根據需要設定線程組參數
3)建立TCP采樣
3)配置TCP采樣參數
基本上一個簡單的測試計劃就完成了,點擊運行采樣,就會將文本發送出去。
2.高級功能配置
1)配置結果查看監聽器
有時候需要查看線程組執行結果情況,這個可以通過設定采樣結果查看
針對上面配置的線程組應該執行6次,也就是發送6條消息,通過監控器可以看到的確有6個采樣結果,說明執行成功
2)配置變數
有時候需要在報文中加上一些變化的內容,可以通過在文本中增加變數設定來實現
如增加一個變數名 bank, 其值為 1111,在前面發送的報文中加上${bank}即可引用,如
執行之後就可以在監控器中看到報文中有1111了
3)配置TCP 二進制報文
大多數情況下,報文可能非純文本形式,常常都是不可讀的二進制,所以這種情況下需要配置二進制報文。當前JMeter支持HEX形式,也就是16進制的報文輸入配置
參考: https://wiki.apache.org/jmeter/UserManual/Reference/TcpSampler
當前支持三種格式 1.TCPClientImpl(默認) 2.BinaryTCPClientImpl 3.
使用二進制方式需要做如下幾件事:
a.把普通文本報文翻譯成HEX格式,可以找文本編輯器做這件事。比如notepad++,打開文本文件
Ctrl+A全選內容,paste到一個新文件,替換掉所有空格
如果報文還需要加上頭的話,需要額外計算一下。比如增加一個command id和報文長度。比如上文中文本長度在編輯器狀態欄上顯示155長,假定command id是1.
System.out.println("155 hex " + Integer.toHexString(155)); --- 9b
System.out.println("1 hex " + Integer.toHexString(1)); ---1
如果command id是4個位元組那麼16進制字元串就是 00 00 00 01
如果length也是4個位元組那麼16進制字元串就是 00 00 00 9b
去掉空格加入到前面報文中就拼成如下新報文
000000010000009b
再把新報文放入發送字元串輸入框中。
b.修改JMeter啟動配置,就是前文提到的指定BinaryTCPClientImpl適配
在jmeter.properties文件中找到如下部分,修改一下
#---------------------------------------------------------------------------
# TCP Sampler configuration
#---------------------------------------------------------------------------
# The default handler class
#tcp.handler=TCPClientImpl
tcp.handler=BinaryTCPClientImpl
重新執行TCP測試,可以看到伺服器端正常收到報文,如圖
jmeter測試TCP伺服器,使用TCP采樣器模擬發送TCP請求。
TCP采樣器:打開一個到指定伺服器的TCP / IP連接,然後發送指定文本並等待響應。
jmeter模擬發送TCP請求的方法:
1.新建線程組,然後在線程組中新建TCP采樣器
TCP采樣器中填寫伺服器地址、埠和「要發送的文本」,其它選項根據需要選填:
re_use connection表示重復發送連接請求
close connection 關閉連接
如果TCP請求需要用戶名/密碼,可以在登錄配置中填寫
2.新建「察看結果樹」監視器,查看發送的請求和響應的結果。如果需要發送16進制報文這個地方會失敗。
jmeter發送16進制TCP報文的方法:
很多TCP伺服器報文為16進制,並且多數不能轉換成文本發送,而jmeter默認發送文本。
jmeter.properties中修改tcp.handler=BinaryTCPClientImpl ,啟動jmeter重新發送,抓包查看既是16進制的tcp報文。
另一個方法:可以在工作台新建–非測試元件–Property Display,Property Display中修改jmeter.properties只對當前進程有效。
⑺ 如何檢測TCP連接是否成功,或者已經連接成功
這個啊,我簡單的說一下。
首先,編程的話,在windows環境下,肯定用的是winsock來編寫網路程序。
如何檢測客戶端和服務端連接成功
肯定是用服務端首先bind,在listen,然後調用個循環accept,當客戶端connect的時候,就開一個線程來服務。accept能返回一個sock值,而不是invaid_socket,那肯定就代表連接成功的啦。
斷線處理
斷線的話,必須得有一段send數據後,發現沒有返回,那麼程序就知道斷線了。至於如何檢測,可以設置一定的時間間隔,發送檢測數據包,沒有斷線的話,有返回值,可以發送,斷線的話,程序就知道了。
具體的編程和思路,你還是找本書看吧,不知道你用的什麼語言編寫的,不過估計在windows環境下都差不多。可以看下老羅的《windows環境下32位匯編語言程序設計》裡面有個聊天室的案例,講的蠻清楚的。雖然是匯編的,但是都是相通的,你應該看得懂。
⑻ 怎麼在Linux伺服器上測試TCP/UDP埠的連通性
測試埠的聯通性可以藉助telnet命令,操作如下:
telnetipport
以上請使用測試的ip和埠替換ip和port,如通了會切換界面。
⑼ TCP伺服器性能如何測試
1 可以用專用工具測試,例如:
Netperf(www.netperf.org):網路性能測試。主要針對基於TCP或
UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網路性能測試,即批量數據傳輸(bulk data
transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統
發送數據,以及另外一個系統能夠以多塊的速度接收數據。Netperf工具以client/server方式工作。
server端是netserver,用來偵聽來自client端的連接,client端是 netperf,用來向server發起網路測試。
2 自己寫代碼測試,參考:
http://kmplayer.iteye.com/blog/673226。