如何在Linux中专门为网络命名空间设置DNS


9

我在Linux中创建了一个网络名称空间。

我以为每个创建的命名空间都有一个resolv.conf文件,但是在我的系统上不是这样。我没有以下路径/etc/netns/namespace_name/resolv.conf。文件夹netns不存在。

只有一个resolv.conf(/etc/resolv.conf,另一个在/run/resolv.conf中镜像)。此文件中的任何更改都会影响所有网络接口。有没有办法我可以对主机和名称空间使用不同的DNS?

Answers:


11

您必须自己创建目录/ etc / netns / _namespace_name_,然后在其中放置不同版本的resolv.conf。


1
/etc/netns/namespace-name/resolv.conf自动使用吗?
CMCDragonkai 2015年

而且也可以用于iptables吗?
CMCDragonkai 2015年

2
ip netns如ip netns man7.org/linux/man-pages/man8/ip-netns.8的手册页所述,它将自动使用,因为上面的完整路径由/etc/resolv.conf 绑定安装。 html。因此,在给定的网络名称空间中,/ etc / resolv.conf是仅基于名称空间的resolv.conf文件,并且仅当/ etc / netns /名称空间名称/resolv.conf已创建时才如此。否则,应用程序将看到主机的resolv.conf,这可能不是所需的行为。
Ricky Robinson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.