如何找到 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)。