我需要超过 65 个字符的 FQDN。在 centos 7 上解决这个问题最简单的方法是什么?
我获得了大约 30 个字符的根域名,我的主机名通常为 40-50 个字符。通常这不会成为问题,因为根域小于 10 个字符,但突然间它可能会给我带来问题。
我的第一个想法是 FQDN 不包含域名,但我看不到它的设置位置,即使我认为我设置正确,FQDN 也会被删除为 65 个字符(FQDN 是否包含域名)在字符限制内?)。此外,我也很好奇这是否可以在不编译我自己的内核的情况下远程实现,这是最后的手段。
出于示例目的,假设我提供的域名是:areallongexample.com,我的主机名通常是:a.long.hostname.with.lots.of.required.fields。
这是直接来自我的系统:
hostname a.long.hostname.with.lots.of.required.fields.areallongexample.com
hostname: name too long
hostnamectl set-hostname "a.long.hostname.with.lots.of.required.fields.areallongexample.com"
hostname -f a.long.hostname.with.lots.of.required.fields.areallongexample.co
hostname a.long.hostname.with.lots.of.required.fields.areallongexample.co
答案1
您的主机名不能包含像您向我们展示的这样的点
a.long.hostname.with.lots.of.required.fields.areallongexample.com
a.long
出于同样的原因,您甚至不能拥有:它包含一个点。主机名是 FQDN(完全限定域名)的第一个点组成部分;该主机的域就是虚线路径的其余部分。
组成部分(63 字节 - 不一定是字符)和整个域路径长度(255 字节)也有长度限制。详细信息在RFC 1035。
如果您已指定a.long.hostname.with.lots.of.required.fields
主机名(小于 63 字节)和域名areallongexample.com
,则主机名实际上是a
,域名是long.hostname.with.lots.of.required.fields.areallongexample.com
。
答案2
我已经解决了这个问题。我通过 hostnamectl 将主机名设置为“a.long.hostname.with.lots.of.required.fields”。将 /etc/hosts 更改为具有 fqdn 和缩写版本 (a.long.hostname.with.lots.of.required.fields)
运行 hostname -f 时服务器会打印出全名,而执行 hostname 时则会打印出缩写的主机名。
[root@a /]# hostnamectl set-hostname a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname
a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f
a.long.hostname.with.lots.of.required.fields.areallongexample.com
[root@a /]# cat /etc/hosts | grep required
127.0.0.1 a.long.hostname.with.lots.of.required.fields.areallongexample.com a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f | wc -c
66