如何从服务器端/使用 bash shell 检查服务器上托管了多少个域?
目标是发现服务器上托管有多少通过 http/https 公开的域。 (可远程连接)
服务器正在运行 drupal 应用程序。
答案1
想必您的意图是对所有网络接口进行反向查找。请注意,通过反向查找,您可能会触发安全警报,因为它看起来像是扫描可用资源。基本上,您将枚举所有网络设备、获取它们的 IP 并在(出站)DNS 服务的帮助下进行反向查找。
第一部分很简单:
ip addr
这列出了所有网络设备及其 IP 地址。有了这个,您可以使用您最喜欢的 DNS 查询工具进行反向查找,例如 dig、nslookup...
您的问题是所有域相当笼统,也许你的意思不是领域如 URL 的域部分。服务器可以公开大量基于 HTTP 的应用程序,并根据 HTTP 请求的主机参数分配给它们。该服务器也可能是虚拟服务器。
为了安全起见,仅检查服务器上的配置文件,也许使用find
或grep
获取全部配置文件。 Apache Web Server 和 Nginx 没有太大区别,并且经常使用名为 http.conf 的配置(导入许多其他配置)。它们通常可以在 /etc/apache 或类似文件中找到。