我设法在本地网络上设置了绑定,以便将域解析为服务器的本地 IP,而不是我的公共 IP。但是,它只适用于网络中的其他客户端,而不适用于服务器本身。
这是我的配置:
/etc/bind/db.mydomain.be
$ORIGIN mydomain.be.
$TTL 3600
@ IN SOA ns1.local. me.ff. (
5 ; Serial
1h ; Refresh
30m ; Retry
7d ; Expire
15m ) ; Negative Cache TTL
;
@ IN NS ns1.local.
@ IN A 192.168.1.105
* IN A 192.168.1.105
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion yes; # enables resursive queries
listen-on { 192.168.1.105; };
allow-recursion { localnets; };
allow-transfer { none; };
forwarders {
8.8.8.8;
8.8.4.4;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
dnssec-validation auto;
};
从我的网络上的一台电脑: ping mydomain.be->按预期解析到我的服务器192.168.1.105
在服务器本身上运行相同的 ping 命令: ping mydomain.be - > 解析为我的公共 IP 地址 141.135.154.217。我需要它解析为它自己的 IP 192.168.1.105
我遗漏了什么?它看起来像是从服务器本身发出的“ping mydomain.be”,只是传递给我的 DNS 转发器。而后者又会用我的公共 iP 做出响应。
答案1
好的,解决方案很简单(Ubuntu 18.04):
1)编辑 /etc/dhcp/dhclient.conf 并取消注释或添加此行:
prepend domain-name-servers 127.0.0.1;
2)重新加载 dhclient:
sudo dhclient
=> 但是它只在我第一次 ping 我的域名时有效(执行 sudo dhclient 后)。第二次 ping 时,它再次显示我的公共 IP