無論是要解決網路連線問題還是配置防火牆,第一件事是要檢查系統實際開啟了哪些埠。
本文介紹了幾種快速查詢linux
系統上哪些埠向外部開放的方法。
監聽埠是應用程式監聽的網路埠。你要得到的監聽埠名單通常可以通過如ss
、netstat
或lsof
命令查詢系統上網路堆疊。每個監聽埠都可以使用防火牆開啟或關閉(過濾)。
一般而言,開放埠是乙個網路埠,它接受來自遠端位置的傳入資料報。
例如:如果你正在執行的監聽埠 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)是一種命令列工具,可以使用tcp
或udp
協議跨網路連線讀取和寫入資料。
使用 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
將在指定埠上開啟到指定主機的tcp
或udp
連線。
以下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
模組、curl
、telnet
或wget
。 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 ...