Wie man den Hostnamen und den Domainnamen richtig einstellt?

33

Ich miete einen Server, auf dem Ubuntu 16.04 bei einer Firma ausgeführt wird, nennen wir ihn company.org.

Derzeit ist mein Server folgendermaßen konfiguriert:

  • Hostname: server737263
  • Domain Name: company.org

Hier ist mein FQDN:

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

Das ist nicht überraschend.

Ich vermiete auch einen Domainnamen, nennen wir ihn domain.org. Ich würde meinen Server gerne umbenennen als server1.domain.org.

Dies bedeutet, dass ich meinen Hostnamen als server1und meinen Domainnamen als konfiguriere domain.org.

Wie kann ich das richtig machen?

In der Tat ist die Manpage für hostnamenicht klar. Zumindest für mich:

HOSTNAME (1)

[...]

NAME EINSETZEN

  • Bei Aufruf mit einem Argument oder mit der Option --file legen die Befehle den Hostnamen oder den NIS / YP-Domänennamen fest. hostname verwendet die Funktion sethostname (2), während alle drei Domänennamen, ypdomainname und nisdomainname setdomainname (2) verwenden. Beachten Sie, dass dies nur bis zum nächsten Neustart wirksam ist. Bearbeiten Sie / etc / hostname, um eine dauerhafte Änderung vorzunehmen.

[...]

DER FQDN

  • Sie können den FQDN nicht mit Hostname oder DNS-Domänenname ändern.

[...]

Es scheint also, dass die Bearbeitung /etc/hostnamenicht ausreicht? Denn wenn es den Hostnamen wirklich geändert hätte, hätte es den FQDN geändert. Es gibt auch einen Trick, den ich gelesen habe, um den Hostnamen mit dem Befehl zu ändern sysctl kernel.hostname=server1, aber nichts sagt aus, ob dies der richtige Weg oder ein hässlicher Trick ist.

So:

  1. Wie kann ich den Hostnamen richtig setzen?

  2. Wie kann ich den Domainnamen richtig setzen?

Titsou
quelle

Antworten:

31

Festlegen Ihres Hostnamens:

  • Sie möchten /etc/hostnamemit Ihrem neuen Hostnamen bearbeiten .

  • Dann renne sudo hostname $(cat /etc/hostname).

Einrichten Ihrer Domain:

  • Anschließend /etc/resolvconf/resolv.conf.d/headfügen Sie in die Zeile then ein domain your.domain.name(nicht Ihren vollqualifizierten Domänennamen, sondern nur den Domänennamen).

  • Führen Sie dann aus sudo resolvconf -u, um Ihr zu aktualisieren /etc/resolv.conf(alternativ können Sie auch die vorherige Änderung in Ihrem reproduzieren /etc/resolv.conf).

Beide:

Zuletzt aktualisieren Sie Ihre /etc/hostsDatei. Es sollte mindestens eine Zeile vorhanden sein, die mit einer Ihrer IP-Adressen (Loopback oder nicht), Ihrem FQDN und Ihrem Hostnamen beginnt. Wenn Sie die IPv6-Adressen herausgreifen, könnte Ihre Hosts-Datei folgendermaßen aussehen:

127.0.0.1 localhost
1.2.3.4 service.domain.com service
SYN
quelle
7
Beide conf-Dateien befinden sich DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENauf meinem Server (dieselbe Version).
Walf
7
Lassen Sie sich nicht von der Tatsache täuschen, dass die Warnung "NICHT BEARBEITEN" in angezeigt wird /etc/resolvconf/resolv.conf.d/head. Alles in der Kopfdatei wird der resultierenden /etc/resolv.confAusgabedatei vorangestellt, daher befindet sich die Warnung dort, sodass sie im Endergebnis angezeigt wird. Warf mich zuerst für eine Schleife.
njbair
7
Dies scheint nicht auf 18.04 LTS zuzutreffen - es gibt keine solche Datei /etc/resolvconf/resolv.conf.d/headund es gibt kein solches Hilfsprogramm resolvconf.
Inopinatus
2
Sie können die Antwort mithostnamectl
Ring Ø
1
Beachten Sie auch, dass Sie bei Verwendung von AWS den Hostnamen nach dem Neustart beibehalten müssen - sudo nano /etc/cloud/cloud.cfgUpdate preserve_hostname: true(Standard ist false).
bshea
5

sudo nano / etc / hostname

hostname.domain.com

sudo nano / etc / hosts

127.0.0.1   hostname.domain.com hostname localhost

NEUSTART!

MUSS EINEN HOSTNAME nach dem FQDN in der Datei / etc / hosts haben. Funktioniert gut auf Ubuntu 18.04.1 und allen anderen Versionen. Auf EC2 und anderswo.

Ich habe mich nicht mit der Auflösungsdatei oder irgendetwas anderem herumgetrieben.

Das zeigt den Hostnamen in der Shell und hat dann den vollqualifizierten Domänennamen, wenn Sie ihn brauchen.

Richard Westby-Nunn
quelle
1

~ $ man Hostname

[…]
       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.

[…]

Dies wurde freundlicherweise von poige in einem anderen Thread hervorgehoben und ist genau das, was Lutz hier vorschlug.

Sie sollten Ihre fqdn nicht in setzen /etc/hostname.

karlsebal
quelle
1

Anweisungen geschrieben gegen Ubuntu 18.04.3 LTS (bionic)

Ändern Sie den Hostnamen:

sudo hostnamectl set-hostname server1

Überprüfen Sie das Ergebnis mit 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

Ändern Sie die Domäne über den neuen Netzwerkmanager Netplan , indem Sie /etc/netplan/01-netcfg.yamldie searchParameter bearbeiten und ändern :

sudoedit /etc/netplan/01-netcfg.yaml

Beispielkonfiguration:

# 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 ]

Testen Sie Änderungen, indem Sie sich ein zweites Mal anmelden, sudo netplan tryin einer der Sitzungen ausführen und die Einstellungen in der anderen überprüfen:

# 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

Alles ist gut, drücken Sie die EINGABETASTE an der sudo netplan tryEingabeaufforderung, um die Dinge dauerhaft zu machen.

RobM
quelle
0

Ich habe versucht, meinen Domain-Eintrag von myhome.localauf zu ändern. myhome.lan Ich musste die /etc/hostsDatei und die /etc/network/interfacesDatei bearbeiten . Meine /etc/hostsDatei sieht jetzt so aus:

127.0.0.1   localhost
192.168.3.2 server.myhome.lan   server

und meine /etc/network/interfacesdatei sieht nun so aus:

# 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

Es funktioniert gut für mich.

Lutz
quelle