对于我公司运营的一组 VPS,我想获取每个 VPS 托管的域名列表。几年来,这个域名列表一直在随机增长。有没有一种简单的方法可以查询 Apache 和/或 Nginx 配置,以查看服务器在端口 80 上响应哪些域?
可以安全地假设 (a) 我在这些系统上有 sudo,并且 (b) 它们没有使用通配符,尽管如果它还提供明确的域列表,承认使用通配符的解决方案也会很有用。
答案1
我认为有两种可能的方法。第一:
egrep '(ServerName|ServerAlias)' /path/to/httpd/conf/vhosts/* | uniq
第二:
dig @8.8.8.8 4.3.2.1.in-addr.arpa PTR
这里的 1.2.3.4 是你的服务器的外部 IP。当然,如果 PTR 记录与 A 记录一起维护,那么这个方法就行了。
或者我遗漏了你的问题的某些内容?
答案2
apache2ctl -S
将打印出 apache 的虚拟主机,但我不知道如何在 nginx 中获取它。