/etc/hostname 和 /etc/hosts 详解
Contents
/etc/hostname
它表示的是在LAN(局域网)内的唯一主机名.
➜ ~ cat /etc/hostname
yang
➜ ~
作用:
1. 在局域网内,本机或者其他在同一局域网内的计算机,可以直接通过hostname.local
可找到主机.比如:
➜ ~ ping yang.local
PING yang.local (10.0.0.105) 56(84) bytes of data.
64 bytes from 10.0.0.105: icmp_seq=1 ttl=64 time=0.010 ms
64 bytes from 10.0.0.105: icmp_seq=2 ttl=64 time=0.018 ms
^C
--- yang.local ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.010/0.014/0.018/0.004 ms
➜ ~
➜ ~ ping yang
PING yang (127.0.1.1) 56(84) bytes of data.
64 bytes from yang (127.0.1.1): icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from yang (127.0.1.1): icmp_seq=2 ttl=64 time=0.019 ms
^C
--- yang ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.017/0.018/0.019/0.001 ms
➜ ~
其他PC,可以通过ping yang.local
来定位你的主机(同一局域网内),但ping yang
则只能本机使用.
有些linux程序,它要求权限是认证过的
hostname
,如果随意改为了其他hostname
,有些程序可能使用不了,而报类似以下错误:unable to resolve host (none) No protocol specified
有些应用程序,会以
hostname
作为提示语.比如bash
/ect/hosts
这个是域名查找系统(DNS),只不过,它只是本地查找的,在本地建立一个ip <-> name
的对应关系。
“DNS劫持”原理,就相当于修改这个文件,只是网络上的DNS范围比较大,而本地的这个/etc/hosts
只是对本机生效,真正的DNS如果进行修改的话,就是对所有DNS服务器设置为该服务器的所有PC生效。
计算机的寻址:应用 -> 应用缓存 -> hosts -> DNS -> 目的PC
而修改hostname,只是对局域网寻址生效,而且hostname在一局域网里,应该是唯一的。 hosts,只是类似一个本地的DNS映射数据库.