Command-Line
檢查特定 tcp/udp 埠 上正在執行什麼服務
我正在尋找一個命令行實用程序,它允許我檢查遠端機器的特定埠上正在執行的服務(例如:http/ftp/ssh)。
我想像這樣一個程序如何執行的一個例子:
kess@KG-PC:~$ portcheck google.com:80 Port 80 of google.com is running a(n) "http" server
進行此類辨識的最簡單方法是建立與此埠的連接並抓取橫幅。Banner(通常)可以告訴您這是否是例如 Apache httpd、openssh 等。橫幅列表可能很大。您也可以嘗試一些命令,例如
GET / HTTP/1
檢查服務是否回复它們。對於純文字命令telnet
就足夠了。對於加密 (SSL/TLS),您可能需要使用openssl s_client
.AFAIK
nmap
可以做這樣的事情,所以你可以下載原始碼並檢查那裡是如何完成的。如果您只想使用一個工具,您可以測試:
nmap -A google.com -p 80