我的目标是将某些与工作相关的主机的 DNS 请求转发到能够解析这些请求的跳转服务器。
我在本地映射53
了跳转服务器上的端口5353
,如下所示:
ssh -L 5353:localhost:53 pritzl@jump
在本次会议中,我能够nslookup server.work
。现在我希望能够在家里的机器上做同样的事情。
我配置dnsmasq.conf
如下/etc/NetworkManager/dnsmasq.d/dnsmasq.conf
:
server=/google.com/1.1.1.1
server=/server.work/127.0.0.1#5353
然后,我重新启动了网络管理器:service network-manager restart
.
现在,让我们测试一下:
- 对于
google.com
,我得到:
pritzl@pritzl-vault:~$ nslookup google.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: google.com
Address: 172.217.17.78
- 对于
server.work
,我得到:
pritzl@pritzl-vault:~$ nslookup server.work
;; connection timed out; no servers could be reached
- 对于
server-2.work
,我立即得到:
pritzl@pritzl-vault:~$ nslookup server-2.work
Server: 127.0.1.1
Address: 127.0.1.1#53
** server can't find server-2.work: NXDOMAIN
(关于后者,我想这是有道理的,因为我的 ISP 的 DNS 不知道server-2.work
,并且可以立即响应。我想我应该更改 mydnsmasq.conf
以包含来自 的所有内容*.work
,但这是一个很好的限制性测试。)
出了点问题,但我不知道是什么。我该如何继续?
附加信息
我也尝试设置server=/google.com/127.0.0.1#5353
,dnsmsaq.conf
然后nslookup google.com
不再工作(除了没有任何工作的结论,不仅仅是与工作相关的主机)。我不确定这究竟意味着什么,但我认为在此处添加这是一个有趣的测试。
来自
man ssh
:DNS 通常使用 UDP,而不是 TCP。虽然可以使用 TCP,并且 dnsmasq 对此的支持有限,但您的远程 DNS 服务器并不支持(或配置)此功能。