繁体   English   中英

在Debian Linux上更改并同步主机名/ IP地址更改

[英]Change and sync hostname / ip address changes on debian linux

为了更改静态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>

/etc/hosts <oldname>替换为<newname>

问题

ip地址和主机名更改均无效。

如果更改ip地址并ping主机名,它仍然解析为旧地址

如果更改主机名并ping新的主机名,则无法解析为IP

如果更改主机名并ping旧主机名,它仍然可用并解析了当前IP地址。

我重新启动计算机,但其行为仍然相同。

我想念什么?

父网络可以在其中发挥任何作用吗?

另请注意,我的机器认为主机名在更改后已更新。

是的resolv.conf适用于dns。 可以处理NAMES以及与互联网相关的所有内容。 如ping。 dns resolvc在本地天气是否具有服务器,因此也可以处理dns的主机名/ ect主机。 当您连接时,您的resolv.conf将从您的isp更新,或者您可以手动更改它/在桥接接口上设置一些更动态的东西

我认为这实际上不是问题,可以通过arp缓存来解释此行为。

ARP工具可操纵或显示内核的IPv4网络邻居,并且还以某种方式包括您的主机。

arp命令具有许多您可以使用的开关,例如,以下命令:

arp -n 

此命令打印出arp缓存条目列表。

不幸的是没有命令刷新它,因此,您有2个选项。

选项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/

我希望这会有所帮助。

更改/ etc / hostname会影响更改显示在终端,欢迎消息,日志中以及系统使用hostname其他任何位置的hostname 这些都是虚荣的变化。

更改/ etc / hosts将更改您的本地主机名解析(即,将IP地址转换为主机名,反之亦然),任何DNS无法解析或您要在本地覆盖的内容。 默认情况下,本地文件将覆盖网络分辨率。 这是在/ etc / nsswitch中确定的,它说先使用本地文件,然后使用dns进行主机解析。

这里要记住的重要一点是,这些更改不会影响网络上其他对象如何确定此主机的ip地址或名称,这当然是通过DNS或它们本地的/ etc / hosts文件处理的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM