如何获取连接到 Apache 服务器的 IP 地址列表?

如何获取连接到 Apache 服务器的 IP 地址列表?

我正在尝试获取过去一周内连接到 Apache 服务器的端口 80、端口 22(FTP 使用的端口?)以及 ssh/putty 使用的端口的 IP 地址列表。它的命令行提示符是什么?我在这里找到了这个http://www.mickgenie.com/how-to-check-apache-connections/但最后一个例子只返回 1。

我还发现了这一点:

http://linuxboxadmin.com/micro-howtos/system-administration/monitoring-apache-connections.html

但问题是它列出了当前和已建立的连接。我想获取过去和过去已建立的连接。

答案1

没有一个通用的日志位置,你可能需要用正确的工具来处理日志才能获得所需的信息。老式 Linux 工具的神奇之处在于它们全部文本文件,所以像 sed/awk/cut/sort 这样的工具可以节省你大量的时间来获取你需要的数据

/var/log/是一个很好的起点。我不亲自运行 apache,我的服务器使用率相对较低,所以我并没有真正记录 lighttpd,但是根据这个U&L 帖子 /var/log/apache2/access.log是值得一看的地方

至于 ssh,我知道它在哪里 - 它在/var/log/auth.log,只需使用 grep 通过 sshd 选择出行即可。

一般的配置文件和文档是检查您是否正在记录日志以及这些日志在何处的最佳起点。

答案2

Apache 可能会将成功的 http 连接记录到 /var/log/apache2/access.log 等文件中。该文件可能会被 logrotate 等工具轮换到 access.log.0、access.log.1.gz 等。

FTP 连接可能同样会被 ftp 服务器记录,甚至可能被记录在 /var/log 中。

SSH 会话可能已被记录,但也许在 /var/log/syslog、messages、auth 或 secure 中。

总之,连接最有可能由处理它们的特定服务记录在 /var/log/ 中。要运行的特定命令将取决于 a) 正在运行的服务、b) 它们记录到的文件、c) 它们使用的格式以及 d) 您想要的日期范围。

我建议花一些时间在 /var/log/ 中的lesszless和,grep并在遇到特定的文件解析或命令调用障碍需要克服时提出其他问题。

相关内容