我有一个/etc/network/interfaces文件(在一个16.04框中),看起来如下:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.88.50
netmask 255.255.255.0
gateway 192.168.88.1
dns-nameservers 192.168.88.1
dns-domain mynet.lan您可能期望这会导致eth0产生指定的IP。这是不可能的。在引导过程中,我看到一条线上写着:
IP-Config: eth0 hardware address e0:db:55:0c:34:7e mtu 1500 DHCP
然后,通过本地..and服务器提供一个非常有用的地址来提供接口。
更麻烦的是,这条in行仅显示在引导期间,并且在我的任何日志文件中都不可见。
什么是IP,为什么它会踩在我的interfaces文件上,在哪里可以配置它呢?
伪地址(在我的例子中是192.168.88.222)只在引导期间创建,在if*脚本到达之前创建。ip addr显示错误的地址(从DHCP收集)直接在正确的地址之上(该地址标记为“次要”)。
if*命令之前将其分配给NIC,从而在同一个NIC.上产生两个地址。
如果我沿着接口,ip address会显示仍然与NIC相关联的伪地址。如果我发出一个ip address flush eth0,伪造的地址就会被删除,并且不会在随后的接口重新启动时返回--但是当系统重新启动时它会返回。
发布于 2017-08-24 23:58:10
我终于找到了导致这一切的原因。不是通过在某个地方找到指向它的隐藏指针,而是通过为DHCP设置对我的整个文件系统进行打招呼:grep -ri 'dhcp' /。几乎可以肯定还有更好的方法。但无论如何:
以前试图在这台机器上玩ISCSI网络引导的尝试导致创建了一个/run/network/dynamic-interfaces文件,该文件似乎使用了与/etc/network/interfaces相同的语法。可以肯定的是,这是一条让机器将eth0作为DHCP的命令,而且由于这是在initramfs的上下文中发生的,所以在iftools获得机会之前,它就把接口带到了网上。
这个文件是Ubuntu服务器上标准的cloud-initramfs-dyn-netconf包的一部分。您不想卸载它,因为它是ubuntu-server元打包的一部分(如果卸载,升级可能会在将来失败)
在清除文件和重新启动之后,NIC按照通常的预期由interfaces文件控制。
发布于 2017-08-15 13:16:19
我相信正确的措辞是静态的,而不是手动的。此外,您是否确定您所选择的地址( 192.168.88.50 )超出了路由器中用于DHCP的地址范围,以避免冲突?也许x.50已经在使用或预订了。
在确定路由器中的DHCP池后,我建议您将文件修改为:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.88.zz
netmask 255.255.255.0
gateway 192.168.88.1
dns-nameservers 192.168.88.1
dns-domain mynet.lan...where zz是DHCP池之外的地址。
重新启动接口:
sudo ifdown eth0 && sudo ifup -v eth0用于详细的-v应该产生输出,告诉我们连接是否成功。
你收到要求的地址了吗?
ifconfighttps://askubuntu.com/questions/946332
复制相似问题