我们怎样才能让 Squid 做一个反向的 nslookup?

Nid*_*dal 4 squid bind

我们都知道该access.log文件记录了 Squid 的访问信息:

1286536351.746  41762 192.168.1.17 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv
1286536351.746  41762 192.168.1.18 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv
Run Code Online (Sandbox Code Playgroud)

我们也都知道squid使用文件/etc/resolv.conf来确定它所处理的DNS服务器,所以如果我们想让squid与本地DNS服务器打交道,我们在文件中输入本地DNS服务器/etc/resolv.conf

如果本地 DNS 服务器有这样的记录(在其反向区域 (1.168.192.in-addr.arpa))怎么办:

$TTL 60 ; 1 minute
17          PTR Mark.
18          PTR Mike.
Run Code Online (Sandbox Code Playgroud)

我可以配置 Squid 进行反向查找(询问日志文件中 IP 地址的名称)并将名称添加到access.log记录中,例如:

我想做这个记录:

1286536351.746  41762 192.168.1.17 ......
Run Code Online (Sandbox Code Playgroud)

是这样的:

1286536351.746  41762 192.168.1.17 Mark ......
Run Code Online (Sandbox Code Playgroud)

我怎样才能达到这个目标?

我可以用乌贼logformats像%>a%>A得到我想要的东西?

slm*_*slm 5

一种方法是在squid.conf文件中使用此指令来获取日志文件以显示 FQDN 而不是 IP:

log_fqdn on
Run Code Online (Sandbox Code Playgroud)

来源:http : //www.squid-cache.org/Doc/config/log_fqdn/

但这将省略<IP> <Name>您在问题中显示的格式。为此,如果您查看logformat指令的文档,则会列出以下默认格式:

logformat squid      %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
logformat common     %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
logformat combined   %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
logformat referrer   %ts.%03tu %>a %{Referer}>h %ru
logformat useragent  %>a [%tl] "%{User-Agent}>h"
Run Code Online (Sandbox Code Playgroud)

这些选项作为参数列出,您可以在构建自己的格式时使用这些参数:

>a  Client source IP address
>A  Client FQDN
Run Code Online (Sandbox Code Playgroud)

因此,我希望您可以将它们放在一起以获得您所询问的格式。

参考