假设我在本地计算机上安装了一个端口为 5353 的 DNS 服务器,如何将其配置为/etc/resolv.conf
我resolv.conf
看起来像这样
nameserver 14.2.3.1
nameserver 14.2.3.2
如何添加带有端口的条目?
答案1
您可以为 DNS 指定一个不同的端口(例如 BIND)来监听,因为它是通过 进行控制的/etc/named.conf
,但问题是让 DNS 客户端通过该端口而不是默认端口 53 连接到 DNS 服务器。
配置/etc/resolv.conf
文件不支持任何形式的备用端口号,因此只能通过端口 53 进行本地连接。
实现您所寻找的唯一方法是在中间放置一些东西来从客户端接收端口 53 请求,将其更改为使用端口 5353,然后将该请求传递到服务器。
其他人实现此目的的方法是iptables
根据需要重新路由该内部请求。可以在此处找到讨论此问题的示例线程https://serverfault.com/questions/401489/redirect-traffic-from-127-0-0-1-to-127-0-0-1-on-port-53-to-port-5300-with-iptabl
但关键点是 1)更新您的/etc/resolv.conf
以包含一个条目127.0.0.1
,然后在 iptables 中添加一条规则来处理重定向:
iptables -t nat -A OUTPUT -p tcp --dport domain -j DNAT --to-destination 127.0.0.1:5300
iptables -t nat -A OUTPUT -p udp --dport domain -j DNAT --to-destination 127.0.0.1:5300
答案2
在 Linux 中,/etc/resolv.conf
您无法指定 DNS 监听的不同端口。只需让您的 DNS 监听端口 53 即可。
根据互联网搜索格式:
nameserver x.x.x.x:p
在 Solaris 和 MacOS 中不起作用