![主机名和 /etc/hosts](https://linux22.com/image/199364/%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%92%8C%20%2Fetc%2Fhosts.png)
在服务器上我遇到了 sudo 问题
sudo: unable to resolve host
现在我不知道这是否相关,但其他人已经修改了
/etc/hostname
但不是
/etc/hosts
这样新的主机名就不再包含在其中了。重新启动机器后 sudo 又可以工作了。更改 /etc/hostname 而不修改 /etc/hosts 是否会给我带来问题?
答案1
在我的(Debian)系统上有效的简短答案是将一行添加到/etc/hosts
.
从您的 shell 中,确认这些结果匹配:
$ cat /etc/hostname
somehostname
--- and...---
$ hostname
somehostname
/etc/hosts
通过保存 IPv4 和 IPv6 的环回和本地主机地址,充当一种“本地 dns”。但您的/etc/hosts
文件似乎缺少一个条目;我们将添加如下:
使用您最喜欢的编辑器,例如nano
:
sudo nano /etc/hosts
将以下行添加到文件末尾:
127.0.1.1 somehostname
其中匹配上面somehostname
的内容。/etc/hostname
保存文件,退出,重新启动,sudo
应该停止抱怨。如果某事/某人正在更改您的/etc/hostname
文件,您将需要采取其他措施来处理。请man hostname
参阅想法。
有关其原因的一些背景信息,请参阅这个搜索
另请注意,这是在私人的本地网络 - 如果您的主机具有公共 IP 地址和 DNS 托管的 FQDN,则它可能无法工作。