伺服器重新啟動後找不到主機,需要手動輸入DNS伺服器才能運作

伺服器重新啟動後找不到主機,需要手動輸入DNS伺服器才能運作

我的 Raspbian 伺服器在重新啟動後「忘記」了它的主機。

我找到的唯一解決方案是手動運行:

sudo sh -c 'echo "nameserver 8.8.8.8" >> /etc/resolv.conf'

但是重啟後它就被刪除了,需要我重新輸入。我想讓這盡可能無人值守。

由於我將它用作列印伺服器和 IRC 核心,因此它必須具有靜態 IP。

我目前的 /etc/network/interfaces 檔案如下所示:

auto lo

iface lo inet loopback
iface eth0 inet static

address 192.168.0.64
netmask 255.255.255.0
gateway 192.168.0.1

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

address 192.168.0.64
netmask 255.255.255.0
gateway 192.168.0.1

我試圖在最後將 google dns 伺服器添加到此文件中,但沒有成功。

此外,當我的伺服器啟動時,有一條錯誤訊息:

[FAIL] Not running dhcpcd client because /etc/network/interfaces defines some interfaces that will use a DHCP client.

我確信這是相關的,但不確定如何相關。

請幫助我找到一個永久修復的解決方案,以便我可以遠端重新啟動伺服器,而無需連接到它並手動運行:

sudo sh -c 'echo "nameserver 8.8.8.8" >> /etc/resolv.conf'

謝謝你!

答案1

首先,您需要從文件中刪除多餘的內容。註解掉從wpa-roam#每行開頭有一個符號)開始的所有內容。


/etc/resolv.conf您不應在現代發行版上更改。我的 Raspbian(和其他)上的文件的前幾行內容如下:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

因此,請閱讀man resolvconf以了解它是如何更新的 - 它可能是您的網頁腳本或網路管理員。

如果您不使用網路管理器,那麼您可能需要將相關節新增至/etc/network/interfaces

auto lo
auto eth0

iface lo inet loopback

iface eth0 inet static
    address 192.168.0.64
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 8.8.8.8

請注意dns-namservers條目。

如果您使用網路管理器和圖形桌面環境,那麼您可以在其中新增 DNS 伺服器。

如果您沒有使用圖形桌面環境,而是使用網路管理器,那麼該nmcli工具可以幫助您設定 DNS 解析器:

$ sudo nmcli con mod eth0 ipv4.dns "8.8.8.8"

相關內容