3 個 Linux 中快速檢測埠的小技巧

2021-10-05 01:36:38 字數 3322 閱讀 3732

無論是要解決網路連線問題還是配置防火牆,第一件事是要檢查系統實際開啟了哪些埠。

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

監聽埠是應用程式監聽的網路埠。你要得到的監聽埠名單通常可以通過如ssnetstatlsof命令查詢系統上網路堆疊。每個監聽埠都可以使用防火牆開啟或關閉(過濾)。

一般而言,開放埠是乙個網路埠,它接受來自遠端位置的傳入資料報。

例如:如果你正在執行的監聽埠 80、443 的web伺服器,並把這些埠在防火牆上對任何人開放。使用瀏覽器將能夠訪問託管在 web 伺服器上的**。在這種情況下,80 和 443 都是開放埠。

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

nmap 是功能強大的網路掃瞄工具,可以掃瞄單個主機和大型網路。它主要用於安全審核和滲透測試。

nmap 是埠掃瞄的首選工具。除埠掃瞄外,nmap 還可以檢測 mac 位址、作業系統型別、核心版本等。

從控制台發出以下命令確定哪些埠正在監聽來自網路的 tcp 連線:

$ sudo nmap -st -p- 10.10.8.8
-st選項告訴 nmap 掃瞄 tcp 埠,-p-掃瞄所有埠(65535 個)。如果不使用-p-nmap將僅掃瞄 1000 個埠。

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(或nc)是一種命令列工具,可以使用tcpudp協議跨網路連線讀取和寫入資料。

使用 netcat 可以掃瞄單個埠或埠範圍。

$ 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 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 shell檢查/dev/tcp/../dev/udp/..下的偽裝置。

/dev/$protocol/$host/$ip偽裝置上執行命令時,bash將在指定埠上開啟到指定主機的tcpudp連線。

以下if..else語句將檢查埠 443 在kernel.org是否開啟:

if timeout 5 bash -c '/dev/null'

then

echo "port is open"

else

echo "port is closed"

fi

輸出將如下所示:

port is open
使用偽裝置連線到埠時的預設超時時間非常長,因此我們使用timeout命令在5秒後終止測試命令。如果建立了kernel.org埠連線,則443測試命令將返回 true。你也可以使用for迴圈來檢查指定的埠範圍:

for port in ; do

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

done

輸出將如下所示:

port 22 is open

port 80 is open

我們為你展示了幾種如何使用掃瞄開放埠的工具,當然你也可以使用其它工具來達到同樣的目的,例如:python socket模組、curltelnetwget

Ogre中的碰撞檢測 3

在ogre中,可以建立乙個查詢器,比如球體查詢器,aabb查詢器,面查詢器等。下面我們以最常用的球形查詢器為例來說明 如下面的 我們首先建立乙個球形查詢器,它需要定義乙個球體,我們把它的位置,設定為攝像機的位置,半徑為10,掩碼為第二個引數,預設為 1,通過掩碼,可以把碰撞的物體分成不同的組,比如我...

Linux中查詢檔案的3個命令

首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常風趣幽默,還時不時有內涵段子,像看 一樣,哈哈 我正在學習中,覺得太牛了,所以分享給大家!點這裡可以跳轉到教程 通常在linux 中查詢檔案是先用whereis或locate,還是查不到後才用find命令。...

Linux中如何新增乙個新的埠號

1新增指定埠 在 etc services中新增埠以及對應程序名及協議 tcp udp 如果開啟防火牆的要在防火牆設定 etc sysconfig iptables增加對應的埠 例如我新增memcache的埠,配置分布式快取 21.啟動memcache的伺服器端 usr bin memcached ...