2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# hosts
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-04 12:53:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Name
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*hosts* - enables serving zone data from a `/etc/hosts`  style file.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Description
  
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 21:31:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The hosts plugin is useful for serving zones from a `/etc/hosts`  file. It serves from a preloaded
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								file that exists on disk. It checks the file for changes and updates the zones accordingly. This
							 
						 
					
						
							
								
									
										
										
										
											2017-09-14 09:36:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								available hosts files that block access to advertising servers.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-01-21 07:54:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The plugin reloads the content of the hosts file every 5 seconds. Upon reload, CoreDNS will use the new definitions.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Should the file be deleted, any inlined content will continue to be served. When the file is restored, it will then again be used.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-28 18:16:05 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This plugin can only be used once per Server Block.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 21:31:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## The hosts file
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-23 23:01:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Commonly the entries are of the form `IP_address canonical_hostname [aliases...]`  as explained by the hosts(5) man page.
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 21:31:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Examples:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# The following lines are desirable for IPv4 capable hosts
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								127.0.0.1       localhost
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								192.168.1.10    example.com            example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# The following lines are desirable for IPv6 capable hosts
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								::1                     localhost ip6-localhost ip6-loopback
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fdfc:a744:27b5:3b0e::1  example.com example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### PTR records
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-09 13:08:02 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								PTR records for reverse lookups are generated automatically by CoreDNS (based on the hosts file entries) and cannot be created manually.
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 21:31:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								## Syntax
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2017-07-23 21:15:16 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								hosts [FILE [ZONES...]] {
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 04:18:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    [INLINE]
							 
						 
					
						
							
								
									
										
										
										
											2019-02-12 16:09:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ttl SECONDS
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    no_reverse
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    reload DURATION
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 16:32:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    fallthrough [ZONES...]
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  **FILE** the hosts file to read and parse. If the path is relative the path from the * root *  
						 
					
						
							
								
									
										
										
										
											2018-01-07 16:32:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  directive will be prepended to it. Defaults to /etc/hosts if omitted. We scan the file for changes
							 
						 
					
						
							
								
									
										
										
										
											2017-10-31 01:40:47 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  every 5 seconds.
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								*  **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block 
						 
					
						
							
								
									
										
										
										
											2017-09-21 04:18:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   are used.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  **INLINE** the hosts file contents inlined in Corefile. If there are any lines before fallthrough 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   then all of them will be treated as the additional content for hosts file. The specified hosts
							 
						 
					
						
							
								
									
										
										
										
											2019-02-17 15:31:12 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   file path will still be read but entries will be overridden.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `ttl`  change the DNS TTL of the records generated (forward and reverse). The default is 3600 seconds (1 hour). 
						 
					
						
							
								
									
										
										
										
											2019-02-12 16:09:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  `reload`  change the period between each hostsfile reload. A time of zero seconds disable the feature. Examples of valid durations: "300ms", "1.5h" or "2h45m" are valid duration with units "ns" (nanosecond), "us" (or "µs" for microsecond), "ms" (millisecond), "s" (second), "m" (minute), "h" (hour). 
						 
					
						
							
								
									
										
										
										
											2019-02-21 09:20:48 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  `no_reverse`  disable the automatic generation of the `in-addr.arpa`  or `ip6.arpa`  entries for the hosts 
						 
					
						
							
								
									
										
										
										
											2017-09-14 09:36:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  `fallthrough`  If zone matches and no record can be generated, pass request to the next plugin. 
						 
					
						
							
								
									
										
										
										
											2018-01-07 16:32:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  If * * [ZONES...]** is omitted, then fallthrough happens for all zones for which the plugin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  is authoritative. If specific zones are listed (for example `in-addr.arpa`  and `ip6.arpa` ), then only
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  queries for those zones will be subject to fallthrough.
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Examples
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-23 21:15:16 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Load `/etc/hosts`  file.
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-10 09:39:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								~~~ corefile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								. {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hosts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-23 21:15:16 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Load `example.hosts`  file in the current directory.
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2018-03-25 11:48:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								. {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hosts example.hosts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Load example.hosts file and only serve example.org and example.net from it and fall through to the
							 
						 
					
						
							
								
									
										
										
										
											2017-09-14 09:36:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								next plugin if query doesn't match.
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2018-03-25 11:48:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								. {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hosts example.hosts example.org example.net {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        fallthrough
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2017-06-08 13:48:04 -06:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 04:18:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Load hosts file inlined in Corefile.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2018-03-25 11:48:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								. {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    hosts example.hosts example.org {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        10.0.0.1 example.org
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        fallthrough
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 04:18:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 21:31:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## See also
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The form of the entries in the `/etc/hosts`  file are based on IETF [RFC 952 ](https://tools.ietf.org/html/rfc952 ) which was updated by IETF [RFC 1123 ](https://tools.ietf.org/html/rfc1123 ).