
有沒有辦法可以在命令列上更改 DNS 伺服器,而無需更改磁碟上的任何內容?
我最近啟動了救援會話,並獲得了 IP 位址(使用 DHCP),但沒有 DNS 伺服器。因為我的網路設定通常是nm-applet
在桌面會話中完成的,而不是在桌面會話中/etc/network/interfaces
完成的,所以我希望能夠為這次救援會話提供一個 DNS 伺服器,而不是在磁碟上寫入任何內容。
這通常可以透過編輯來實現/run/resolvconf/resolv.conf
。但resolvconf
似乎沒有在 ubuntu 14.04 救援會話中運行。
我希望有類似於網路配置的東西,我可以在其中配置介面而無需編輯文件:
# ifconfig eth0 192.168.2.5 netmask 255.255.255.0
# route add default gw 192.168.2.1
有沒有辦法在 ubuntu 14.04 上的救援會話中對 DNS 執行此操作?
答案1
我找到了一種方法來做到這一點:
終止 dns 服務(可能有更微妙的方法?)
# killall dnsmasq
使用所需的上游伺服器重新啟動服務:
# dnsmasq --server=192.168.2.1
在較新的 ubuntu(帶有systemd
)上,這將是:
# systemd-resolve -i enp0s31f6 --set-dns=192.168.2.1 # --set-dnssec=true
檢查:
# systemd-resolve --status
答案2
導覽至此目錄/etc/resolvconf/resolv.conf.d
使用 vi 或 vim 和 su 權限編輯頭文件
sudo vi /etc/resolvconf/resolv.conf.d/head
將以下行新增至文件中
nameserver *DNS server IP*
儲存檔案並使用 resolvconf 實用程式設定您透過以下命令輸入的靜態 DNS 伺服器位址
sudo resolvconf -u
答案3
為了使其正常工作,我au.archive.ubuntu.com
在該/etc/hosts
文件中添加了在 PC 上 ping 得到的 IP 位址。
然後就apt update
解決了。