{"id":5200,"date":"2026-04-11T12:06:47","date_gmt":"2026-04-11T12:06:47","guid":{"rendered":"https:\/\/geekmungus.co.uk\/?p=5200"},"modified":"2026-04-11T12:06:47","modified_gmt":"2026-04-11T12:06:47","slug":"wpad-web-proxy-auto-discovery-protocol","status":"publish","type":"post","link":"https:\/\/geekmungus.co.uk\/?p=5200","title":{"rendered":"WPAD (Web Proxy Auto Discovery Protocol)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The&nbsp;<strong>Web Proxy Auto-Discovery (WPAD) Protocol<\/strong>&nbsp;is a method used by clients to locate the URL of a configuration file that provides them with configuration needed to determine their browser&#8217;s (or system) web proxy configuration (if present or not). The file an be published via DHCP (scope option) or via DNS, in our case we use DNS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The web browser will typically send a DHCPINFORM query to the DHCP server, which if the relevant DHCP scope option is present, will send the URL in the server&#8217;s reply. If the DHCP server does not have this scope option configured, DNS is used instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example if the domain suffix of the user&#8217;s computer is myfancypc.internal.domain.com, then the browser will attempt the following URLs in an attempt to find the proxy configuration file within the domain of the client:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>http:\/\/wpad.internal.domain.com\/wpad.dat<\/li>\n\n\n\n<li>http:\/\/wpad.domain.com\/wpad.dat<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once it has found a URL that responds (or really a DNS FQDN that resolves to something), the client&#8217;s browser makes a request for the URL and downloads the file via HTTP. It is crucial that if a WPAD DNS record exists that the URL to which it points is 1. available at all times and 2. is reachable directly by all the clients\/machines on the network. If the WPAD DNS record exists, but the server that hosts the wpad.dat file is either down, or perhaps connectivity to it is blocked (by a firewall) from the client, then issues can occur, these are discussed briefly in a section below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How you choose to host your WPAD.dat file is up to you, but methods like adding to a load balancer or an internal web server are common approaches.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example WPAD.dat File<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">And example wpad.dat would look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function FindProxyForURL(url, host) {\n  return \"DIRECT\";\n}<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"WPAD(WebProxyAutoDiscoveryProtocol)-SymptomsofWPADUnavailability\">Symptoms of WPAD Unavailability<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If you domain contains wpad.domain.com, e.g. wpad.sanger.ac.uk then you need to ensure it is available so your devices\/hosts can reach the wpad.dat file, or you&#8217;ll see the symptoms of it not being available, which if devices\/hosts must use the web proxy to access the Internet, they&#8217;ll likely be unable to. However if devices\/hosts have direct Internet access, the presence of the wpad.domain.com as a DNS FQDN, will trigger the auto-discover processes within the browser, which will then mean they will wait up to 45 seconds to try to get a response and get the wpad.dat file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although after this you should find that browser will give up and then move to just use DIRECT connection; however if the host\/client is blocked from direct Internet access and must use a proxy server, then you&#8217;ll need to determine why the WPAD.dat is not available, or manually configure the proxy server configuration instead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"WPAD(WebProxyAutoDiscoveryProtocol)-TestingAvailability\">Testing Availability&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To verify if your WPAD.dat file is available, you can just try to go to&nbsp;<a href=\"https:\/\/wpad.domain.com\/wpad.dat\">https:\/\/wpad.domain.com\/wpad.dat<\/a>&nbsp;does it prompt you to download the file, if you can successfully download the file and inspect its contents, which like the above example, then you should have all your need for the proxy auto-configuration to work as expected.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"WPAD(WebProxyAutoDiscoveryProtocol)-Workaround\">Workaround<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To firstly verify if you are getting the issue of the 45 second or so delay when attempting to access a website from the browser for the first time, you can disable the auto-discover (or auto-configuration) feature of the web browser. An example is shown below for Google Chrome, other browsers have a similar mechanism, and may or may not use the Operating System&#8217;s proxy configuration (e.g. Microsoft Windows: Edge and Google Chrome use the Windows proxy configuration, while Firefox uses its own).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-10-1024x500.png\" alt=\"\" class=\"wp-image-5201\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-10-1024x500.png 1024w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-10-300x146.png 300w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-10-768x375.png 768w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-10.png 1268w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"WPAD(WebProxyAutoDiscoveryProtocol)-Fix\">Fix<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure the server hosting the wpad.dat file is accessible via HTTP and HTTPS from the client, if the wpad.yourdomain.com is present in your DNS zone which matches one or more of the search suffixes of your host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The&nbsp;Web Proxy Auto-Discovery (WPAD) Protocol&nbsp;is a method used by clients to locate the URL of a configuration file that provides them with configuration needed to determine their browser&#8217;s (or system) web proxy configuration (if present or not). The file an be published via DHCP (scope option) or via DNS, in our case we use DNS. &#8230; <a title=\"WPAD (Web Proxy Auto Discovery Protocol)\" class=\"read-more\" href=\"https:\/\/geekmungus.co.uk\/?p=5200\" aria-label=\"Read more about WPAD (Web Proxy Auto Discovery Protocol)\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":4373,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,20],"tags":[],"class_list":["post-5200","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking","category-random"],"_links":{"self":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5200"}],"version-history":[{"count":1,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5200\/revisions"}],"predecessor-version":[{"id":5202,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5200\/revisions\/5202"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/media\/4373"}],"wp:attachment":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}