首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何查看Apache can服务器上的当前连接?

如何查看Apache can服务器上的当前连接?
EN

Ask Ubuntu用户
提问于 2013-01-10 17:10:16
回答 6查看 193.6K关注 0票数 42

在Webmin/Virtualmin的帮助下,我在基本LAMP中使用Apache托管了许多虚拟主机。我正在寻找一个顶部类工具,我可以监测当前的连接。虚拟主机部分似乎给我带来了麻烦。以下是我尝试过的:

  • netstat --我可以看到连接,但它们向我展示了它们都在使用我的主域,例如mydomain.com:www
  • iftop --我非常喜欢它,但它的缺点类似于netstat:没有显示虚拟主机。
  • apachetop --似乎没有显示我所有虚拟主机的信息。我将日志记录到不同的自定义日志文件中,我怀疑这是它不能工作的原因。
  • ntopdarkstatMRTGbwm-ngIPTraf -也不起作用。

因此,基本上,我在寻找类似于netstat当前输出的内容,但是要包含请求所需要的虚拟主机,例如:avirtualsite.com:www

EN

回答 6

Ask Ubuntu用户

发布于 2014-03-17 05:19:46

另一种方法是键入

代码语言:javascript
运行
复制
tail -f /var/log/apache2/access.log

在你的航站楼

票数 16
EN

Ask Ubuntu用户

发布于 2013-01-10 17:34:02

你正在尝试的所有工具永远不会给你正确的答案。原因是在建立连接时,您请求的信息丢失了。

让我们使用一个示例:假设您的web服务器有一个IP地址(1.2.3.4)和两个解析到该IP地址的主机名(a.mydomain.com和b.mydomain.com)。

当您访问a.mydomain.com时,使用您最喜欢的web浏览器会发生什么?

  1. 浏览器询问您的DNS服务器a.mydomain.com对应的IP地址。
  2. DNS服务器告诉浏览器地址为1.2.3.4。
  3. web浏览器连接到1.2.3.4。

所以netstat & co.只知道有一个传入连接到1.2.3.4。您看到主机名而不是IP地址的原因是IP地址有rDNS记录,所以netstat更喜欢显示它而不是IP,因为它更好。尝试netstat -n (或删除rDNS记录),您将看到IP地址。

但这还不是全部:当我说用于连接的主机名的信息丢失时,我说得不完全正确。从TCP/IP堆栈的角度来看,这句话是真的。但是,如果我们从HTTP协议的角度看问题,情况就不同了。在每个HTTP请求中,都有一个Host:头,其中包含浏览器用来发出请求的主机名。

因此,简而言之,您应该查看web服务器的日志文件。web服务器是处理HTTP请求的服务,因此是唯一知道“原始”主机名的服务。

票数 15
EN

Ask Ubuntu用户

发布于 2016-07-09 17:48:37

您可以使用此bash检查端口80上连接的所有ips。

代码语言:javascript
运行
复制
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

注意:如果您希望看到其他端口,请更改80。

输出:

代码语言:javascript
运行
复制
 19 x.174.143.1
 13 x.175.135.1
  9 x.68.135.1
  8 x.144.87.1
  7 x.68.150.1
  6 x.92.4.1
  6 x.188.23.1
  5 x.190.164.1
  4 x.189.156.1
票数 13
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/239631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档