日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

本文介紹了幾種快速查找 linux 系統上哪些端口向外部開放的方法。

什么是開放端口

監聽端口是應用程序監聽的網絡端口。你要得到的監聽端口名單通常可以通過如 ss 、 netstat 或 lsof 命令查詢系統上網絡堆棧。每個監聽端口都可以使用防火墻打開或關閉(過濾)。

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

例如:如果你正在運行的監聽端口 80、443 的 Web 服務器,并把這些端口在防火墻上對任何人開放。使用瀏覽器將能夠訪問托管在 Web 服務器上的網站。在這種情況下,80 和 443 都是開放端口。

開放端口可能會帶來安全風險,因為攻擊者可以使用每個開放端口來利用漏洞或執行任何其他類型的攻擊。您應該只公開應用程序功能所需的端口,然后關閉所有其他端口。

使用 Nmap 命令檢查開放端口

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

Nmap 是端口掃描的首選工具。除端口掃描外,Nmap 還可以檢測 mac 地址、操作系統類型、內核版本等。

從控制臺發出以下命令確定哪些端口正在監聽來自網絡的 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

有關更多信息,請訪問 Nmap 手冊頁,并了解此工具的所有其他強大功能。

使用 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 refusednc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refusedConnection 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 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 偽設備檢查打開的端口

檢查某個端口是打開還是關閉的另一種方法是使用 Bash Shell 檢查 /dev/tcp/.. 或 /dev/udp/.. 下的偽設備。

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

以下 if..else 語句將檢查端口 443 在 kernel.org 是否 打開:

???????if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'thenecho "Port is open"elseecho "Port is closed"fi

輸出將如下所示:

Port is open

上面的代碼如何工作?

使用偽設備連接到端口時的默認超時時間非常長,因此我們使用 timeout 命令在 5 秒后終止測試命令。如果建立了 kernel.org 端口連接,則 443 測試命令將返回 true。你也可以使用 for 循環來檢查指定的端口范圍:

???????for PORT in {20..80}; dotimeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "port $PORT is open"done

輸出將如下所示:

???????port 22 is openport 80 is open

結論

我們為你展示了幾種如何使用掃描開放端口的工具,當然你也可以使用其它工具來達到同樣的目的,例如: Python Socket 模塊、 Curl 、 Telnet 或 Wget 。

本文翻譯自:「Linuxize」,原文:https://url.cn/5t61HyI,版權歸原作者所有。歡迎投稿,投稿郵箱: editor@hi-linux.com。

分享到:
標簽:端口 檢測
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定