web-dev-qa-db-ja.com

ホスト名とドメイン名を正しく設定するにはどうすればよいですか?

会社でUbuntu 16.04を実行しているサーバーをレンタルしています。company.orgという名前にします。

現在、私のサーバーは次のように構成されています。

  • ホスト名:server737263
  • ドメイン名:company.org

これが私のFQDNです。

user@server737263:~ $ hostname --fqdn
server737263.company.org

これは当然のことです。

私もドメイン名をレンタルしています。名前をdomain.orgにしましょう。サーバーの名前をserver1.domain.orgに変更します。

これは、ホスト名をserver1として、ドメイン名をdomain.orgとして構成することを意味します。

どうすれば正しくできますか?

実際、hostnameのマンページは明確ではありません。私には少なくとも:

ホスト名(1)

[...]

名前を設定

  • 1つの引数または--fileオプションを指定して呼び出すと、コマンドはホスト名またはNIS/YPドメイン名を設定します。 hostnameはsethostname(2)関数を使用しますが、3つのドメイン名、ypdomainnameおよびnisdomainnameはすべてsetdomainname(2)を使用します。 これは、次回の再起動までのみ有効であることに注意してください。永続的な変更のために/ etc/hostnameを編集します。

[...]

FQDN

  • FQDNをホスト名またはdnsdomainnameで変更することはできません。

[...]

/etc/hostnameの編集だけでは不十分なようです。ホスト名を実際に変更した場合、FQDNが変更されていたためです。コマンドsysctl kernel.hostname=server1でホスト名を変更するために私が読んだトリックもありますが、これが正しい方法なのか醜いトリックなのかについては何も述べられていません。

そう:

  1. ホスト名を設定する正しい方法は何ですか?

  2. ドメイン名を設定する正しい方法は何ですか?

35
titsou

ホスト名の設定:

  • 新しいホスト名で_/etc/hostname_を編集する必要があります。

  • 次に、Sudo hostname $(cat /etc/hostname)を実行します。

ドメインの設定:

  • 次に、_/etc/resolvconf/resolv.conf.d/head_に_domain your.domain.name_を追加します(FQDNではなく、ドメイン名のみ)。

  • 次に、_Sudo resolvconf -u_を実行して_/etc/resolv.conf_を更新します(または、以前の変更を_/etc/resolv.conf_に再現します)。

どちらも:

最後に、_/etc/hosts_ファイルを更新します。 IP(ループバックの有無に関係なく)、FQDN、ホスト名のいずれかで始まる行が少なくとも1行必要です。 ipv6アドレスをgreppingすると、hostsファイルは次のようになります。

_127.0.0.1 localhost
1.2.3.4 service.domain.com service
_
36
SYN

Sudo nano/etc/hostname

hostname.domain.com

Sudo nano/etc/hosts

127.0.0.1   hostname.domain.com hostname localhost

リブート!

/ etc/hostsファイルのFQDNの後に単一のホスト名が必要です。 Ubuntu 18.04.1およびその他のすべてのバージョンで正常に動作します。 EC2とその他の場所。

解決ファイルなどをいじってはいませんでした。

シェルにホスト名が表示され、必要なときにFQDNが表示されます。

8

〜$ manホスト名

[…]
       You cannot change the FQDN with hostname or dnsdomainname.

       The  recommended  method  of  setting the FQDN is to make the hostname be an alias for the fully qualified name using /etc/hosts,
       DNS, or NIS. For example, if the hostname was "ursula", one might have a line in /etc/hosts which reads

              127.0.1.1    ursula.example.com ursula

       Technically: The FQDN is the name getaddrinfo(3) returns for the Host name returned by gethostname(2).  The DNS  domain  name  is
       the part after the first dot.

       Therefore  it  depends  on the configuration of the resolver (usually in /etc/Host.conf) how you can change it. Usually the hosts
       file is parsed before DNS or NIS, so it is most common to change the FQDN in /etc/hosts.

       If a machine has multiple network interfaces/addresses or is used in a mobile environment,  then  it  may  either  have  multiple
       FQDNs/domain  names  or  none at all. Therefore avoid using hostname --fqdn, hostname --domain and dnsdomainname.  hostname --ip-
       address is subject to the same limitations so it should be avoided as well.

[…]

これは、 別のスレッドpoige によって親切に指摘され、Lutzがここで提案したものとまったく同じです。

Fqdnを/etc/hostnameに含めないでください。

1
karlsebal

Ubuntu 18.04.3 LTS(バイオニック)に対する記述

ホスト名を変更します。

Sudo hostnamectl set-hostname server1

hostnamectlを実行して結果を確認します。

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

/etc/netplan/01-netcfg.yamlを編集してsearchパラメータを変更し、新しいネットワークマネージャー Netplan を介してドメインを変更します。

sudoedit /etc/netplan/01-netcfg.yaml

構成例:

# 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を実行し、もう一方のセッションで設定を確認して、変更をテストします。

# 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.
# 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
# cat /etc/resolv.conf
...
nameserver 127.0.0.53
options edns0
search domain.org    <-- Check this value
# hostname -f
server1.domain.org

問題ありません。Sudo netplan tryプロンプトでEnterキーを押して、永続的なものにします。

1
RobM

ドメインエントリをmyhome.localからmyhome.lanに変更しようとしました。/etc/hostsファイルと/etc/network/interfacesファイルを編集する必要がありました。私の/etc/hostsファイルは次のようになります。

127.0.0.1   localhost
192.168.3.2 server.myhome.lan   server

そして、私の/etc/network/interfacesファイルは次のようになります。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp2s0
iface enp2s0 inet static
    address 192.168.3.2
    netmask 255.255.255.0
    network 192.168.3.0
    broadcast 192.168.3.255
    gateway 192.168.3.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 192.168.3.1
    dns-search myhome.lan

それは私にとってはうまくいきます。

0
Lutz