fos*_*dom 121
首先,使用以下命令将服务器的 ip 地址从 DHCP 更改为 STATIC
sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
并添加:
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
Run Code Online (Sandbox Code Playgroud)
重新启动网络守护进程
sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
在 linux Ubuntu 中配置 DNS 服务器之前,您必须先创建域名,然后才能继续。首先,您将检查您的主机名命令是
sudo nano /etc/hostname
nefitari
Run Code Online (Sandbox Code Playgroud)
(这是我的 Ubuntu 服务器主机名,您的可能不同。您可以根据需要进行更改)
现在在主机名之后,您必须为您的服务器创建域名。说 servername.domain.com 最好的做法是,无论何时为家庭使用配置服务器,不要使用 .com,而是使用 .hom 或 .net 或任何你喜欢的。给出以下命令
sudo nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)
如果没有,请添加:
127.0.0.1 localhost
192.168.1.5 nefitari.autun.hom nefitari
Run Code Online (Sandbox Code Playgroud)
在我的文件中,127.0.0.1 用于本地主机,我已经将第二个 IP 地址 127.0.1.1 更改为我的服务器 IP,即 192.168.1.5 现在我输入我的域名,首先是我的主机名nefitari,然后是我的域名autun.hom,然后是别名nefitari。您可以选择自己的,hostname.abc.net 或hostname.home.lan 等,但记住更改此文件需要重新启动服务器然后登录。重启是必须的
sudo apt-get install bind9
Run Code Online (Sandbox Code Playgroud)
安装后只需一步一步配置以下文件
现在配置文件named.conf.options 该文件用于DNS IPs 这意味着您的服务器必须连接到外部的某些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;
};
Run Code Online (Sandbox Code Playgroud)
***保存文件并退出***使用 control x 按 y 并覆盖文件
现在编辑 名为.conf.local的文件,这是我们定义正向区域和反向区域的文件。这意味着当我们输入域名时,它会将其转换为 IP 地址,而当我们输入 IP 地址时,它只会将其转换为名称。
sudo nano /etc/bind/named.conf.local
Run Code Online (Sandbox Code Playgroud)
将会呈现:
# 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";
};
Run Code Online (Sandbox Code Playgroud)
***保存文件并退出***使用 control x 按 y 并覆盖文件
现在我们将这两个数据库文件db.autun.hom和db.192放在 zone 文件夹中
首先在 /etc/bind/ 中创建目录区域
sudo mkdir /etc/bind/zones
Run Code Online (Sandbox Code Playgroud)
在制作文件之前,让我明确一下我有不同的设备
设备 IP
现在在区域目录中,我们将首先创建两个文件db.autun.hom。我只是通过将其名称更改为db.autun.hom将 /etc/bind文件夹中已经存在的db.local复制到区域文件夹。我会将这些 IP 放在我的 db.autun.hom 文件中。开始吧
sudo cp /etc/bind/db.local /etc/bind/zones/db.autun.hom
Run Code Online (Sandbox Code Playgroud)
现在使用下面的命令来编辑文件
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.
Run Code Online (Sandbox Code Playgroud)
保存并退出
现在创建反向查找区域文件
sudo cp /etc/bind/db.127 /etc/bind/zones/db.192
Run Code Online (Sandbox Code Playgroud)
现在使用下面的命令来编辑文件
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.
Run Code Online (Sandbox Code Playgroud)
保存并退出
现在,当您完成区域文件时,您必须通过输入以下命令来检查它是否正常工作以获取转发区域文件
named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial 2
Ok
Run Code Online (Sandbox Code Playgroud)
现在检查反向区域文件
named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial 2
Ok
Run Code Online (Sandbox Code Playgroud)
如果您的命名检查区的输出与上面相同,那么它工作正常,否则您在文件中犯了一些错误。
现在编辑文件resolv.conf
sudo nano /etc/resolv.conf
nameserver 192.168.1.5
domain autun.hom
search autun.hom
Run Code Online (Sandbox Code Playgroud)
将以下行输入到您的 resolv.conf 文件中并保存
重启绑定
sudo /etc/init.d/bind9 restart
Run Code Online (Sandbox Code Playgroud)
绑定开始后检查您在日志文件中的设置
tail -f /var/log/syslog
Run Code Online (Sandbox Code Playgroud)
日志中不能有任何错误
host –l autun.hom
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的
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
Run Code Online (Sandbox Code Playgroud)
现在使用NSLOOKUP
nslookup autun.hom
Run Code Online (Sandbox Code Playgroud)
输出
Server: 192.168.1.5
Address: 192.168.1.5#53
Name: autun.hom
Address: 192.168.1.5
Run Code Online (Sandbox Code Playgroud)
使用挖掘
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
Run Code Online (Sandbox Code Playgroud)
输出应该和上面类似,check status: NOERROR表示正在解析 check ANSWER SECTION: gateway.autun.hom isresolution into 192.168.1.1
host 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
输出
1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom
Run Code Online (Sandbox Code Playgroud)
如果它给你一个像下面这样的错误
host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
Run Code Online (Sandbox Code Playgroud)
这意味着你在反向区域的/etc/bind/named.conf.local文件中犯了一些错误如果你的服务器 IP 是192.168.1.5那么你的反向区域看起来像这样
zone "**1.168.192**.in-addr.arpa" {
correct ip reversing
};
Run Code Online (Sandbox Code Playgroud)
有时人们在反转 ip 时犯了错误(只是一个例子)
zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};
Run Code Online (Sandbox Code Playgroud)
使用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
Run Code Online (Sandbox Code Playgroud)
如果您收到 NXDOMAIN 或 SERVFAIL 之类的错误,则意味着您的区域文件之一无法正常工作
现在您可以第一次ping ubuntu.com或dig ubuntu.com解析名称 ubuntu.com需要几毫秒,但是当您第二次运行它时,通常需要1、2 或 3 秒,从 1 到 10 mili秒是正常的,这意味着您的 DNS 工作正常
窗户边
在这里给出IP地址(在我的例子中是192.168.1.50你记得win7pc吗)
你已经完成了打开 CMD
ping gateway
Run Code Online (Sandbox Code Playgroud)
它必须给你一些答复
相似地
ping 192.168.1.1 or 5
Run Code Online (Sandbox Code Playgroud)
它必须给你一些答复
测试您的服务器到外部世界
现在你可以第一次ping ubuntu.com 或挖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
Run Code Online (Sandbox Code Playgroud)
它必须给你一些答复
相似地
代码:
ping 192.168.1.1 or 5
Run Code Online (Sandbox Code Playgroud)
它必须给你一些回复你可以使用NSLOOKUP 代码:
nslookup gateway
Run Code Online (Sandbox Code Playgroud)
Linux 客户端
代码:
sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
输入以下几行
代码:
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
现在重新启动网络守护进程
代码:
sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
强制客户端更新 IP 命令
代码:
sudo dhclient -r
Run Code Online (Sandbox Code Playgroud)
现在获取新IP:
代码:
sudo dhclient
Run Code Online (Sandbox Code Playgroud)
如果您在网络上运行 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 Code Online (Sandbox Code Playgroud)