With Debian Jessie, resolv.conf, which stores the name servers for the computer to use when looking up DNS requests, seems to automatically reset every so often. This results in the DNS lookup time for each request sent through the proxy to take longer if the name servers listed are not accurate or fast. For example, my resolv.conf file contained the following by default:
nameserver 192.168.0.1
The IP address listed is that of the router, which for some reason was taking an age to actually respond to requests. Originally I tried to edit this file by hand but it kept clearing itself back to default. This seems to be a particular issue in Debian Jessie.
To resolve the problem, I installed resolvconf, which is a program which has been designed to update the systems information about name servers.
apt-get install resolvconf
Once installed it’s easy enough to add the new name servers to the configuration file. I chose Google’s as a test, since they’re likely to be fast.
nano /etc/resolvconf/resolv.conf.d/head
In the file I added the two IP v4 name servers for google so that it looked like this:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 8.8.8.8 nameserver 8.8.4.4
Now that is in there, and of course you can change the name servers as you see fit, it’s just a case of running the update to resolvconf
resolvconf -u
Now your /etc/resolv.conf file should have your two lines prepended to it. Since the file works in top down priority your new requests will be sent to 8.8.8.8 by default. After implementing this Squid increased in speed significantly.
You may also be interested in reading alternative solutions on this particular thread at unix.stackexchagne.com.