在Webmin/Virtualmin的帮助下,我在基本LAMP中使用Apache托管了许多虚拟主机。我正在寻找一个顶部类工具,我可以监测当前的连接。虚拟主机部分似乎给我带来了麻烦。以下是我尝试过的:
netstat
--我可以看到连接,但它们向我展示了它们都在使用我的主域,例如mydomain.com:www
。iftop
--我非常喜欢它,但它的缺点类似于netstat
:没有显示虚拟主机。apachetop
--似乎没有显示我所有虚拟主机的信息。我将日志记录到不同的自定义日志文件中,我怀疑这是它不能工作的原因。ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
-也不起作用。因此,基本上,我在寻找类似于netstat
当前输出的内容,但是要包含请求所需要的虚拟主机,例如:avirtualsite.com:www
。
发布于 2014-03-17 05:19:46
另一种方法是键入
tail -f /var/log/apache2/access.log
在你的航站楼
发布于 2013-01-10 17:34:02
你正在尝试的所有工具永远不会给你正确的答案。原因是在建立连接时,您请求的信息丢失了。
让我们使用一个示例:假设您的web服务器有一个IP地址(1.2.3.4)和两个解析到该IP地址的主机名(a.mydomain.com和b.mydomain.com)。
当您访问a.mydomain.com时,使用您最喜欢的web浏览器会发生什么?
所以netstat
& co.只知道有一个传入连接到1.2.3.4。您看到主机名而不是IP地址的原因是IP地址有rDNS记录,所以netstat
更喜欢显示它而不是IP,因为它更好。尝试netstat -n
(或删除rDNS记录),您将看到IP地址。
但这还不是全部:当我说用于连接的主机名的信息丢失时,我说得不完全正确。从TCP/IP堆栈的角度来看,这句话是真的。但是,如果我们从HTTP协议的角度看问题,情况就不同了。在每个HTTP请求中,都有一个Host:
头,其中包含浏览器用来发出请求的主机名。
因此,简而言之,您应该查看web服务器的日志文件。web服务器是处理HTTP请求的服务,因此是唯一知道“原始”主机名的服务。
发布于 2016-07-09 17:48:37
您可以使用此bash检查端口80上连接的所有ips。
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
注意:如果您希望看到其他端口,请更改80。
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
https://askubuntu.com/questions/239631
复制相似问题