我有一个 bind9 DNS 服务器,我已将其配置为在端口 55 中运行,但我无法使该设置正常工作。该服务器运行正常,但我无法调整本地计算机以解析来自 127.0.0.1、端口 55 的名称服务器查询
例子:
dig -p 55 a1.mylocalinstance.dip
...
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; QUESTION SECTION:
;a1.mylocalinstance.dip. IN A
;; ANSWER SECTION:
a1.mylocalinstance.dip. 10800 IN A 192.168.1.107
;; AUTHORITY SECTION:
mylocalinstance.dip. 10800 IN NS ns.mylocalinstance.dip.
;; ADDITIONAL SECTION:
ns.mylocalinstance.dip. 10800 IN A 192.168.1.100
;; Query time: 0 msec
;; SERVER: 127.0.0.1#55(127.0.0.1)
;; WHEN: Fri Dec 18 00:20:54 EET 2015
;; MSG SIZE rcvd: 96
当我尝试在我的服务器上 ssh 时:
$ssh [email protected]
ssh: Could not resolve hostname a1.mylocalinstance.dip: Name or service not known
我的 /etc/resolv.conf 文件:
nameserver [127.0.0.1]:55
nameserver fe80::1%wlan0
我不了解网络管理器和解析器之间的关系依赖关系,以及如何在我的端口上使用绑定来工作,以及如何在端口 55 转发我的 DNS 查询。
答案1
您还没有解释端口 53(127.0.0.1:53)有什么问题。如果它已被使用,您可以尝试将 bind9 DNS 服务器设置为另一个本地地址的端口 53,例如 127.0.0.53。即 127.0.0.53:53。我还没有测试过。
顺便说一句,我认为某些操作系统(也许是 MAC)可以设置为在 resolv.conf 或等效文件中读取端口(比如 55)。
答案2
请记住,端口 53 是目标端口(DNS 服务器的端口),无论它是在本地计算机还是其他地方。连接到端口 55 上的 DNS 服务器的唯一选择是使用 iptables 命令。只要 /etc/resolv.conf 指向另一台计算机,任何其他服务都可以在本地计算机的端口 53 上运行(尽管您需要 root 权限才能运行它,我想不出这样做的充分理由)。
NetManger 读取配置文件(在 Debian 变体中为 /etc/network/interfaces)并在启动时(通常在启动时)写入 /etc/resolv.conf 文件。换句话说,NetworkManager 只是一个程序,它写入其他程序使用的配置文件和/或调用程序/脚本来使用这些配置文件。