我正在尝试在 VPS 服务器上部署 Web 应用程序。该应用程序使用 Django 构建,目前正在尝试使用 Apache2 提供文件。我在使用 DNS 设置(bind9)时遇到问题。我使用的公司对此没有帮助。
你能帮我解决这个我处理了 3 天的问题吗?
操作系统:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
_
nslookup example.com
;; Got SERVFAIL reply from 8.8.8.8, trying next server
Server: 8.8.4.4
Address: 8.8.4.4#53
** server can't find example.com : SERVFAIL
_
nslookup example.com 185.106.209.113
Server: 185.106.209.113
Address: 185.106.209.113#53
Name:
Address: 185.106.209.113
当我访问http://185.106.209.113/地址时,我可以看到 Apache2 默认页面。如果我输入http://example.com/会抛出DNS_PROBE_FINISHED_NXDOMAIN错误。
|-- [-rwxr-xr-x bind ] bind.keys
|-- [-rwxr-xr-x bind ] db.0
|-- [-rwxr-xr-x bind ] db.127
|-- [-rwxr-xr-x bind ] db.255
|-- [-rwxr-xr-x bind ] db.empty
|-- [-rwxr-xr-x bind ] db.local
|-- [-rwxr-xr-x bind ] db.root
|-- [-rwxr-xr-x bind ] named.conf
|-- [-rwxr-xr-x bind ] named.conf.default-zones
|-- [-rwxr-xr-x bind ] named.conf.local
|-- [-rwxr-xr-x bind ] named.conf.local.back
|-- [-rwxr-xr-x bind ] named.conf.options
|-- [-rwxr-xr-x bind ] rndc.key
|-- [drwxr-sr-x bind ] zones
| |-- [-rwxr-xr-x bind ] db.185.106
| `-- [-rwxr-xr-x bind ] db.example.com
`-- [-rwxr-xr-x bind ] zones.rfc1918
命名的.conf.options:
acl "trusted" {
185.106.209.113;
};
options {
directory "/var/cache/bind";
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
forwarders {
185.106.209.113;
};
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
命名.conf.local:
//include "/etc/bind/zones.rfc1918";
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
allow-transfer { 185.106.209.113; };
also-notify { 185.106.209.113; };
};
zone "209.106.185.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.185.106";
allow-transfer { 185.106.209.113; };
also-notify {185.106.209.113; };
};
db.example.com:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; NS records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 185.106.209.113
; A records
ns1.example.com. IN A 185.106.209.113
ns2.example.com. IN A 185.106.209.113
db.185.106
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; name servers - NS records
IN NS ns1.example.com.
IN NS ns2.example.com.
; PTR Records
113.209 IN PTR ns1.example.com. ; 185.106.209.113
113.209 IN PTR ns2.example.com. ; 185.106.209.113
和防火墙状态:
To Action From
-- ------ ----
22 ALLOW Anywhere
80/tcp ALLOW Anywhere
Apache Full ALLOW Anywhere
8000 ALLOW Anywhere
53 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
8000 (v6) ALLOW Anywhere (v6)
53 (v6) ALLOW Anywhere (v6)
更改您的文件named.conf.options:
dnssec-验证号;
所以按照这些步骤,它对我有用,我相信它对你有用。
1.将您的主机名设置为您的服务器名称之一,例如:
2.配置/etc/network/中的接口,如:
不要忘记重新启动“网络”。
现在让我们配置绑定。你不需要编辑所有的数据库,就像下面这样:
打开 /etc/bind/named.conf.local 在文件末尾添加:
现在在 /etc/bind
现在编辑 forward.example.com
现在在同一个目录中
cp forward.example.com reverse.example.com
现在编辑反向区域,如下所示:
现在配置正向和反向区域。遵循命令:
输出应显示区域已加载并且没有错误。
现在重新启动绑定。如果出现错误,只需使用journalctl -xe并多次查看详细信息,这只是一个错字和类似的错误。
现在做这些:
再次转到 /etc/network/interfaces 在文件末尾添加:
之后重新启动网络
sudo systemctl restart networking
现在纳米这个文件:/etc/resolv.conf
在文件末尾添加这些:
重启网络重启 NetworkManager
现在 ping/nslookup/dig ns.example.com 或 server.example.com
现在它正在工作