Debian

如何讓我的伺服器使用主機文件來解析名稱?

  • May 14, 2015

我在家裡有一台裝有 Debian 的電腦,充當帶有兩個乙太網卡的伺服器:eth0 以 DHCP 模式連接到路由器,eth1 連接到一個交換機(靜態地址),該交換機可容納另外四台電腦。

我正在使用 PC 作為其他人的網關防火牆。由於我在內部網路中只有四台 PC,我不想在伺服器上設置BIND 。*用文件主機*解決四台電腦的名字比較容易,但我不能讓伺服器查到文件/etc/hosts。伺服器根本沒有配置;它只使用從我的 ISP 獲得的預設值。如何讓伺服器解析文件中的地址hosts

那是因為/etc/hosts它只是 Debian 伺服器上的一個文件,它用於自己的名稱解析。

它不使用該文件來提供任何 DNS 服務。

既然您不想設置 BIND,我可以建議您改用dnsmasq嗎?

它是輕量級的,只需使用您的主機文件即可充當 DNS 和 DHCP 伺服器。

我相信你正在尋找的是 /etc/nsswitch.conf

來自手冊頁:名稱服務開關 (NSS) 配置文件 /etc/nsswitch.conf 被 GNU C 庫用於確定從哪些來源獲取一系列類別中的名稱服務資訊,以及以什麼方式獲取名稱服務資訊。命令。…

  Here is an example /etc/nsswitch.conf file:

      passwd:         compat
      group:          compat
      shadow:         compat

      hosts:          dns [!UNAVAIL=return] files
      networks:       nis [NOTFOUND=return] files
      ethers:         nis [NOTFOUND=return] files
      protocols:      nis [NOTFOUND=return] files
      rpc:            nis [NOTFOUND=return] files
      services:       nis [NOTFOUND=return] files

放:

hosts: files dns

在您的 /etc/nsswitch.conf 中,然後機器應首先使用 hosts 文件獲取主機資訊,然後回退到 DNS。

引用自:https://unix.stackexchange.com/questions/203420