ホスト名とドメイン名を正しく設定する方法は?


33

会社で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ドメイン名を設定します。ホスト名はsethostname(2)関数を使用し、3つのドメイン名、ypdomainnameおよびnisdomainnameはすべてsetdomainname(2)を使用します。 これは、次回の再起動までのみ有効であることに注意してください。永続的な変更のために/ etc / hostnameを編集します。

[...]

FQDN

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

[...]

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

そう:

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

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

回答:


31

ホスト名の設定:

  • /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

7
これらのconfファイルは両方ともDO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN私のサーバー上で言います(同じバージョン)。
ウォルフ

7
「編集しないでください」という警告がに表示されるという事実にだまされないでください/etc/resolvconf/resolv.conf.d/head。ヘッドファイルのすべてが結果の/etc/resolv.conf出力ファイルの先頭に追加されるため、最終結果に警告が表示されるように警告が表示されます。最初はループを投げました。
-njbair

7
これは18.04 LTSには当てはまらないようです-そのようなファイルは/etc/resolvconf/resolv.conf.d/headなく、そのようなユーティリティもありませんresolvconf
inopinatus

2
答えを次のように更新できますhostnamectl
RingØ18

1
また、AWSを使用する場合は、再起動後もホスト名を保持する必要があることに注意してください- sudo nano /etc/cloud/cloud.cfg更新preserve_hostname: true(デフォルトはfalse)。
bshea

5

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を持ちます。


1

〜$ 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

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

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

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 ]

2回目にログインし、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キーを押して、永続的なものにします。


0

私はから私のドメインエントリを変更しようmyhome.localmyhome.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

それは私のためにうまく機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.