To get proxy configuration working for Safari on OSX Snow Leopard, utilising WPAD Auto-proxy and Squid proxy on a Debian server:
1. Install Squid – by default Squid listens on port 3128, test your Squid config by manually configuring the proxy settings in a client.
2. Install Apache (or your preferred web server) – add the mime type for “.dat” files:
/etc/apache2/httpd.conf:
AddType application/x-ns-proxy-autoconfig .dat
3. Create the WPAD file – see here for a basic example:
http://wiki.debian.org/ProxyAutodetectConf
4. Create the DNS record for wpad.mydomain.local
(Hint: if using Bind9 you must also create the reverse-DNS (ptr) record)
At this stage auto-proxy should be working for other browsers, like IE on Windows. But OSX Snow Leopard uses mDNS to resolve wpad.local (maybe this is just on .local domains?) – this requires avahi-daemon to be installed and functioning.
5. aptitude install avahi-daemon avahi-discover libnss-mdns avahi-utils
– this provides the avahi implementation of mDNS. Use tools to browse the existing mDNS network services:
avahi-browse –all
6. Now the Debian Apache server needs to advertise it’s hostname as wpad:
/etc/avahi/avahi-daemon.conf: host-name=wpad /etc/init.d/avahi-daemon restart avahi-browse --all
You can use Wireshark to trace and confirm the DNS, mDNS & HTTP transactions. Install squidview on the Debian server to observe proxy traffic.