使用Dnsmasq搭建本地dns服务器上网

导读搭建一个属于自己的本地DNS服务器很有必要,利用Dnsmasq来搭建一个属于自己的本地DNS服务器,享受更干净无污染、更智能快速和没有广告干扰的DNS解析服务。

small-dns

一、Dnsmasq安装
安装并启动Dnsmasq
yum install -y dnsmasq
service dnsmasq start 
二、Dnsmasq配置
1、Dnsmasq的配置文件路径为:/etc/dnsmasq.conf
# ll -d /etc/dnsmasq.conf 
-rw-r--r-- 1 root root 21237 Feb 23 00:17 /etc/dnsmasq.conf
2、编辑/etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf    //dnsmasq 会从这个文件中寻找上游dns服务器
strict-order             //去掉前面的#
addn-hosts=/etc/dnsmasq.hosts         //在这个目里面添加记录
listen-address=127.0.0.1,192.168.1.123     //监听地址
3、修改/etc/resolv.conf
echo 'nameserver 127.0.0.1' > /etc/resolv.conf
4、创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址
touch /etc/resolv.dnsmasq.conf
echo 'nameserver 119.29.29.29' > /etc/resolv.dnsmasq.conf
5、创建dnsmasq.hosts文件
cp /etc/hosts /etc/dnsmasq.hosts
echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf

提示:resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用电信、联通等公共的DNS。

三、Dnsmasq启动
1、设置Dnsmasq开机启动并启动Dnsmasq服务:
chkconfig dnsmasq on
/etc/init.d/dnsmasq restart
2、netstat -tunlp|grep 53 查看Dnsmasq是否正常启动:
# netstat -tlunp|grep 53
tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN      2491/dnsmasq        
tcp        0      0 :::53                       :::*                        LISTEN      2491/dnsmasq        
udp        0      0 0.0.0.0:53                  0.0.0.0:*                               2491/dnsmasq        
udp        0      0 :::53                       :::*                                    2491/dnsmasq        
3、dig www.freehao123.com,第一次是没有缓存,所以时间是200多

Dnsmasq_01

4、第二次再次测试,因为已经有了缓存,所以查询时间已经变成了0.

Dnsmasq_2

