Dnsmasq

原创
2015/09/22 11:27
阅读数 5.9K
dnsmasq提供两个服务:dns服务和dhcp服务。而每个服务都可以单独的使用。

一个本地的dns cache可以加快你访问网络的速度,因为你的浏览器不用去访问dns服务器,它在计算中查找之前已经访问的域名中有没有这次你访问的域名。

dhcp服务允许用户的计算机分配一个网络地址用来去连接其他计算机,一个计算机需要一个唯一的网络地址用来访问internet。

dnsmasq并不是被设计用来共享互联网链接的,但是,它提供了一些服务所需要的后台服务,注意,dnsmasq安装包会干扰Network Manager,可以使用dnsmasq-base提供dhcp服务。如果你使用了network manager,则需要安装dnsmasq-base,而不是dnsmasq。如果你有更复杂的需求,则可以卸载network manager,使用dnsmasq或者bind9。

apt-get install dnsmasq

配置文件是:/etc/dnsmasq.conf

下面只列出dnsmasq中和dns相关的配置项,dhcp的功能没打算用,暂不翻译:

用指定的端口代替默认的DNS 53端口,如果设置为0,则完全禁止dns功能,只使用dhcp服务
port=5353


以下两个参数告诉dnsmasq过滤一些查询:1 哪些公共DNS没有回答  2 哪些root根域不可达。


从不转发格式错误的域名
#domain-needed

从不转发不在路由地址中的域名
#bogus-priv


如果你想dns从/etc/resolv.conf之外的地方获取你的上游dns服务器
resolv-file=/etc/dnsmasq.d/upstream_dns.conf


默认情况下dnsmasq会发送查询到它的任何上游dns服务器上,如果取消注释,则dnsmasq则会严格按照/etc/resolv.conf中的dns server顺序进行查询
#strict-order

如果你不想dnsmasq读取/etc/resolv.conf文件或者其他文件,获得它的servers
# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
#no-resolv


如果你不允许dnsmasq通过轮训/etc/resolv.conf或者其他文件来获取配置的改变,则取消注释 
#no-poll

增加一个name server,一般用于内网域名
#server=/localnet/192.168.0.1


设置一个反向解析,所有192.168.3.0/24的地址都到10.1.2.3去解析
#server=/3.168.192.in-addr.arpa/10.1.2.3

增加一个本地域名,会在/etc/hosts中进行查询
#local=/localnet/


增加一个域名,强制解析到你指定的地址上
#address=/double-click.net/127.0.0.1

同上,还支持ipv6
#address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83


增加查询yahoo google和它们的子域名到vpn、search查找
# Add the IPs of all queries to yahoo.com, google.com, and their
# subdomains to the vpn and search ipsets:
#ipset=/yahoo.com/google.com/vpn,search


你还可以控制dnsmasq和server之间的查询从哪个网卡出去
# server=10.1.2.3@eth1


指定源地址携带10.1.2.3地址和192.168.1.1的55端口进行通讯
# and this sets the source (ie local) address used to talk to
# 10.1.2.3 to 192.168.1.1 port 55 (there must be a interface with that
# IP on the machine, obviously).
# server=10.1.2.3@192.168.1.1#55


改变dnsmasq默认的uid和gid
#user=
#group=


如果你想dnsmasq监听某个端口为dhcp、dns提供服务
#interface=

你还可以指定哪个端口你不想监听
#except-interface=

或者设置哪个地址你想监听,如果你本机要使用,记得写上127.0.0.1
#listen-address=


如果你想在某个端口只提供dns服务,则可以进行配置禁止dhcp服务
#no-dhcp-interface=

# On systems which support it, dnsmasq binds the wildcard address,
# even when it is listening on only some interfaces. It then discards
# requests that it shouldn't reply to. This has the advantage of
# working even when interfaces come and go and change address. If you
# want dnsmasq to really bind only the interfaces it is listening on,
# uncomment this option. About the only time you may need this is when
# running another nameserver on the same machine.
#bind-interfaces

如果你不想使用/etc/hosts,则取消下面的注释
#no-hosts

如果你项读取其他类似/etc/hosts文件,则进行配置
addn-hosts=/etc/banner_add_hosts

自动的给hosts中的name增加一个域名
#expand-hosts


给dhcp服务赋予一个域名
#domain=thekelleys.org.uk

给dhcp的一个子域赋予一个不同的域名
#domain=wireless.thekelleys.org.uk,192.168.2.0/24

同上,不过子域是一个范围
#domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200


dhcp分发ip的范围,以及每个ip的租约时间
#dhcp-range=192.168.0.50,192.168.0.150,12h

同上,不过给出了掩码
#dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h







展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部