我在 LXD 实例中设置了一个绑定服务器,并尝试将所有 DNS 查询从主机转发到该实例。我试过这个:
sudo lxc config device add bind dnsdevicetcp proxy listen=tcp:0.0.0.0:53 connect=tcp:bind:53
但是 DNS 主要是 UDP 服务,当我尝试这样的事情时:
sudo lxc config device add bind dnsdeviceudp proxy listen=udp:0.0.0.0:53 connect=udp:bind:53
我会收到一个错误:
Error: Proxy device doesn't support the connection type: udp
如何正确转发查询?
主机:Ubuntu 服务器 18.04
没有虚拟化
LXC/LXD 版本:3.0.3
您使用的是 LXD 3.0.x,它不支持UDP 代理设备。在更高版本(我认为是 LXD 3.4)中添加了对此类代理设备的支持。
因此,我建议通过执行以下操作升级到 LXD 的 snap 包:
通过这样做,您将获得 LXD 3.23(当前是最新版本),它支持 UDP 代理设备。
请注意,如果没有 LXD 代理设备,您仍然可以使用
iptables
. 但是,这是一个更复杂的过程,因为您需要正确设置命令,然后在每次重新启动时使其在您的系统上自动运行。