Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在debian linux上更改和同步主机名/ip地址更改_Linux_Debian_Ip Address_Hostname - Fatal编程技术网

在debian linux上更改和同步主机名/ip地址更改

在debian linux上更改和同步主机名/ip地址更改,linux,debian,ip-address,hostname,Linux,Debian,Ip Address,Hostname,为了更改静态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> auto-lo iface l

为了更改静态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>
auto-lo
iface lo inet环回
允许热插拔eth0
iface eth0 inet静态
住址
网络掩码
网关
dns名称服务器
然后执行
ifdown eth0和&ifup eth0

要更改主机名,我执行以下操作

执行
hostname

/etc/hostname
的内容设置为

/etc/hosts
中的
替换为

问题

ip地址和主机名更改都不会生效

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

如果我更改主机名并ping新主机名,它将无法解析为ip

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

我重新启动了机器,它仍然以同样的方式运行

我错过了什么

家长网络在这方面能发挥作用吗


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

我认为这实际上不是问题,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
该脚本不是我的,我已经报告了我通常运行的唯一脚本,该脚本最初取自这个很好的示例:


我希望这在某种程度上有所帮助。

更改/etc/hostname会影响更改终端上显示的主机名、欢迎消息、日志中的主机名以及系统使用的任何其他主机名。这些都是虚荣的改变

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


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

yeah resolv.conf用于DNS。它处理名字和任何与互联网有关的东西。比如平。无论您是否有服务器,都可以在本地解析dns,因此主机名/ect主机也可以处理dns。当您连接时,您的resolv.conf将从您的isp更新,或者您可以手动更改它/在桥接接口上设置一些更动态的东西

您是否更新了您的resolv.conf?resolv.conf是否用于dns服务器更改?在我的情况下,我不会改变它们。正如你说的“替换为in/etc/hosts”,但是你已经用/etc/hosts中的新ip替换了旧ip谢谢你指出缺少的步骤。但即使在改变之后,它仍然是一样的。不起作用。