Joó*_*dám 6 networking hostname hosts domain
我最近在 VPS 上设置了 MTA,在配置它时我意识到我对 Unix 中主机名的概念和实现感到非常困惑。
我对 DNS 有深入的了解,并且熟悉它的前身hosts
文件,但我对经典的内部网络没有经验,因为我一直使用直接连接到 Internet 的服务器。
如果有人搜索这个主题,那里有很多相互矛盾的解释,所以,首先,我想要求对主机名(不仅仅是简单的,而且是复杂的,多级名称)进行全面介绍,完全独立于DNS和互联网,并 再为自己的DNS关系的说明,以及错综复杂的“完全合格的域名”一词(这是一样的DNS,还是其他什么东西)。
我还想知道典型 Unix 机器上(或至少在 Debian/Ubuntu 上)上的哪些文件和命令在管理主机名方面发挥着作用,尤其是:
/etc/hostname
(简单或复杂的名称?这是有 A 记录的东西吗?)/etc/hosts
设置主机名方面的角色和正确设置(它不仅仅是为了解析?什么名称和指向哪里?)更详细的答案比试图简化主题的答案更受欢迎,因为后一种类型有很多,这是混淆的根源。
根据 slm 的评论,系统主机名由内核维护在内存中,用户态软件获取它的正确方法是通过系统gethostname()
调用。
默认主机名实际上被编译到(linux)内核中,因此如果您自己使用,则可以这样设置。我认为发行版内核通常使用localhost
(也可以为空)。
因为大多数人可能不想仅仅为了设置主机名而编译内核,所以还有一个系统调用来设置它,sethostname()
; 这由诸如 之类的命令使用hostname
。通常在启动期间,init 服务将使用来自 的值来执行此操作/etc/hostname
。然而,这不是强制性的。
对主机名的设置没有任何限制,但请注意,它与完全限定域名(FQDN)不同。FQDN 是主机名加上您的域名。如果您使用以下方法设置域名,您的主机名中可能不应该有任何点。
/etc/hosts 在设置主机名方面的作用和正确设置(不仅仅是为了解析?什么名称和指向哪里?)
它用于 DNS 解析,但 Patrick在这里解释了如何使用它来设置域名。这是对主机名的查找,然后使用 IP 地址进行反向查找;与仅仅设置它相比,有点迂回和混乱hostname --fqdn
,但看起来更常见。
这样做并不会阻止domainname
返回(none)
,但也许这无关紧要。
归档时间: |
|
查看次数: |
822 次 |
最近记录: |