我在我的计算机上设置了一个dnsmasq
服务器,对于局域网上的计算机来说它工作得很好,但我无法从外部访问它。我见过的每个教程/文档dnsmasq
似乎都集中在内部连接上,所以我什至不确定它是否可以完成。我尝试在路由器上打开端口 53,并简单地使用我计算机的外部 IP 地址作为另一个网络中计算机的 DNS 服务器,但这不起作用。我的方法无效还是 dnsmasq 不允许外部连接?
这是输出netstat -na | grep 53
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp6 0 0 :::53 :::* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp6 0 0 :::53 :::*
udp6 0 0 :::5353 :::*
unix 2 [ ACC ] STREAM LISTENING 12538 @/tmp/dbus-iOmdhtTj6j
unix 2 [ ACC ] STREAM LISTENING 18760 @aitor-com.canonical.Unity.Scope.files.T2838538736616
unix 2 [ ACC ] STREAM LISTENING 13753 /run/user/1000/pulse/native
unix 3 [ ] STREAM CONNECTED 12253
unix 3 [ ] STREAM CONNECTED 15381
unix 3 [ ] STREAM CONNECTED 21535
unix 3 [ ] STREAM CONNECTED 18753
unix 3 [ ] STREAM CONNECTED 13539 @/tmp/dbus-wMqgvvSqrL
unix 3 [ ] STREAM CONNECTED 12953
unix 3 [ ] STREAM CONNECTED 18761 @aitor-com.canonical.Unity.Scope.files.T2838538736616
unix 3 [ ] STREAM CONNECTED 13153
unix 3 [ ] STREAM CONNECTED 15382
unix 3 [ ] STREAM CONNECTED 15386
unix 3 [ ] STREAM CONNECTED 15388
unix 3 [ ] STREAM CONNECTED 15387
答案1
默认情况下,dnsmasq 通常配置为仅侦听来自本地计算机的连接。然而,如果配置正确,可以从任何地方访问它;例如,它通常用于基于 Linux 的网络设备(例如家庭路由器),用于回复来自内部网络的查询。
编辑该文件dnsmasq.conf
并确保interfaces
和listen-address
都设置为包含您想要访问该文件的所有位置。如果您希望可以从互联网上使用它,则不得设置这两个选项。还要确保bind-interfaces
也没有设置。
请注意,为了让您的计算机响应 DNS 查询,它需要有一个从互联网上可见的 IP 地址,即不在私有IP地址范围。