如何判斷對端電腦8080端口是否打開?

一排糖_gvw


回答行業問題

測試電腦端口是否開的命令有很多,比如: telnet、nmap、ssh、wget、curl、socket連接,這些都屬於TCP網絡連接。

作者“小小猿愛嘻嘻”已經介紹了telnet、nmap、socket程序測試端口的方法,寫的十分詳細,這裡我就不再介紹了。接下來我補充介紹下wget、curl、ssh工具用做端口測試時的方法。

TCP 8080端口多用於http服務,既然是測試http服務,那我想一定是做定時檢查http服務是否存活,這個可以通過腳本來測試,十分方便,下面我簡單寫了個腳本,說明下wget和curl工具端口檢測方法,在shell腳本中怎麼使用,內容如下:


wget、curl檢測8080是否開啟

wget是linux系統下文件下載工具,現在已經移植到windos平臺上。對於Linux用戶來說是必須要掌握的命令,經常要從網上下載一些工具或者軟件。同時支持HTTP、HTTPS和FTP協議,可以使用代http代理,下面是wget定義的wget_test函數。

weget_test () {

wget -q -O /dev/null $1:$2

[ $? -eq 0 ] && echo "wget_test: $1 $2 open" || {

echo "wget_test: $1 $2 closed"

}

}

curl也是linux系統下的命令行工具,它可以指定URL來進行下載和上傳數據,有了這功能我們就可以,比如模擬POST請求發送JSON或者XML的數據,來進行一些HTTP接口測試,curl同樣也已經被移植到windos平臺上,下面是curl定義的curl_test函數。

curl_test () {

curl -s -o /dev/null $1:$2

[ $? -eq 0 ] && echo "curl_test: $1 $2 open" || {

echo "curl_test: $1 $2 closed"

}

}

這裡只做Linux系統shell腳本演示,windos平臺腳本可自行學習。這個腳本主要包含了兩個自定義函數,分別是curl_test和wget_test,它們分別包含了wget和curl工具通過HTTP請求,測試服務器端口是否存活。同時定義了多個端口,使用while和for配合循環輸出,來對比觀察在成功和失敗時的輸出結果。

while :;do

for i in $port;do

curl_test ${host} $i

weget_test ${host} $i

echo '-------------------------'

sleep 1

done

done

這個shell腳本也可以進行擴展,比如監控web服務宕機發送郵件,或者直接在服務器上運行,當做“看門狗”使用,我們來看下執行結果。

服務器只開啟了8080端口,80、9001端口並未開啟,輸出提示808端口開啟、80/9001端口關閉,到這裡就可以修改腳本進行服務器監測了。

  • wget使用參數說明

我們只是檢測端口不需要任何輸出

  • -q 靜默訪問,禁止輸出
  • -O 將保存的文件輸出到/dev/null空
  • curl使用參數說明

curl的參數和wget同理。

  • -s 靜默模式訪問,不輸出
  • -o 這裡是小寫o,指定輸出路徑到/dev/null空

當然這兩個命令還有很多參數,這裡只用兩個參數,有興趣的可以自行了解下,學會這兩個命令,對工作幫助很大的。

SSH工具連接測試端口是否存活

ssh是目前比較可靠,專為遠程會話連接和其他網絡服務提供的安全性協議,ssh是linux上的一個程序,它提供了ssh server端和ssh client,我們可以利用它遠程連接的特性,來進行端口檢測,命令如下:

[root@api port]#ssh 127.0.0.1 -p 8080 -v
  • -p 指定端口

  • -v 開啟詳細模式,輸出調試信息

我們在測試下沒有的端口,從日誌可以看出Connection refused直接就給拒絕了。

[root@api port]#ssh 127.0.0.1 -p 80 -v

總結,端口存活測試的方法有很多,關鍵是需要選對最合適測試場景的方法,wget和curl就一個不錯的選擇,建議好好學習一下。

以上回答希望能夠幫助到你,喜歡我的回答點個贊再走,歡迎大家評論留言。


IT大叔Cc


這裡介紹3種判斷對端電腦是否開啟8080端口的方法,分別是telnet,nmap和socket編程,感興趣的朋友可以嘗試一下:

01

telnet

這是最簡單的判斷對端電腦是否開啟8080端口的方法,適用於Windows和Linux,只不過首先都需要安裝telnet客戶端,接著輸入對端電腦IP和8080端口,如果返回狀態為拒絕連接“Connection refused”,則說明8080端口未開啟,否則開啟,更多功能和參數,可參考幫助命令“man telnet”,官方文檔介紹的非常詳細:

02

nmap

這是Linux環境下一個非常著名的網絡掃描和嗅探工具,可快速掃描對端電腦(主機)是否在線,以及對應端口是否開啟,功能強大,操作簡單,在黑客滲透測試中經常會用到,對於日常使用來說,也是一個非常不錯的工具,推薦使用,如下,如果STATE返回狀態為open,則說明端口開啟,closed則為關閉:

03

socket編程

這種方式主要基於socket編程來實現,創建一個socket套接字,嘗試去連接對端電腦對應端口,如果超時或返回錯誤,則說明端口未開啟,否則端口開啟,測試代碼如下,以Python為例,非常簡單,當然,你也可以使用其他編程語言,效果類似:

至此,我們就介紹完了3種判斷對端電腦是否開啟8080端口的方法。總的來說,這3種方法都非常簡單,telnet最基礎,nmap功能強大,socket編程需要一定基礎,網上也有相關資料和教程,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


小小猿愛嘻嘻


1.可以通過netstat —na命令查看,如下圖所示:


2.

可以通過telnet命令,如下圖所示:

如果打開的話會自動跳轉到一個空白頁


ksfzhaohui


第一步:先判斷網絡是否接通,輸入dos命令:ping 目標主機IP地址

第二步:判斷是否可以連接到端口:telnet 目標主機IP地址 端口號


梁溪舊巷


netstat -ano | findstr "端口"

如果顯示有說明被佔用可以用taskk 強制關閉


分享到:


相關文章: