10 Haziran 2020 Çarşamba

/etc/hosts dosyası - DNS kullanmadan Bazı İsimlerin IP Adresine Dönüştürülmesini Sağlar - localhost Satırı Burada Tanımlanır

Giriş
Bu yazıyla ilgili olarak hostnamectl komutu yazısına bakabilirsiniz.

etc/hosts Dosyası Ne İşe Yarar?
etc/hosts dosyası DNS kullanmadan bazı isimlerin IP adresine dönüştürülmesini sağlar. Bu dosya değiştirilince etkisi hemen görülebilir. Açıklaması şöyle.
Changes to /etc/hosts file seem to take effect immediately.
Satırın Formatı
Satırın şekli şöyledir
IP_address canonical_hostname [aliases...]
Önce IP adresi sonra isim gelir.

Örnek
Şöyle yaparız.
10.0.0.1 chassisOne
Örnek
Şöyle yaparız
10.0.0.1 facebook.com
10.0.0.2 google.com
localhost Satırı
localhost bir Doman Name'i temsil eder. IP adresi değildir
Örnek
localhost hem IPv4 hem de Ipv6 için olabilir. Şöyle yaparız
127.0.0.1    localhost
::1          localhost
Örnek
Benim sisteminde şöyle
127.0.0.1 localhost
127.0.1.1 acelya
Eğer localhost tanımlı değilse şu hatayı alırız.
Error resolving 'localhost': Name or service not known.
Örnek
Şöyle yaparız
127.0.0.1       localhost
127.0.1.1       yourhostname

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Kendi Makinem İçin localhost Dışında Bir Satır Daha
Eğer localhost kelimesi dışında başka bir ismi daha 127.0.0.1 olarak çözmek istersek yeni bir satır daha eklerim. Şöyle yaparız.
127.0.0.1 thehostnametoresolvetolocalhost
dışarıya erişimi engellemek
Bazı sistemlerde şöyle satırlar var. Ancak bu yöntem çok iyi bir çözüm değil.
127.0.0.1 websiteiwanttoblock.com
127.0.0.1 anotherone.com
...
etc/hosts Dosyası  ve libc İlişkisi
Açıklaması şöyle
libc (in ways that differ in different operating systems) uses /etc/hosts to override hostname lookups. this can sometimes be useful when testing things but often i just forget stuff in there...
Bu dosyada bir şey unutulması artık DNS kullanılmadığı için eğer karşı sunucun adresi değişirse sıkıntı yaratabilir.

Örnek
GitHub sunucusunun adresini değişmesi. Açıklaması şöyle.
192.30.253.113 is a github address, since they own 192.30.252.0/22. you can run whois 192.30.253.113 to confirm. it's likely that that was a valid server address for github.com at some point, but was decommissioned at a few days ago. i can't even ping it. they'll have removed it from their dns servers, but since it's hardcoded in your laptop's /etc/hosts it's oblivious to that change!
getaddrinfo metodu
getaddrinfo metodu libc'nin bir parçasıdır. Açıklaması şöyle.
The getaddrinfo(3) function, which is the only standard name resolving interface will just open and read /etc/hosts each time it is called to resolve a hostname.
Örnek
Dosyanın hep okunduğunu görmek için şöyle yaparız.
strace -e trace=file wget -O /dev/null http://www.google.com http://www.facebook.com 
  http://unix.stackexchange.com 2>&1 | grep hosts
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 5
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4

Hiç yorum yok:

Yorum Gönder