本文转载自:http://www.linuxprobe.com/dnsmasq-builds-local-dns.html
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux上搭建DNS服务器可以使用 bind 软件包。bind是一个开源的DNS服务器软件,可以运行在多种操作系统上。 首先,在Linux系统上安装bind软件包。在 Ubuntu/Debian 系统上可以使用以下命令安装: ``` sudo apt-get install bind9 ``` 在 CentOS/Fedora 系统上可以使用以下命令安装: ``` sudo yum install bind ``` 接下来,需要配置bind,可以在 /etc/bind 目录下编辑配置文件。 常用的配置文件如下: - named.conf:主配置文件 - named.conf.local:本地区域设置文件 - named.conf.options:选项设置文件 最后,启动bind服务并进行测试: ``` sudo systemctl start bind9 ``` 或 ``` sudo service bind9 start ``` 进行DNS查询就能查询你的DNS服务器了。 ``` nslookup example.com ``` 但是需要注意的是,搭建DNS服务器是很复杂的,如果只是想要进行简单的测试,还有更简单的方法,例如使用dnsmasq。 ### 回答2: Linux搭建DNS服务器是一项非常重要的工作,因为它可以帮助我们更快地访问网络资源。下面是Linux搭建DNS服务器的步骤: 1. 安装DNS软件 DNS服务器有许多种,如BIND、dnsmasq、Unbound等,其中BIND是最为常用的。在Ubuntu上,可以使用以下命令进行安装: sudo apt-get install bind9 2. 配置BIND 安装完BIND后,需要对其进行配置。首先需要在/etc/bind/named.conf.local文件中添加要解析的域名,可以按照以下格式进行添加: zone "example.com" { type master; file "/etc/bind/db.example.com"; }; 其中,example.com为要解析的域名,type为解析类型,file为解析文件所在的路径。然后需要在/etc/bind/named.conf.options文件中设置DNS服务器的IP地址,以及允许的查询范围: acl "trusted" { 192.168.1.0/24; }; options { directory "/var/cache/bind"; // 服务器IP地址 listen-on port 53 { 127.0.0.1; 192.168.1.100; }; // 允许查询的IP范围 allow-query { trusted; }; forwarders { 8.8.8.8; 8.8.4.4; }; }; 其中,listen-on用于设置服务器IP地址和端口号,forwarders用于设置转发查询的DNS服务器。 3. 编写DNS文件 在上述配置中,我们需要使用一个DNS文件,用于定义域名解析规则。创建/etc/bind/db.example.com文件,其中example.com为我们要解析的域名,内容如下: ; ; BIND data file for example.com ; $TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 3 ; Serial 3600000 ; Refresh 180000 ; Retry 60480000 ; Expire 86400 ) ; Minimum TTL ; @ IN NS ns1.example.com. @ IN MX 10 mail.example.com. ns1 IN A 192.168.1.100 mail IN A 192.168.1.101 其中,SOA用于设置主机名、管理员邮箱、序列号等信息,NS用于设置域名服务器,MX用于设置邮件服务器,A用于设置IP地址。 4. 启动DNS服务器 完成配置后,可以使用以下命令启动DNS服务器: systemctl start bind9 5. 测试DNS服务器DNS服务器上运行dig命令,可以测试域名是否能够解析成功: dig example.com 如果返回以下信息,则表示配置成功: ;; ANSWER SECTION: example.com. 604800 IN A 192.168.1.100 总之,Linux搭建DNS服务器需要进行多步骤的配置,需要耐心和实践。但是,一旦完成配置,就可以为企业或个人提供快速、可靠的域名解析服务。 ### 回答3: Linux 中有许多种不同的 DNS 服务器,如 BIND,Unbound,PowerDNS 等。本文将介绍如何使用 BIND 搭建 DNS 服务器。 1. 安装 BIND 使用以下命令在 Linux 中安装 BIND: Ubuntu/Debian sudo apt-get install bind9 CentOS/RHEL/Fedora sudo yum install bind 2. 配置 BIND 接下来,您需要配置 BIND,以使其充当您的 DNS 服务器。 首先,打开主配置文件 named.conf: sudo nano /etc/named.conf 在文件底部添加以下行: zone "example.com" IN { type master; file "/etc/bind/db.example.com"; }; 请注意,example.com 应替换为您计划使用的域名。 然后,创建 db.example.com 文件: sudo nano /etc/bind/db.example.com 在此文件中,添加以下内容: $TTL 86400 example.com. IN SOA ns1.example.com. admin.example.com. ( 2014010101 ; serial number 3600 ; refresh 1 hour 1800 ; retry 30 minutes 604800 ; expire 1 week 86400 ; minimum TTL 1 day ) IN NS ns1.example.com. IN NS ns2.example.com. ns1 IN A 192.168.0.1 ns2 IN A 192.168.0.2 请确保 192.168.0.1 和 192.168.0.2 被替换为您计划使用的 IP 地址。 3. 重启 BIND 完成上述配置后,您需要重启 BIND 以使更改生效: Ubuntu/Debian sudo service bind9 restart CentOS/RHEL/Fedora sudo service named restart 4. 访问 DNS 服务器 现在您的 DNS 服务器已准备就绪。要验证它是否按预期工作,请使用以下命令从命令行访问它: nslookup example.com 这应该返回您在 /etc/bind/db.example.com 文件中设置的 IP 地址。 5. 配置客户端 最后,您需要在客户端计算机上将 DNS 服务器设置为您的新 DNS 服务器。在大多数 Linux 发行版中,您可以使用以下命令: sudo nano /etc/resolv.conf 在文件中,添加以下行: nameserver 192.168.0.1 请确保将 192.168.0.1 替换为您计划使用的 DNS 服务器的 IP 地址。 您现在已经成功地搭建了一个 DNS 服务器!需要注意的是,BIND 是一种强大和灵活的 DNS 服务器,它可能具有许多其他配置选项,但本文中介绍的配置足以进行大多数常见的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值