关于Linux通过域名解析IP失败问题
参考链接:bind9的初步使用 Linux下的域名解析
一、相关报错
问题: 在/etc/hosts文件下面配置如下
192.168.0.136 orderer0.example.com
ping orderer0.example.com还是报错: unknown host orderer0.example.com, 大体意思是域名解析失败。
解决办法如下:
二、DNS程序安装
注: bind9是Linux中dns服务的相关程序
- 命令安装
sudo apt install bind9 //外网安装命令
- 查看状态
sudo systemctl status bind9
- 启动、停止、重启命令
//启动
sudo systemctl start bind9
//停止
sudo systemctl stop bind9
//重启
sudo systemctl restart bind9
三、域名配置
举个例子,比如现在我们有个域名是:example.com。现在我们要对这个域名进行虚拟映射。
- 首先打开/etc/bind/named.conf.local,追加如下内容到文件尾部。
zone "example.com" {
type master;
file "/etc/bind/zones/example.com.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 "example.com" {
type master;
file "/etc/bind/zones/example.com.db";
};
- 我们定义的地址是
/etc/bind/zones/example.com.db
。但是我们的/etc/bind/
并没有该目录。所以需要如下命令进行创建:
cd /etc/bind/ #进入该目录
sudo mkdir zones #创建zones目录
cd zones #进入zones目录
touch example.com.db #创建example.com.db文件
- 在example.com.db文件下添加如下命令
;;ND data file for example.com;;
$TTL 14400
@ IN SOA peer0.orga.example.com. host.example.com. (
201006601 ; Serial
7200 ; Refresh
120 ; Retry
2419200 ; Expire
604800 ;minimum
)
;Default TTL;
example.com. IN NS peer0.orga.example.com.
;example.com. IN A 192.168.0.136
peer0.orga IN A 192.168.0.136
orderer0 IN A 192.168.0.136
couchdb.orga IN A 192.168.0.136
ca.orga IN A 192.168.0.136
peer0.org2 IN A 192.168.0.136
peer0.org3 IN A 192.168.0.136
couchdb1.orga IN A 192.168.0.136
couchdb2.orga IN A 192.168.0.136
couchdb3.orga IN A 192.168.0.136
- 这样就设置完成了。然后我们将bind9进行重启。
sudo systemctl restart bind9 //重启
- 测试DNS效果
$ dig @192.168.0.136 couchdb.orga.example.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @192.168.0.136 couchdb.orga.example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 141
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;couchdb.orga.example.com. IN A
;; ANSWER SECTION:
couchdb.orga.example.com. 14400 IN A 192.168.0.136
;; AUTHORITY SECTION:
example.com. 14400 IN NS peer0.orga.example.com.
;; ADDITIONAL SECTION:
peer0.orga.example.com. 14400 IN A 192.168.0.136
;; Query time: 0 msec
;; SERVER: 192.168.0.136#53(192.168.0.136)
;; WHEN: Wed Dec 09 14:18:13 CST 2020
;; MSG SIZE rcvd: 105
;; Query time: 0 msec
;; SERVER: 192.168.0.136#53(192.168.0.136)
;; WHEN: Wed Dec 09 14:18:13 CST 2020
;; MSG SIZE rcvd: 105
好了,这样就表示已经配置成功了