Answers:
首先,使用以下命令将服务器的IP地址从DHCP更改为STATIC。
sudo nano /etc/network/interfaces
并添加:
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers
重新启动网络守护程序
sudo /etc/init.d/networking restart
在Linux Ubuntu中配置DNS服务器之前,您必须先创建域名,然后再继续。首先,您将检查主机名命令,这是
sudo nano /etc/hostname
nefitari
(这是我的Ubuntu服务器主机名,您的主机名可能有所不同。您可以根据需要进行更改)
现在,在主机名之后,您必须为服务器创建域名。假设servername.domain.com是更好的做法,无论何时配置服务器供家庭使用,请勿使用.com,而应使用.hom或.net或任何您喜欢的名称。输入以下命令
sudo nano /etc/hosts
如果没有,请添加:
127.0.0.1 localhost
192.168.1.5 nefitari.autun.hom nefitari
在我的文件127.0.0.1是本地主机,我已经改变了我的服务器IP的第二个IP地址127.0.1.1是192.168.1.5,现在我进入我有我的主机域名nefitari第一,然后我的域名autun.hom然后别名Nefitari。您可以选择自己的hostname.abc.net或hostname.home.lan等。但是请记住,更改为该文件需要重新启动服务器,然后登录。必须重启
sudo apt-get install bind9
安装后,只需逐步配置以下文件
现在配置文件named.conf.options, 该文件用于DNS IP。这意味着您的服务器必须连接到外部的某些DNS。当您从ISP购买域名时,它们通常会为您提供自己的DNS IP。您可以使用Google的开放DNS IP左右。就我而言,我正在使用自己的ISP DNS IP。
sudo nano /etc/bind/named.conf.options
forwarders {
# Give here your ISP DNS IP’s
192.168.1.1; # gateway or router
182.176.39.23;
182.176.18.13;
68.87.76.178;
};
***保存文件并退出***使用控件x按y键并覆盖文件
现在编辑文件named.conf.local。 这是我们在其中定义正向区域和反向区域的文件。这意味着当我们输入域名时,它将把它转换成IP地址,而当我们输入IP地址时,它将把它转换成名称。
sudo nano /etc/bind/named.conf.local
将会呈现:
# Our forward zone
zone "autun.hom" {
type master;
file "/etc/bind/zones/db.autun.hom";
};
# Our reverse Zone
# Server IP 192.168.1.5
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192";
};
***保存文件并退出***使用控件x按y键并覆盖文件
现在,我们将在zones文件夹中制作这两个数据库文件db.autun.hom和db.192。
首先在/ etc / bind /中创建目录区域
sudo mkdir /etc/bind/zones
在制作文件之前,请先让您明确说明我使用的是其他设备
设备IP
现在在zone目录中,我们将创建两个文件,首先是db.autun.hom。我只是将/ etc / bind文件夹中已经存在的db.local更改为db.autun.hom,将其复制到zone文件夹。我将这些IP放在db.autun.hom文件中。开始吧
sudo cp /etc/bind/db.local /etc/bind/zones/db.autun.hom
现在使用下面的命令编辑文件
sudo nano /etc/bind/zones/db.autun.hom
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA nefitari.autun.hom. webuser.autun.hom. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
autun.hom. IN NS nefitari.autun.hom.
autun.hom. IN A 192.168.1.5
;@ IN A 127.0.0.1
;@ IN AAAA ::1
nefitari IN A 192.168.1.5
gateway IN A 192.168.1.1
win7pc IN A 192.168.1.50
www IN CNAME autun.hom.
保存并退出
现在创建反向查找区域文件
sudo cp /etc/bind/db.127 /etc/bind/zones/db.192
现在使用下面的命令编辑文件
sudo nano /etc/bind/zones/db.192
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA nefitari.autun.hom. webuser.autun.hom. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS nefitari.
1 IN PTR gateway.autun.hom.
5 IN PTR nefitari.autun.hom.
50 IN PTR win7pc.autun.hom.
保存并退出
现在,当您完成区域文件的处理时,您必须通过输入以下用于正向区域文件的命令来检查其是否正常工作
named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial 2
Ok
现在检查反向区域文件
named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial 2
Ok
如果named-checkzone的输出与上面的输出相同,那么它工作正常,否则您在文件中犯了一些错误。
现在编辑文件resolv.conf
sudo nano /etc/resolv.conf
nameserver 192.168.1.5
domain autun.hom
search autun.hom
将以下几行输入到您的resolv.conf文件中并保存
重新启动绑定
sudo /etc/init.d/bind9 restart
绑定开始后,检查日志文件中的设置
tail -f /var/log/syslog
它在日志中不能有任何错误
host –l autun.hom
输出应该这样
autun.hom name server nefitari.autun.hom.
autun.hom has address 192.168.1.5
gateway.autun.hom has address 192.168.1.1
nefitari.autun.hom has address 192.168.1.5
win7pc.autun.hom has address 192.168.1.50
现在使用NSLOOKUP
nslookup autun.hom
输出值
Server: 192.168.1.5
Address: 192.168.1.5#53
Name: autun.hom
Address: 192.168.1.5
使用DIG
dig gateway.autun.hom
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;gateway.autun.hom IN A
;; ANSWER SECTION:
gateway.autun.hom 604800 IN A 192.168.1.1
;; AUTHORITY SECTION:
Autun.hom. 604800 IN NS nefitari.autun.hom.
;; ADDITIONAL SECTION:
Nefitari.autun.hom. 604800 IN A 192.168.1.5
;; Query time: 12 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Thu Aug 8 01:56:25 2013
;; MSG SIZE rcvd: 90
输出应与上面类似,检查状态:NOERROR表示正在解决检查答复部分: gateway.autun.hom被解析为192.168.1.1
host 192.168.1.1
输出量
1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom
如果出现以下错误
host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
这意味着您在反向区域中的/etc/bind/named.conf.local文件中犯了一些错误。如果服务器IP为192.168.1.5,则反向区域如下所示
zone "**1.168.192**.in-addr.arpa" {
correct ip reversing
};
有时人们在反转IP时会犯错误(仅举一个例子)
zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};
使用NSLOOKUP
nslookup 192.168.1.1
Server: 192.168.1.5
Address: 192.168.1.5#53
1.1.168.192.in-addr.arpa name=gateway.autun.hom
如果您收到NXDOMAIN或SERVFAIL之类的错误,则表示您的区域文件之一无法正常工作
现在,您可以第一次ping ubuntu.com或dig ubuntu.com,解析名称ubuntu.com 会花费几毫秒,但是第二次运行时,通常需要1、2或3秒,通常是1到10英里秒是正常的,这意味着您的DNS工作正常
窗户边
并提供IP地址(在我的情况下是192.168.1.50,您还记得win7pc吗)
并且您已完成打开CMD
ping gateway
它必须给你一些答复
类似地
ping 192.168.1.1 or 5
它必须给你一些答复
测试您的服务器到外界
现在,您可以第一次ping ubuntu.com或dig ubuntu.com,解析名称ubuntu.com会花费几毫秒的时间,但是第二次运行时,它将花费1到10毫秒的时间,正常时间和这表示您的DNS工作正常。
窗户边
打开网络连接选择更改适配器设置选择属性选择Internet协议版本IPv4
并提供IP地址(在我的情况下是192.168.1.50,您还记得win7pc吗)
IP地址 192.168.1.50
子网掩码 255.255.255.0
默认网关 192.168.1.1
主DNS 192.168.1.5(我的新BIND DNS服务器IP)
选择高级(在同一窗口中)
选择DNS选项卡
在此连接的DNS后缀中的以下文本框中键入以下内容:autun.hom
点击确定
在退出时单击验证设置
点击确定
并且您已完成打开CMD
码:
ping gateway
它必须给你一些答复
类似地
码:
ping 192.168.1.1 or 5
它必须给您一些答复,您可以使用NSLOOKUP 代码:
nslookup gateway
LINUX客户
码:
sudo nano /etc/network/interfaces
输入以下几行
码:
auto eth0
iface eth0 inet dhcp
现在重新启动网络恶魔
码:
sudo /etc/init.d/networking restart
强制客户端更新IP命令
码:
sudo dhclient -r
现在获取新的IP:
码:
sudo dhclient
如果您正在网络上运行DHCP服务器,则在dhcpd.conf文件中输入域名和名称服务器;例如,我有一个名为nefitari.autun.hom的DNS服务器,其IP地址为192.168.1.5,如下所示
码:
option domain-name "nefitari.autun.hom";
option domain-name-server 192.168.1.5;
../run/resolvconf/resolv.conf
。
(network unreachable) resolving './NS/IN': 2001:500:3::42#53
来自绑定尝试使用ipv6递归解决查询。编辑/etc/default/bind9
和使用OPTIONS="-u bind -4"
修复它。更多信息:serverfault.com/questions/77325/unreachable-resolving-domain
db.192
之前的文件中缺少IN NS nefitari.
该@
错误。另外我还必须添加FQDN,所以我的工作行看起来像这样,@ IN NS nefitari.autun.hom.
我忽略了resolv.conf部分,并遵循了jdthood的建议。默认服务器安装中已经存在该链接。
答案只是上述详细说明的补充。
故障排除提示
小心许多“。”。在每个配置文件中都很重要。缺少一个“。” 可以停止DNS服务器的工作。您不应指望清除错误消息。
我了解了使用更具有说服力的序列号的良好做法。每次修改设置(例如添加新条目)时增加序列号非常重要。如果未增加,则辅助DNS将无法同步新设置。建议的格式为YYYYMMDDss
,其中ss
为“旧”序列号。因此,当增加时,您应该增加ss
+1 并将日期设置为当前日期。我发现这对解决安装程序非常有帮助。在系统日志中,您可以清楚地看到所使用文件的日期和序列。
在Ubuntu 16.04中,不建议更改resolv.conf。正如jdthood在其评论中所写,将步骤替换为以下过程:-更改/ etc / default / bind9:新的内容应如下所示:
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind"
# use this when you have trouble with IPV6
#OPTIONS="-u bind -4"
请参阅非补丁对IPV6问题的评论。
将/etc/resolv.conf的符号链接放入/run/resolvconf/resolv.conf
cd /etc
sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
离线设定
设置完全相同,甚至更简单,因为您可以跳过转发部分。它们不必存在,因此无需编辑/etc/bind/names.con.options
。
B类网络
要使此功能适用于B级网络,需要进行一些小的更改(在发表评论之前,没有理由为什么本地网络(即使是在家中)也不能成为B级而非C级网络) 。在此示例中,我使用网络号172.20.xx(我认为正式的表示法是172.20.0.0。有关更多信息,请参见google rfc1918)。
使用第一个答案中的描述,将所有IP 192.168.xx替换为172.20.xx,用于服务器IP 172.20.0.100,并按如下所示修改文件:
db.192
变为db.172
。该文件named.conf.local
得到一个不同的反向区域部分:
zone "20.172.in-addr.arpe" {
type master;
file "/etc/bind/zones/db.172";
}
反向区域文件更改为:
;
; BIND reverse data file for 172.20.x.x
;
$TTL 604800
@ IN SOA nefitari.autun.hom. webuser.autun.hom. (
2017022102 ; more intuitive serial YYYYMMDDss, here ss=02
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; note: the '@'was missing from in the initial description
@ IN NS nefitari.autun.hom.
100.0 IN PTR nefitari.autun.hom.
121.0 IN PTR client1.autun.hom.
130.0 IN PTR client2.autun.hom.
33.0 IN PTR client3.autun.hom.
其余部分相同。
希望它对某人有用。