主机名未改变(Ubuntu 14.04)

主机名未改变(Ubuntu 14.04)

当我设置 VPS 时,我将名称设置为“main”,这样我的 /etc/hosts 和 /etc/hostnames 文件都只有一个条目(即“main”)。因此,我设置了 root ssh 访问权限并输入“hostname”,它返回的是“main”。当我输入“hostname -f”时,结果也是一样。

好吧,我正在尝试设置 Exim4 从我的 Django 应用程序发送邮件(我只需要发送,不需要接收),并且我将以下内容添加到/etc/hosts

127.0.1.1 main.mydomain.com main
<myip> main.mydomain.com main

然后我执行service hostname restarthostname -f只返回main。我甚至重新启动(我尽量避免这样做),但它仍然返回main。不知道这是为什么...实际文件本身显示了我的新条目,但我无法让实际hostnamehostname -f命令改变。

我猜是这样的,但我不能 100% 确定,这就是为什么当我使用该命令时我没有收到电子邮件(电子邮件太多?)。如果不是绝对有必要设置主机名来使用 exim,我想避免它,因为它让我很头疼。echo test message | mail -s test [email protected][email protected]

任何帮助都会让我永远感激您的卓越。

答案1

要设置域名,您可以使用同名程序domainname

sudo domainname example.com

要查询实际设置的值,请​​不带参数调用它。

还需要运行hostname.sh脚本(取决于操作系统)才能使更改生效:

/etc/init.d/hostname.sh

在 Debian 和衍生版本中,还应/etc/mailname包含用于发送电子邮件的默认发件人域。

我无法对 Exim 做出声明,但我认为 exim 中主机和域名的默认值应该指向操作系统的设置。

引用 hostname 的手册页:

FQDN

您无法使用此命令更改 FQDN(由 hostname --fqdn 返回)或 DNS 域名(由 dnsdomainname 返回)。系统的 FQDN 是 resolver(3) 为主机名返回的名称。

技术上:FQDN 是 getaddrinfo(3) 返回的 gethostname(2) 主机名的名称。DNS 域名是第一个点后面的部分。

因此,如何更改它取决于配置(通常在 /etc/host.conf 中)。通常(如果在 DNS 或 NIS 之前解析 hosts 文件),您可以在 /etc/hosts 中更改它。

答案2

如果邮件是通过 postfix 发送的,那么您还应该编辑/etc/postfix/main.cf以获得正确的值myhostname = xyz

相关内容