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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

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

原標(biāo)題:如何在 Linux 中檢查(掃描)開放端口

如何在 Linux 中檢查(掃描)開放端口

無論是對網(wǎng)絡(luò)連接問題進行故障排除還是配置防火墻,首先要檢查的是在系統(tǒng)上實際打開的端口。

本文介紹了幾種查找系統(tǒng)外部打開端口的方法。

什么是開放端口

偵聽端口是應(yīng)用程序偵聽的網(wǎng)絡(luò)端口。您可以通過使用 ss,netstat 或 lsof 等命令查詢網(wǎng)絡(luò)堆棧來查看系統(tǒng)上的偵聽端口。可以使用防火墻打開或關(guān)閉(過濾)每個偵聽端口。

一般而言,開放端口是接收來自遠程位置的傳入數(shù)據(jù)包的網(wǎng)絡(luò)端口。

例如,如果您正在運行偵聽端口 80 和 443 并且在防火墻上打開這些端口的 Web 服務(wù)器,則任何人(阻止的 ips 除外)都可以使用他的瀏覽器訪問 Web 服務(wù)器上托管的網(wǎng)站。在這種情況下,80和443都是開放端口。

開放端口可能會帶來安全風(fēng)險,因為攻擊者可以使用每個開放端口來利用漏洞或執(zhí)行任何其他類型的攻擊。您應(yīng)該只公開應(yīng)用程序功能所需的端口并關(guān)閉所有其他端口。

使用nmap檢查打開端口

Nmap 是一款功能強大的網(wǎng)絡(luò)掃描工具,可以掃描單個主機和大型網(wǎng)絡(luò)。它主要用于安全審計和滲透測試。

如果可用,nmap 應(yīng)該是端口掃描的第一個工具。除了端口掃描,nmap 還可以檢測 Mac 地址,操作系統(tǒng)類型,內(nèi)核版本等等。

從控制臺發(fā)出的以下命令確定哪些端口正在偵聽來自網(wǎng)絡(luò)的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在目標(biāo)系統(tǒng)上打開。

要掃描UDP端口,請使用-uT而不是-sT:

sudo nmap -uT -p- 10.10.8.8

有關(guān)更多信息,請訪問 nmap 手冊頁并閱讀此工具的所有其他強大選項。

使用 netcat 檢查打開端口

Netcat(或nc)是一個命令行工具,可以使用 TCP 或 UDP 協(xié)議跨網(wǎng)絡(luò)連接讀寫數(shù)據(jù)。

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

例如,要掃描IP地址為 10.10.8.8 且范圍為 20-80 的遠程計算機上的開放 TCP 端口,您將使用以下命令:

nc -z -v 10.10.8.8 20-80

-z 選項告訴 nc 僅掃描開放端口,而不發(fā)送任何數(shù)據(jù),-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 命令過濾結(jié)果。

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

輸出

Connection 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 Pseudo Device檢查打開端口

檢查某個端口是打開還是關(guān)閉的另一種方法是使用 Bash shell /dev/tcp/.. 或 /dev /udp/.. 偽設(shè)備。

在 /dev/$PROTOCOL/$HOST/$IP 偽設(shè)備上執(zhí)行命令時,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"

fi

輸出

Port is open

上面的代碼如何工作?

使用偽設(shè)備連接到端口時的默認超時很大,因此我們使用 timeout命令在5秒后終止測試命令。 如果建立到 kernel.org 端口443 的連接,則 test 命令將返回 true。

您還可以使用 for 循環(huán)檢查端口范圍:

for PORT in {20..80}; do

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

done

輸出

port 22 is open

port 80 is open

寫在最后

我們向您展示了幾種可用于掃描開放端口的工具。 還有其他實用程序和方法來檢查開放端口,例如,您可以使用 Python 套接字模塊,curl,telnet 或 wget。

原文來自: https://linux265.com/news/3761.html返回搜狐,查看更多

責(zé)任編輯:

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。