Acrylic DNS Proxy Home Page
Acrylic is a local DNS proxy for Windows which improves the performance of your computer by caching the responses coming from your DNS servers and helps you fight unwanted ads through a custom HOSTS file (optimized for handling hundreds of thousands of domain names) with support for wildcards and regular expressions.
When you browse a web page a portion of the loading time is dedicated to name resolution (usually from a few milliseconds to 1 second or more) while the rest is dedicated to the transfer of the web page contents and resources to your browser. What Acrylic does is to reduce the time dedicated to name resolution for frequently visited addresses closest to zero possible. It may not seem such a great optimization but in a few weeks of Internet browsing you will probably save an hour or so, which is definitely not such a bad thing. Furthermore Acrylic's sliding expiration caching mechanism, simultaneous forwarding to multiple DNS servers and support for background DNS updates are able to improve your browsing experience independently of the browser.
With Acrylic you can also gracefully overcome downtimes of your DNS servers without disrupting your work, because in that case you will at least be able to connect to your favourite websites and to your email server.
Another good thing is that Acrylic is released as open source, which means that it's free and its source code, written with Borland Delphi 7, is freely available to anyone under the GNU General Public License.
Download Setup for Windows
Download Delphi 7 Source Code
Download Portable for Windows
Acrylic files are distributed from external servers. If you want to check the integrity of the offered files have a look at the Acrylic Hashes page.
Finally there's a great system tray monitor for Acrylic, called Acrylic DNS Proxy Monitor v2, available at dev.arqendra.net for free.
What's new in version 0.9.37 released on November 12, 2017
- Fixed a regression (introduced in version 0.9.36) when loading hosts files containing multiple entries per line.
What's new in version 0.9.36 released on November 5, 2017
- Added support for NXDOMAIN entries in the AcrylicHosts.txt file.
- Fixed a bug when loading hosts files containing domain names already sorted in alphabetical order.
What's new in version 0.9.35 released on November 6, 2016
- The number of simultaneous requests that can be handled by Acrylic has been increased. (*)
(*) You will probably notice a difference only if you are using Acrylic as a DNS server for a relatively large number of clients on your home network.
What's new in version 0.9.34 released on July 1, 2016
- The setup now tries to add a firewall rule to allow inbound traffic to the Acrylic service.
- A console application (AcrylicRegExTester) to test regular expressions against domain names has been added to the project.
- Fixed a rare bug in the way the AcrylicHosts.txt file was read. Support for Old Macintosh line terminator style has been dropped.
- The regular expression engine has been replaced with PCRE (many more features and about 3.5 times faster than the previous one). (*)
(*) More info about the regular expression engine and its syntax can be found at http://www.pcre.org/
What's new in version 0.9.33 released on June 17, 2016
- The time to live can now be explicitly configured for DNS responses generated by Acrylic.
- Added support for multiple line terminator styles (Windows, Unix & Old Macintosh) in the AcrylicHosts.txt file.
- Added %TEMP%, %APPDATA% and %LOCALAPPDATA% to the list of templates supported within the hit log and stats log file names.
What's new in version 0.9.32 released on May 27, 2016
- Improved logging (now including Windows IP configuration at startup).
- Added support for including external files from within the AcrylicHosts.txt file.
- Added support for the SOCKS 5 protocol (allowing for example DNS over TCP resolution through TOR). (*)
- Introduced an experimental HTTP server (disabled by default) useful for providing default content to browsers.
(*) For the time being only the NO AUTHENTICATION REQUIRED method for SOCKS 5 is available. More will come in the future.
What's new in version 0.9.31 released on April 13, 2016
- Solved a bug which prevented Acrylic to read configuration entries larger than 2048 characters.
- Improved resolving of A (IPv4) and AAAA (IPv6) requests from the AcrylicHosts.txt file when one of the related entries is missing. (*)
(*) Now if Acrylic receives an AAAA request and only the A record has been specified inside the AcrylicHosts.txt file (or vice-versa) it will answer with an empty response to the client, instead of forwarding the request.
What's new in version 0.9.30 released on February 15, 2016
- Improved handling of missing or incomplete IPv6 support on Windows versions prior to Windows Vista or Windows Server 2008.
What's new in version 0.9.29 released on February 12, 2016
- Added support for IPv6. (*)
- Added support for DNS over TCP.
- Added source port randomization to DNS over UDP.
- The NSIS installer has been upgraded to the latest version.
- Added /NoLog and /NoBanner command line options to the console version.
- Added batch files for the most common control operations on the Acrylic service.
- Gaps are now allowed in DNS server configurations (e.g. a primary and a tertiary DNS server without a secondary DNS server configured.)
- The *ServerHostNameAffinityMask configuration options have been renamed to *ServerDomainNameAffinityMask for consistency with the source code.
- The LocalBindingAddress and LocalBindingPort configuration options have been replaced by LocalIPv4BindingAddress, LocalIPv4BindingPort, LocalIPv6BindingAddress and LocalIPv6BindingPort.
(*) IPv6 addresses can now be specified for any of the configured DNS servers and within the AcrylicHosts.txt file.
(*) The format of the AddressCache.dat file has changed and it is not compatible with previous versions. If you are upgrading the portable version you have to purge the address cache before using it.
For a complete list of Acrylic's releases have look at the Acrylic Change Log page.
How do I install Acrylic?
Step 1: Installation
- Launch the Acrylic.exe file and click on the "Next" button.
- Read and (if you like it) accept the license agreement by clicking on the "I Agree" button.
- Choose the installation folder (the default is "Program Files\Acrylic DNS Proxy") and click on the "Install" button.
Note: Installation should be performed by a user with administrative rights over the system.
Step 2: Configuration
All of the Acrylic configuration can be set by manually editing a text file.
Upon installation Acrylic is preconfigured to point to the primary and secondary Google Public DNS servers. If you need to change that you can select the "Acrylic DNS Proxy\Config\Edit Acrylic Configuration File" Start menu item (for detailed informations about the many available configuration options have look at the Acrylic Configuration page.) If you need to edit Acrylic's HOSTS file you can select the "Acrylic DNS Proxy\Config\Edit Acrylic Hosts File" Start menu item (for detailed informations about its features have look at the Acrylic Hosts page.)
In order to use Acrylic you have to tell your computer that the DNS servers to be contacted for name resolution is no more your ISP's but Acrylic. How to do it depends on the version of the OS you are running:
Note: If you have a firewall on your computer you may have to create a rule to allow incoming traffic directed to Acrylic executables: AcrylicService.exe and AcrylicConsole.exe.
How do I uninstall Acrylic?
Just select the "Acrylic DNS Proxy\Uninstall\Uninstall" Start menu item.
The uninstall process will take care of stopping the service and deleting all traces of Acrylic from your computer.
How do I upgrade Acrylic?
Since a specific upgrade path is not provided for Acrylic the best way to upgrade is simply to uninstall the old version and install the new one.
Before uninstalling the old version you may want to make a backup of your configuration files as they will be all deleted by the uninstall process.
Note: On Windows 10, while trying to install the new version, you might see a "The service has been marked for deletion" error. This usually happens when Process Explorer by Sysinternals, the Task Manager or the Microsoft Management Console are open while uninstalling the old version. In this case close all the aforementioned applications (which should trigger the removal of the service by the OS) and retry installing the new version again.
How do I contact the author?
If you have questions please first have a look at the Frequently Asked Questions page.
If you have improvements to suggest, problems to report or whatever you can contact me at msmfbn [AT] gmail [DOT] com
How do I report a problem in Acrylic?
In case you are reporting a problem in Acrylic it would be nice if you:
- Activate the debug log.
- Try to reproduce the problem.
- Send me your AcrylicDebug.txt and AcrylicHosts.txt files along with a description of what you expected from Acrylic and what you got from it instead.
To activate the debug log you can use the "Activate Debug Log" item under "Programs\Acrylic DNS Proxy\Support" in your Start menu. Be aware of the fact that inside the debug log there are all the domain names requested since its activation. If you are concerned about your privacy have a look at it and edit out what you don't want to reveal before sending it to me.