使用 BIND 将域名解析为公共 IP 而不是本地 IP

使用 BIND 将域名解析为公共 IP 而不是本地 IP

我设法在本地网络上设置了绑定,以便将域解析为服务器的本地 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

相关内容