⑴ linux下怎樣查看某一埠是否開放
可以通過telnet進行排查,亂辯缺首先確定埠是否開啟x0dx0a[root@localhost xly]# netstat -tpln|grep 3306x0dx0atcp 0 0 :::3306 :::* LISTEN 3034/mysqld x0dx0a然後再從灶彎其他機器進行telnet,如果通暢,則說明開放了,如果沒有,說明有防火牆、網路嘩辯不通、配置限制等情況x0dx0a[root@localhost xly]# telnet 192.168.1.1 3306x0dx0aTrying 192.168.1.1...x0dx0aConnected to 192.168.1.1.x0dx0aEscape character is '^]'.x0dx0aNx0dx0a5.6.39-loge9+kZc`;!
⑵ 如何用linux查看伺服器器的埠
在Linux中查找服務的埠
方法1:使用grep命令
要使用grep命令在Linux中查找指定服務的默認埠號,只需運行:
$grep<port>/etc/services
例如,要查找SSH服務的默認埠,只需運行:
$grep ssh/etc/services
就這么簡單。此命令應該適用於大多數Linux發行版。以下是我的Arch Linux測試機中的示例輸出:
ssh 22/tcp
ssh 22/udp
ssh 22/sctp
sshell 614/tcp
sshell 614/udp
netconf-ssh 830/tcp
netconf-ssh 830/udp
sdo-ssh 3897/tcp
sdo-ssh 3897/udp
netconf-ch-ssh 4334/tcp
snmpssh 5161/tcp
snmpssh-trap 5162/tcp
tl1-ssh 6252/tcp
tl1-ssh 6252/udp
ssh-mgmt 17235/tcp
ssh-mgmt 17235/udp
正如你在上面的輸出中所看到的,SSH服務的默認埠號是22。
讓我們找到Apache Web伺服器的埠號。為此,命令是:
$grep http/etc/services
#http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http#WorldWideWeb HTTP
http 80/udp www www-http#HyperText Transfer Protocol
http 80/sctp#HyperText Transfer Protocol
https 443/tcp#http protocol over TLS/SSL
https 443/udp#http protocol over TLS/SSL
https 443/sctp#http protocol over TLS/SSL
gss-http 488/tcp
gss-http 488/udp
webcache 8080/tcp http-alt#WWW caching service
webcache 8080/udp http-alt#WWW caching service
[...]
FTP埠號是什麼?這很簡單!
$grep ftp/etc/services
ftp-data 20/tcp
ftp-data 20/udp
#21 is registered to ftp,but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
tftp 69/tcp
[...]
方法2:使用getent命令
如你所見,上面的命令顯示指定搜索詞「ssh」、「http」和「ftp」的所有埠名稱和數字。這意味著,你將獲得與給定搜索詞匹配的所有埠名稱的相當長的輸出。
但是,你可以使用getent命令精確輸出結果,如下所示:
$getent services ssh
ssh 22/tcp
$getent services http
http 80/tcp www www-http
$getent services ftp
ftp 21/tcp
如果你不知道埠名稱,但是知道埠號,那麼你只需將埠名稱替換為數字:
$getent services 80
http 80/tcp
要顯示所有埠名稱和埠號,只需運行:
$getent services
⑶ Linux中如何檢查開放埠
場景一:了解系統開放的埠,和正在使用的埠,在各種情況下都會有所幫助。
比如:如果你的伺服器正在運行著 Nginx,那麼其埠應該為80或者443,可以檢查一下。再比如你可以檢查一下 SMTP、SSH或者其他服務用的是哪個埠。當有新的服務需要開放埠的時候,你需要知道目前已經被佔用的,都有哪些埠。
此外,可以檢查一下是否有開放的可用於入侵檢測的埠。
Linux 中有多種檢查埠的方法,本文將介紹兩種。
使用 lsof 檢查當前系統開放的埠
不管你是直接登錄的系統,還是使用 ssh 連接的,都可以使用 lsof 命令來檢查埠:
該命令用於查找用戶使用的文件和進程。上述命令中的選項,包括:
但是,這也會展示許多計算機並沒有監聽的其他埠。
我們可以通過管道將此輸出傳輸到 grep,並匹配模式 「LISTEN」,如下所示:
這樣就只顯示計算機正在監聽的,以及正在運行的伺服器所佔用的埠。
使用 netcat 命令檢查遠程伺服器上的埠
nc(Netcat) 是一個命令行實用程序,使用TCP和UDP協議在網路計算機之間讀取和寫入數據。
以下是nc命令的語法:
這個工具有一個很實用的 -z 選項,它會讓 nc 命令掃描正在監聽的守護進程,但是不會向埠發送任何數據。
將其與 -v 選項結合,啟動詳細信息,會有詳細信息的輸出。
losf與nc的不同點:
lsof命令簡介
lsof 命令用於顯示 Linux 系統當前已打開的所有文件列表。查看進程或系統打開的文件會給調試帶來極大的幫助。下面簡單地介紹 lsof 常使用的功能。
lsof (list open files)命令用於查看你進程打開的文件,打開文件的進程,進程打開的埠(TCP、UDP),還可以用於找回/恢復被刪除的文件。lsof 命令需要訪問核心內存和各種文件,所以需要具備 root 超級管理員許可權的用戶才能執行此命令。
linux的nc命令,NetCat,在網路工具中有「瑞士軍刀」美譽「,是解決這個問題的工具。 nc命令安裝: yum install nc
以上是看來一些文章的總結分享內容,歡迎補充討論。