要更改静态IP地址,我将/etc/network/interfaces
的内容设置为
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address <newaddress>
netmask <netmask>
gateway <gateway>
dns-nameservers <dns1> <dns2>
然后执行ifdown eth0 && ifup eth0
要更改主机名,请执行以下操作
执行hostname <newname>
将/etc/hostname
的内容设置为<newname>
将<oldname>
替换为<newname>
/etc/hosts
问题
IP地址和主机名更改都不会生效。
如果我更改了ip地址并ping了主机名,它仍然会解析为oldaddress
如果我更改主机名并ping新主机名,则无法解析为ip
如果我更改主机名并ping旧主机名,它仍然可用并解析当前的IP地址。
我重新启动机器,它的行为方式仍然相同。
我错过了什么?
父网络可以扮演这个角色吗?
另请注意,我的机器认为更改主机名后会更新主机名。
答案 0 :(得分:0)
我认为这实际上不是问题,这种行为可以通过arp缓存来解释。
ARP工具操纵或显示内核的IPv4网络邻居,这也包括你的主机。
arp命令有许多可以处理的开关,例如,以下命令:
arp -n
此命令打印出arp缓存条目列表。
不幸的是没有命令刷新它,因此你有两个选择。
选项1:您等待缓存更新(不会花费很长时间)
选项2:您运行以下非常基本的脚本,您会看到:
#!/bin/sh
for i in `awk -F ' ' '{ if ( $1 ~ /[0-9{1,3}].[0-9{1,3}].[0-9{1,3}].[0-9{1,3}]/ ) print $1 }' /proc/net/arp` ;
do
arp -d $i
done
脚本不是我的,我已经报道了我通常运行的那个最初来自这个做得很好的例子:
http://www.lainoox.com/display-add-flush-arpcache-linux-arp/
我希望这会有所帮助。
答案 1 :(得分:0)
更改/ etc / hostname会影响更改终端上显示的主机名,欢迎消息,日志以及系统使用的任何其他位置hostname
。这些都是虚荣的变化。
Channging / etc / hosts将更改您的本地主机名解析(即将IP地址转换为主机名,反之亦然)任何DNS不会解析或您想在本地覆盖的任何内容。默认情况下,本地文件会覆盖网络分辨率。这是在/ etc / nsswitch中确定的,它首先使用本地文件,然后使用dns进行主机解析。
这里要记住的重要一点是,这些更改不会影响网络上的如何决定该主机的IP地址或名称,当然这是通过DNS或其本地处理的/ etc / hosts文件。
答案 2 :(得分:0)
是的,resolv.conf适用于dns。就像处理NAMES和任何与互联网有关的事情一样。比如ping。 dns resolvc本地天气你有服务器或没有因此主机名/ ect主机也处理DNS。你的resolv.conf将在你连接时从你的isp更新,或者你可以手动更改它/在桥接接口上设置更动态的东西