如何找到 Apache Web 伺服器正在監控的 IP:PORT?有一些網路命令,但它們顯示正在使用的 TCP 連接埠。該機器有多個網路接口,並且Listen
中的部分httpd.conf
已註釋。因此,預設使用其中之一,但我不知道將哪一個設定為預設。
例如,以下命令僅顯示連接埠號
root@cluster:~# netstat -pat | grep httpd
tcp 0 0 *:ulistproc *:* LISTEN 3940/httpd
tcp 0 0 *:https *:* LISTEN 3940/httpd
另外,我希望正確的連接埠號碼應該是 80 而不是 3940!
有想法找到那個嗎?
答案1
最後一列是進程(進程編號/進程名稱)而不是連接埠。該連接埠位於第四列,在您的情況下,它顯示兩個開啟的連接埠 ulistproc 和 https。兩個連接埠都在位址「*」上打開,這表示您電腦上的所有位址(這是大多數守護程式的正常預設值,有一個配置可以限制它)。如果您想要實際的連接埠號,請使用“netstat -pant”來阻止其進行符號轉換。
答案2
以 root 身分輸入
netstat -pat | grep httpd
(或grep apache
取決於您的發行版)
答案3
nmap localhost
cat httpd.conf | grep port
答案4
除了使用 netstat 之外,您還可以用來lsof
列出開啟的檔案(流、套接字、區塊檔案等)。
root@host: lsof -i -n -P |grep httpd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 4291 root 3u IPv4 124715 0t0 TCP *:80 (LISTEN)
lsof (8) - 列出已開啟的文件
-i = 顯示 IPv4/6 檔案
-n = 不解析主機名稱(即顯示 IP)
-P 顯示連接埠號碼而非友善名稱(即 80 而非 HTTP)。