Lassen Sie `hostname -f` den vollqualifizierten Hostnamen zurückgeben

8

Wie kann ich hostname(dh das hostnameim Terminal aufgerufene Unix-Befehlszeilentool ) dazu bringen, einen Hostnamen einschließlich der Domäneninformationen zurückzugeben?

Im Moment hostname, hostname -fund hostname -sgibt die gleichen Namen, die alle ohne die Domain - Informationen, sondern host <hostname>gibt den vollständigen Host - Namen:

$ hostname
> jvf-imac
$ hostname -f
> jvf-imac
$ hostname -s
> jvf-imac
$ host jvf-imac                                                                                                                                                                                     
> jvf-imac.fritz.box has address 192.168.178.31

Die Frage ist nicht, wie ich den vollständigen Hostnamen im Allgemeinen erhalten kann. Einige Skripte, auf die ich mich hostname -fstütze, sind erforderlich, um den vollständig qualifizierten Hostnamen zu erhalten. Daher muss hostname -fder korrekte Hostname zurückgegeben werden. Hat jemand eine Idee?

Aktualisierung

Systemübersicht

  • Systemversion: OS X 10.10.5 (14F27)
  • Kernel-Version: Darwin 14.5.0
  • Computername: jvf_imac

Inhalt der resolv.conf (gekürzt)

domain fritz.box
nameserver 192.168.178.1

DNS-Setup (verkürzt)

$ scutil --dns                                                                                                                                                                                          
resolver #1
  search domain[0] : fritz.box
  nameserver[0] : 192.168.178.1
  if_index : 4 (en0)
  flags    : Request A records
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa ...

...

resolver #7
  domain   : b.e.f.ip6.arpa ...

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : fritz.box
  nameserver[0] : 192.168.178.1
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable,Directly Reachable Address
jvf
quelle
1
Wie lautet der Computername in den Systemeinstellungen> Freigabe? Ich glaube, hostnamebekommt den FQDN von dort unter OS X, wohingegen host <hostname>DNS abzufragen scheint (obwohl ich am 10.11 bin ...)
für den
Verzeih mir, warum ist das hilfreich? Der lokale Computername erhält nur dann eine IP, wenn er mit dem Netzwerk verbunden ist. Der Befehl 'hostname' ist lokal, der Befehl 'host' ist netzwerkbasiert. Sobald Sie den Hostnamen kennen, können Sie DNS bitten, ihn für Sie aufzulösen.
Agentroadkill
Ich bin mit agentroadkill einverstanden. Ich sehe nicht, wie nützlich dies für meine Frage ist, bei der es nicht darum geht, den Hostnamen zu ändern, sondern das Befehlszeilentool dazu hostnamezu bringen, den korrekten, vollständigen Hostnamen einschließlich Domäneninformationen anzuzeigen. Der Teil über die Ausgabe des hostTools sollte nur zeigen, dass mein Netzwerk-Setup und DNS ansonsten korrekt zu funktionieren scheinen ...
jvf
@jvf Bitte fügen Sie Ihre Systemversion hinzu. Ich kann das Verhalten Ihres Systems in Yosemite nicht replizieren, obwohl ich das (Proxy-) DNS-Setup Ihrer Fritz! Box aktiviert habe.
Klanomath
Mac OS X 10.10.5, neueste Yosemite-Version
jvf

Antworten:

6

OS X unterscheidet sich in diesem Fall darin, dass es Ihre Einstellungen möglicherweise ändert, wenn es eine Antwort von Ihrem Router / DNS + DHCP erhält.

Wenn Sie keinen FQDN aus dem Hostnamen erhalten, müssen Sie zuerst einen FQDN festlegen.

Das Mac-Tool ist scutil

scutil --get HostName            # same as hostname
scutil --get LocalHostName       # same as hostname -s
scutil --get ComputerName

Wenn Sie jvf-imac.fritz.box wollen, dann einfach:

sudo scutil --set HostName jvf-imac.fritz.box

Sie könnten auch den Hostnamen mit festlegen sudo hostname ...und es wäre nicht falsch. Wenn ich zu erraten war, haben Sie wahrscheinlich fritz.box in /etc/resolv.confweshalb der DNS - Lookup den Domain - Namen anhängt , da Sie nicht einen vollständigen angegeben haben.

bmike
quelle
Obwohl der Scutil-Teil eine Antwort ist, die ich auch als Workaround gegeben hätte, ist der zweite Teil zweifelhaft. Fritz! Box ist ein (deutscher) Heimrouter, der einen DHCP- und einen (Proxy-) DNS-Server bereitstellt. Der Standard-Domainname lautet fritz.box. Gestern habe ich eine VM eingerichtet, die nur mit diesem Router verbunden ist, und ich hatte keine Probleme, die fqdn des Mac (= iMac.fritz.box) mit dem Hostnamen abzurufen.
Klanomath
@klanomath Sie haben sicherlich Recht, wenn das Endproblem wirklich darin besteht, wie ein fritz.box-Dienst funktioniert, aber Sie können Ihren Hostnamen so einstellen, wie Sie möchten, unabhängig davon, ob er die Erwartungen der übrigen Welt auflöst oder entspricht: - ) Aber wenn das OP nicht die Arbeit macht, um zu erklären, wie wirklich eine größere Frage beantwortet werden soll - vielleicht funktioniert das für einen neuen Thread? Wie Sie kommentiert haben, fehlen uns die Details des OP, um uns im Moment mit der tieferen Frage zu befassen.
bmike
Vielen Dank für die Antworten und Hilfe bisher. Das Festlegen des Hostnamens mit scutil dient als Problemumgehung. Natürlich würde mich eine allgemeinere Lösung interessieren. Möglicherweise betrifft das Problem den DNS-Proxy der Fritzbox. Gerne stelle ich Ihnen weitere Informationen zur Verfügung. Wenn es tatsächlich so ist, dass diese Fritzbox hier der Schuldige ist, ändere ich auch gerne die ursprüngliche Frage, um dies widerzuspiegeln!
JVF
@jvf Ich würde sagen, starten Sie einen neuen Thread, wenn Sie weitere Details hinzufügen möchten. :). Einfacher für alle
bmike
Welche DNS-Server haben Sie konfiguriert? Können Sie sie auflisten?
Allan