Van egy gépem, amelynek megváltoztattam a hosztnevét. /etc/hosts
, /etc/sysconfig/network
és hostname
paranccsal módosítottam. A hostname
a helyes rövid nevet adja vissza, a hostname --fqdn
a várható FQDN-t adja vissza, de a hostname -A
egy régi név. Megváltoztattam a gép IP-címét, hogy megbizonyosodjak róla, hogy nem volt-e külső DNS-gyorsítótár.
Ha megnyitom a python-t és futtatom
import socket print(socket.gethostname()) print(socket.getfqdn())
Mindkettő a régi hosztnevet / fqdn adja vissza, ugyanaz, mint a hostname -A
A hosztnév man oldalon megjelenik --fqdn
csak felveszi a rövid nevet és a tartományt, és összerakja őket.
Az FQDN (teljesen minősített tartománynév) megjelenítése. Az FQDN egy rövid hosztnévből és a DNS-tartománynév. Hacsak nem kötést vagy NIS-t használ a gazdakereséshez, megváltoztathatja az FQDN-t és a DNS-tartománynevet (amely az FQDN része) az / etc / hosts fájlban.
Mi a különbség ezek között a parancsok között, és hogyan tudom jobban elhárítani a régi hosztnév megmaradásának okait.
Megjegyzések
- Mi a helyzet az adott linux / unix és verzió azonosítóval. Vannak esetek, amikor ezek az információk máshol találhatók, és a rendszerindításkor vannak beállítva e más konfigurációs fájlokból.
- Red Hat Enterprise Linux 6.4
Válasz
hostname
visszaadja a konfigurált gazdagép- vagy csomópontnevet. A gyakorlatban lehet akár rövid név (a legtöbb konfigurációban), akár hosszú név (ebben az esetben általában az FQDN). A rövid nevet a hostname --short
adja.
hostname --fqdn
az FQDN-t adja vissza, amely gethostbyname
a csomópontnéven (amint azt a uname
rendszerhívás visszaadja, lásd: uname(2)
man oldal).
hostname -A
valami homályos és nem intuitív. Különösen a neve és leírása (“minden FQDN”) ellenére nem adja meg a szabványos FQDN-t terv szerint. Ezért azt mondanám: ne használja. Az egyik oka az, hogy hiányzik a gép érvényes IP-címe, mint például a 127.0.1.1, amelyhez az FQDN társítható a /etc/hosts
fájlban (ez például jelenleg az alapértelmezett a Debian és az Ubuntu alatt). = “77b5a20083″>
módszer szerint az IP-cím fordított felbontása nem feltétlenül ad meg FQDN-t; ez csak egy rövid név lehet.
A python problémájával kapcsolatban ott lehet egy hiba. Nem tudom. Javaslom, hogy próbálja ki a következő Perl szkriptet:
#!/usr/bin/env perl use strict; use POSIX; my $nodename = (POSIX::uname)[1]; print "Nodename: $nodename\n"; my @ghbn = gethostbyname $nodename; print "FQDN: $ghbn[0]\n"; $ghbn[0] !~ /\./ && $ghbn[1] =~ /(\S+\.\S+)/ and print "Fixed FQDN from aliases: $1\n";
Megjegyzések
használja a dns keresést. További információ itt: bugs.debian.org/cgi-bin/bugreport.cgi?bug=718393
strace hostname -A
, hogy lássa, mi történik.
hostname -A
megnézi a beállított interfészeket és visszafordítja azokat (nos, ez az információ található a man oldalán). A 127.0.1.1 a megfelelő IP-cím a válaszomban, nem a 127.0.0.1. Az a tény, hogy a 127.0 .1.1 az FQDN-hez (a 127.0.0.1 helyett) ahostname -A
probléma egyik oka.hostname -f
a/etc/hosts
használata, míg div id = “77b5a20083″>