使用 Linux 绑定不同的端口

使用 Linux 绑定不同的端口

我有一个 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 只是一个程序,它写入其他程序使用的配置文件和/或调用程序/脚本来使用这些配置文件。

相关内容