hello
Kérem javítsatok ki, de eddig úgy tudtam, hogy a hostname az érintett rendszerekben úgy kerül beállításra hogy először az /etc/sysconfig/network fáljból kiveszi a hostname értéket majd, hozzáteszi ha kell az /etc/hosts tartalmát.
Most azt tapasztalom, hogy a domain beállításnál szépen feloldja a saját IP címét és amit válasznak kap az lesz az FQDN.
Grrrr.... Ez így nem jó.
Más is tapasztalta ezt?
UPDATE
Nos, mit találtam a kernel konfigban:
kernel.hostname=NEW_HOSTNAME
:)
szóval a probléma megoldva. köszönöm a tippeket és az időt amit rámszántatok.
- 5257 megtekintés
Hozzászólások
CentOS 6 alatt nem tapasztalom ezt, a rendszer a HOSTNAME változóban megadott értéket használja mindig.
Nem tudom, mennyiben működik ez másképp 5-ös CentOS/RHEL alatt, én inkább arra tippelnék, hogy nem FQDN-t adtál meg, ezért reverz DNS-sel próbálja kideríteni a szkript, hogy mi lehet a domainnév:
http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-sysconfig-net…
"HOSTNAME=<value>, where <value> should be the Fully Qualified Domain Name (FQDN)"
- A hozzászóláshoz be kell jelentkezni
igen pontosan. csak hostnevet adtam meg. mert az FQDN-t a hostname -f parancsal kell visszaadja különben az applikáció nem működik megfelelően.
Ha FQDN adok meg a network fájlban akkor a hosname parancsra az FQDN íródik ki ami nekem most nem jó.
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
Helyes config:
/etc/sysconfig/network: FQDN
/etc/hosts: IP FQDN hostname
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam, CentOS 6 alatt sajnos nem működik így, akkor is az FQDN-t kapom vissza, ha simán a "hostname" parancsot futtatom. Érdekes módon, ha megcserélem a hosts fájlban az FQDN-t, és a hostname-et, akkor fordított logika szerint viselkedik, a "-f" adja meg a sima hosztnevet, a paraméterek nélküli futtatásnál pedig FQDN-t kapok vissza...
Kicsit utánaolvasva azt vettem észre, hogy nagyon nem egyértelmű, hogy az egyes disztróknál melyik formátumot kell használni, hol az FQDN-t, hol a sima hosztnevet említik a doksikban. Az egyetlen használható tanács az, hogy következetesen állítsa be az ember mindenhol, vagy az egyik, vagy a másik formátumot használva.
Ha a topikindító esetében egy alkalmazás azt várja, hogy a "hostname" csak a nevet adja vissza, akkor a dokumentációban foglaltakkal ellentétben jó lehet ez a megoldás is, csak következetesen kell használni mindenütt.
- A hozzászóláshoz be kell jelentkezni
Valoban. Ezt okozza ha mar nem configolsz semmit kezzel hanem config managereket hasznalsz... :\
Ugy tunik rosszul emlekeztem. Szoval a helyes config (mind RH5 and RH6 eseteben!):
/etc/sysconfig/network: HOSTNAME=hostname
/etc/hosts: IP hostname.example.com hostname
- A hozzászóláshoz be kell jelentkezni
es igy is van beallitva...... :(
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
Hogy mi van??? Mit tesz hozzá, "ha kell"?
A névfeloldási sorrend a nsswitch.conf-tól függ.
hosts: files dns
Vagy fordítva. Melyiket szeretnéd, honnan oldja fel, melyikkel próbálkozzon először?
man nsswitch.conf
Az hogy boot során beállítja a nevet a network file-ból semmit nem jelent. Lehet egy gép neve mákostészta is, míg a hálózaton webserver-ként érik el. A lokális név kb. lényegtelen (szokott lenni). De ha nagyon nem tetszik, akkor bármikor átállíthatod a 'hostname' paranccsal arra, amit szeretnél. Rebooting (vagy a következő hostname paranccsig) úgy fog maradni.
Másik, hogy jó lenne tudni, hogy az adott program mit használ a névfeloldáshoz. Vannak olyan programok (leellenőrzik ezzel, hogy működik e a névfeloldás, pl. Directory Server setup), amik nem használják a gethostbyaddr-t/getnameinfo-t, hanem direkt DNS névfeloldást csinálnak, így tök mindegy mit állítasz be host névnek, vagy mi van az állományokban.
- A hozzászóláshoz be kell jelentkezni
ja igen, az nsswitch.conf kiment a fejemből. majd holnap lecsekkolom.
UPDATE:
megnéztem és rendben van,
nsswitch.conf tartalma
passwd: files nis
shadow: files nis
group: files nis
hosts: files dns nis
szóval vlami más lesz...
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
Ez teljesen korrekt, alapból a hosts fájlt nézi, ha ott nem találja a keresett címet vagy nevet, akkor a DNS-szerverekhez fordul (files dns). A legtöbb (az összes?) Linux disztró így működik.
A probléma ott van, hogy ahogy a fentebbi posztomban írtam, a hostname akkor is az FQDN-t adja vissza, ha megadod korrektül a kvalifikált és a nem kvalifikált hosztnevet egyaránt. Vagyis, jelen esetben az egyetlen járható út a HOSTNAME változóban megadni a sima hosztnevet, majd a hosts fájlban a hosztnevet és az FQDN-t.
- A hozzászóláshoz be kell jelentkezni
igy van beallitva ahogy irod.
/etc/sysconfig/network:HOSTNAME=alma
/etc/hosts: IPalma.example.com alma
igy a hostname, hostname -s, hostname -d es a hostname -f is azt adja vissza amit kell. viszont a restart utan az 'alma'.example.com-bol alma.korte.com lesz.
A fura hogy a rendszerben nem talallok korte.com bejegyzest, csak is a DNS-ben van igy regisztralva a gep.
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
Biztosan nincs elirva a hosts fajlban a gep neve?
Illetve: probald meg a hosts fajlba a localhost bejegyzeshez felvenni a gep nevet, igy:
127.0.0.1 alma.example.com alma localhost
::1 alma.example.com alma localhost
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Szóval egy kis strace és olvasás után.
a gethostname() aljáról:
The GNU C library does not employ the gethostname() system call; instead, it implements gethostname() as a library function that calls uname(2)
Az uname meg a kerneltől kérdezi le.
Ha a /proc/sys/kernel/hostname-ba beleírod:
echo "ezlegyen.ahost.name" > /proc/sys/kernel/hostname
Akkor a hostname, ezt fogja visszaadni.
Tehát a hostname parancs nem fogja olvasni az /etc/hosts állományt. Ez az strace futtatásakor amúgy látszik is.
- A hozzászóláshoz be kell jelentkezni
Ez érdekes, tényleg így van.
Egy gyors teszt szerint a hostname -f pedig már használja, úgyhogy szerintem az elvárt működéshez az /etc/sysconfig-ba a rövid nevet, az /etc/hosts-ba pedig a hosszú nevet kell tenni előre.
- A hozzászóláshoz be kell jelentkezni