bind9的初步使用(2)

本文首发于我的博客:bind9的初步使用(2)设置局域网访问比如我的windows 10的ip地址是192.168.1.230。那么我们可以添加如下内容到/etc/bind/named.conf.options文件中。 listen-on { 192.168.1.230; 192.168.1.231; };填写完成后打开/etc/bind/named.conf.options内容如下:$ cat /etc/bind/named.conf.options options { directory “/var/cache/bind”; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0’s placeholder. // forwarders { // 114.114.114.114; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 { any; }; listen-on { 192.168.1.230; 192.168.1.231; };};重启bind9。然后在windows 10 上设置DNS为192.168.1.231和114.114.114.114。这样我们打开cmd,查看域名是否获取到了正确的ip。PS C:\Users\baogu> ping www.baoguoxiao.pro正在 Ping www.baoguoxiao.pro [192.168.1.231] 具有 32 字节的数据:来自 192.168.1.231 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.231 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.231 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.231 的回复: 字节=32 时间=1ms TTL=64192.168.1.231 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 1ms,平均 = 0ms但是如果我们这边手机要连怎么办。不能每次都加ip吧。所以这里有个简单的办法。直接将上面的配置修改如下:$ cat /etc/bind/named.conf.options options { directory “/var/cache/bind”; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0’s placeholder. // forwarders { // 0.0.0.0; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 { any; }; listen-on { any; };};这样直接将ip列表修改为any。就可以接收所有的ip了。这个时候我们将bind9再次重启。首先安装一个nginx。具体的安装教程可查看我的另外一篇文章APT安装NGINX安装之后,如果访问192.168.1.231,就能看到默认的nginx页面了。手机测试每个手机是设置是不同的。我这里是iphone,版本是12.1.1。进入设置->无线局域网->在已连接的WIFI右边点击带圈的感叹号->配置DNS->选择手动。最后点击添加服务器,输入我们虚拟机的地址:192.168.1.231。这个时候我们在手机的浏览器里面输入我们之前设置的域名www.baoguoxiao.pro。就能看到我们经典的nginx主页了。这样我们就可以使用手机访问我们的电脑页面了。在调试某些情况的时候,是不是感觉会非常方便呢。泛域名设置在开发的时候,可能会出现使用多个域名的情况,但是如果每次添加域名都要设置bind9,还要重启,非常麻烦,那么有没有简单的办法呢?有,就是使用泛域名设置。废话不多说,请看如下配置:$ cat /etc/bind/zones/baoguoxiao.pro.db ; BIND data file for baoguoxiao.pro;$TTL 14400@ IN SOA ns1.baoguoxiao.pro. host.baoguoxiao.pro. (201006601 ; Serial7200 ; Refresh120 ; Retry2419200 ; Expire604800) ; Default TTL;baoguoxiao.pro. IN NS ns1.baoguoxiao.pro. ;baoguoxiao.pro. IN A 192.168.1.231 ns1 IN A 192.168.1.231www IN A 192.168.1.231这个是我们之前上一篇文章对其的设置。那么如果要设置泛域名,只需要把最后一行的www更改为就可以了。那么切换后的配置如下:$ cat /etc/bind/zones/baoguoxiao.pro.db ; BIND data file for baoguoxiao.pro;$TTL 14400@ IN SOA ns1.baoguoxiao.pro. host.baoguoxiao.pro. (201006601 ; Serial7200 ; Refresh120 ; Retry2419200 ; Expire604800) ; Default TTL;baoguoxiao.pro. IN NS ns1.baoguoxiao.pro. ;baoguoxiao.pro. IN A 192.168.1.231 ns1 IN A 192.168.1.231 IN A 192.168.1.231最后重启一下,那么泛域名设置就成功了。不早了,要去睡觉了。晚安。 ...

December 17, 2018 · 2 min · jiezi

bind9的初步使用(1)

本文首发于我的博客:bind9的初步使用(1)前言周五把自己的电脑重装了一下,还是使用的经典的windows+vmware+ubuntu的经典方式(对我来说)。但是我不想每次都修改host文件来实现我的域名访问,所以我在想有没有一个更好的方式,可以让我实现域名映射。这个时候我想到了自己架设一个dns服务器。说干就干,我就准备用dns的开源系统bind9来搞一番。环境介绍Ubuntu: 18.10 (ip: 192.168.1.230)bind9: 9.11.4Windows 10 (ip: 192.168.1.230)安装其实安装非常简单,一条命令就搞定了sudo apt install bind9管理命令启动:sudo systemctl start bind9停止:sudo systemctl stop bind9重启:sudo systemctl restart bind9状态:sudo systemctl status bind9配置域名举个例子,比如现在我们有个域名是:baoguoxiao.pro。现在我们要对这个域名进行虚拟映射。首先打开/etc/bind/named.conf.local,追加如下内容到文件尾部:zone “baoguoxiao.pro” { type master; file “/etc/bind/zones/baoguoxiao.pro.db”;};那么现在这个文件的内容完整如下://// Do any local configuration here//// Consider adding the 1918 zones here, if they are not used in your// organization//include “/etc/bind/zones.rfc1918”;zone “baoguoxiao.pro” { type master; file “/etc/bind/zones/baoguoxiao.pro.db”; // 这个文件定义了文件地址};我们定义的地址是/etc/bind/zones/baoguoxiao.pro.db。但是我们的/etc/bind/并没有该目录。所以需要如下命令进行创建:cd /etc/bind/sudo mkdir zones进入该目录:cd zones然后创建该文件baoguoxiao.pro.db,并追加如下命令:; BIND data file for baoguoxiao.pro;$TTL 14400@ IN SOA ns1.baoguoxiao.pro. host.baoguoxiao.pro. (201006601 ; Serial7200 ; Refresh120 ; Retry2419200 ; Expire604800) ; Default TTL;baoguoxiao.pro. IN NS ns1.baoguoxiao.pro. ;baoguoxiao.pro. IN A 192.168.1.231 ns1 IN A 192.168.1.231www IN A 192.168.1.231这样就设置完成了。然后我们将bind9进行重启。测试DNS效果$ dig @192.168.1.231 www.baoguoxiao.pro; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> @192.168.1.231 www.baoguoxiao.pro; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35630;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096; COOKIE: f077ba72f04b75a1ac9b27275c16148f4732abac11c21ce8 (good);; QUESTION SECTION:;www.baoguoxiao.pro. IN A;; ANSWER SECTION:www.baoguoxiao.pro. 14400 IN A 192.168.1.231;; AUTHORITY SECTION:baoguoxiao.pro. 14400 IN NS ns1.baoguoxiao.pro.;; ADDITIONAL SECTION:ns1.baoguoxiao.pro. 14400 IN A 192.168.1.231;; Query time: 0 msec;; SERVER: 192.168.1.231#53(192.168.1.231);; WHEN: Sun Dec 16 17:02:07 CST 2018;; MSG SIZE rcvd: 117好了,这样就表示已经配置成功了设置默认本机DNS可用之前的设置我们需要指定本机的DNS服务器才可以使用,如果我们不指定的话,那么查询该域名是没有效果的:$ dig baoguoxiao.pro; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> baoguoxiao.pro;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 52385;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 65494;; QUESTION SECTION:;baoguoxiao.pro. IN A;; Query time: 274 msec;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Sun Dec 16 17:03:59 CST 2018;; MSG SIZE rcvd: 43在ubuntu17.10之后,网卡配置已经更新为netplan。该配置文件的目录是/etc/netplan/。不过里面的文件不一定是相同的名字。我的文件打开是这样的。$ cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by# the datasource. Changes to it will not persist across an instance.# To disable cloud-init’s network configuration capabilities, write a file# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:# network: {config: disabled}network: ethernets: ens33: addresses: [192.168.1.231/24] dhcp4: false dhcp6: false gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.231,114.114.114.114] version: 2注意,我在倒数第二行的数组里面添加本机的服务器192.168.1.231。关于该文件的配置,可以查看我的另外一篇文章:UBUNTU17.10设置固态IP。这样我们在本机就可以不指定dns服务器的基础上进行获取域名的ip了。$ dig www.bgx.me; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> www.baoguoxiao.pro;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58219;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096; COOKIE: 15d0881d8eed3292569558cd5c1623fa33a2d05212e7e662 (good);; QUESTION SECTION:;www.baoguoxiao.pro. IN A;; ANSWER SECTION:www.baoguoxiao.pro. 14400 IN A 192.168.1.231;; AUTHORITY SECTION:baoguoxiao.pro. 14400 IN NS ns1.baoguoxiao.pro.;; ADDITIONAL SECTION:ns1.baoguoxiao.pro. 14400 IN A 192.168.1.231;; Query time: 0 msec;; SERVER: 192.168.1.231#53(192.168.1.231);; WHEN: Sun Dec 16 18:07:54 CST 2018;; MSG SIZE rcvd: 117本篇文章就说到这里。下一篇讲如何配置可局域网访问。 ...

December 17, 2018 · 2 min · jiezi