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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 扫描开放的端口命令,在Linux中,如何检查开放的端口(扫描)

發布時間:2024/8/1 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 扫描开放的端口命令,在Linux中,如何检查开放的端口(扫描) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無論是要解決網絡連接問題還是配置防火墻,要檢查的第一件事就是系統上實際打開了哪些端口。

本文描述了幾種如何找出在Linux系統打開了哪些端口的方法。

什么是開放端口

偵聽端口是應用程序偵聽的網絡端口,可以通過使用偵聽端口,ss,netstat或lsof等命令查詢網絡堆棧來獲得系統上的列表,每個偵聽端口都可以使用防火墻打開或關閉(過濾)。

一般來說,開放端口是一個網絡端口,接受來自遠程位置的傳入數據包。

你應該只公開程序所需的端口,并關閉所有其他端口。

使用nmap檢查打開的端口

Nmap是一個強大的網絡掃描工具,可以掃描單個主機和大型網絡,主要用于安全審計和滲透測試,

除了端口掃描,nmap還可以檢測Mac地址,OS類型,內核版本等等。

以下命令確定哪些端口正在偵聽來自網絡的TCP連接:sudo nmap -sT -p- 10.10.8.8

-sT告訴nmap掃描TCP端口,-p-掃描所有65535個端口,如果沒有使用-p-nmap將只掃描1000個端口。Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-09 23:10 CEST

Nmap scan report for 10.10.8.8

Host is up (0.0012s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

上面的輸出顯示,在目標系統上只打開端口22,80和8069。

要掃描UDP端口,請使用-sU而不是-sT:sudo nmap -sU -p- 10.10.8.8

使用netcat檢查打開的端口

Netcat (或nc )是一個命令行工具,可以使用TCP或UDP協議跨網絡連接讀取和寫入數據。

使用netcat可以掃描單個端口或端口范圍。

例如要在IP地址為10.10.8.8在20-80的遠程計算機上掃描打開的TCP端口,可以使用以下命令:nc -z -v 10.10.8.8 20-80

-z選項告訴nc只掃描打開的端口,而不發送數據,-v用于更詳細的信息。

輸出將類似于以下內容:nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused

nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused

Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!

...

Connection to 10.10.8.8 80 port [tcp/http] succeeded!

如果只想在屏幕上打印有打開端口的行,可以使用grep命令。nc -z -v 10.10.8.8 20-80 2>&1 | grep succeededConnection to 10.10.8.8 22 port [tcp/ssh] succeeded!

Connection to 10.10.8.8 80 port [tcp/http] succeeded!

要掃描UDP端口,請將-u選項傳遞給nc命令:nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

使用Bash偽設備檢查打開端口

另一種檢查某個端口是否打開或關閉的方法是使用Bash shell /dev/tcp/ ..或/dev/udp/ ..設備,

在/dev/$PROTOCOL/$HOST/$IP偽設備上執行命令時,Bash將在指定端口上打開到指定主機的TCP或UDP連接。

以下if,else語句將檢查kernel.org上的端口443是否打開:if timeout 5 bash -c '/dev/null'

then

echo "Port is open"

else

echo "Port is closed"

fiPort is open

上面的代碼是如何工作的?

使用偽設備連接到端口時的默認超時很長,因此使用timeout命令在5秒后殺死測試命令,如果連接建立到kernel.org端口443,測試命令將return true。

你還可以使用for循環檢查端口范圍:for PORT in {20..80}; do

timeout 1 bash -c "/dev/null" && echo "port$PORTis open"

done

輸出將類似于以下內容:port 22 is open

port 80 is open

結束語

我們向你展示了幾個可用于掃描打開端口的工具,還有其他工具和方法來檢查開放端口,例如你可以使用python socket模塊,curl或telnet,wget。

如果你有問題或意見,請在下面留言。

總結

以上是生活随笔為你收集整理的linux 扫描开放的端口命令,在Linux中,如何检查开放的端口(扫描)的全部內容,希望文章能夠幫你解決所遇到的問題。

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