首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确设置主机名和域名?

如何正确设置主机名和域名?
EN

Unix & Linux用户
提问于 2016-11-12 23:38:31
回答 5查看 335.3K关注 0票数 51

我正在租用一台服务器,在一家公司运行Ubuntu16.04,让我们把它命名为company.org。

目前,我的服务器配置如下:

  • 主机名:server737263
  • 域名:company.org

这是我的FQDN:

代码语言:javascript
复制
user@server737263:~ $ hostname --fqdn
server737263.company.org

这并不令人惊讶。

我还租用了一个域名,让我们命名它domain.org。我想要做的是将我的服务器重命名为server1.domain.org

这意味着将我的主机名配置为server1,将我的域名配置为domain.org

我怎么才能正确地做这件事?

事实上,hostname的管理手册还不清楚。至少对我来说:

主机名(1) ...集名称

  • 当使用一个参数或-file选项调用时,命令设置主机名或NIS/YP域名。hostname使用sethostname(2)函数,而三个域名、ypdomainname和nisdomainname都使用setdomainname(2)。注意,这只在下一次重新启动之前生效。编辑/etc/主机名以进行永久更改。

... FQDN

  • 不能用主机名或dnsdomainname更改FQDN。

...

那么,仅仅编辑/etc/hostname似乎还不够吗?因为如果它真的更改了主机名,它就会更改FQDN。我还读到了一个用命令sysctl kernel.hostname=server1更改主机名的技巧,但是没有说明这是正确的方法还是丑陋的技巧。

所以:

  1. 设置主机名的正确方法是什么?
  2. 设置域名的正确方法是什么?
EN

回答 5

Unix & Linux用户

回答已采纳

发布于 2016-11-12 23:51:33

设置主机名:

  • 您需要用新的主机名编辑/etc/hostname
  • 然后运行sudo hostname $(cat /etc/hostname)

假设您有一个resolvconf二进制文件,则设置您的域:

  • /etc/resolvconf/resolv.conf.d/head中,您将添加行domain your.domain.name (而不是FQDN,只是域名)。
  • 然后,运行sudo resolvconf -u来更新您的/etc/resolv.conf (或者,将前面的更改复制到/etc/resolv.conf中即可)。

如果没有resolvconf,只需编辑/etc/resolv.conf,添加domain your.domain.name行即可。

无论哪种方式:

最后,更新您的/etc/hosts文件。至少应该有一行以您的IP (回送与否)、FQDN和主机名开头。如果您的主机文件删除了ipv6地址,您的主机文件可能如下所示:

代码语言:javascript
复制
127.0.0.1 localhost
1.2.3.4 service.domain.com service

针对hostnamectl在评论中堆积如山的建议:它不是强制性的,也不是详尽无遗的。

如果操作系统附带了systemd,它可以作为步骤1和步骤2的替代品。而上面给出的步骤是有效的,而不管系统是否存在(pclinuxos,devuan,.)。

票数 49
EN

Unix & Linux用户

发布于 2018-11-06 21:41:40

sudo nano /etc/主机名

代码语言:javascript
复制
hostname.domain.com

sudo nano /etc/主机

代码语言:javascript
复制
127.0.0.1   hostname.domain.com hostname localhost

重新启动!

在/etc/host文件中的FQDN之后必须有一个主机名。在Ubuntu18.04.1和所有其他版本上工作都很好。在EC2和其他地方。

没有弄乱解析文件或其他任何东西。

它在shell中显示主机名,并在需要时拥有FQDN。

票数 14
EN

Unix & Linux用户

发布于 2019-10-22 11:32:06

针对Ubuntu 18.04.3 LTS编写的指令(仿生)

更改主机名:

代码语言:javascript
复制
sudo hostnamectl set-hostname server1

通过运行hostnamectl检查结果:

代码语言:javascript
复制
root@www:/# hostnamectl
   Static hostname: server1       <-- Check this value
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 202c4264b06d49e48cfe72599781a798
           Boot ID: 43654fe8bdbf4387a0013ab30a155872
    Virtualization: xen
  Operating System: Ubuntu 18.04.3 LTS
            Kernel: Linux 4.15.0-65-generic
      Architecture: x86-64

通过编辑网络计划和更改search参数,通过新的网络管理器/etc/netplan/01-netcfg.yaml更改域:

代码语言:javascript
复制
sudoedit /etc/netplan/01-netcfg.yaml

示例配置:

代码语言:javascript
复制
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      nameservers:
          search: [ domain.org ]

通过第二次日志记录和在其中一个会话中运行sudo netplan try并在另一个会话中检查设置来测试更改:

代码语言:javascript
复制
# netplan try
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in  97 seconds
Configuration accepted.
代码语言:javascript
复制
# systemd-resolve --status
...
Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4
          DNS Domain: domain.org      <-- Check this value
代码语言:javascript
复制
# cat /etc/resolv.conf
...
nameserver 127.0.0.53
options edns0
search domain.org    <-- Check this value
代码语言:javascript
复制
# hostname -f
server1.domain.org

这一切都很好,按ENTER在sudo netplan try提示符使事情永久。

票数 9
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/322883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档