当我将网络从 dhcp 更改为静态时,它会定期将 IP 更改为 dhcp 配置并忽略 /etc/network/interface 的配置。
所以我想删除 dhcp-client,但是当我在 Ubuntu 中删除它时,我遇到了这个问题。你能帮我吗?
$ sudo apt-get remove dhcp-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
**Virtual packages like 'dhcp-client' can't be removed**
0 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.
这是我的接口文件内容:
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 10.0.0.7
netmask 255.255.255.0
gateway 10.0.0.1
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto
答案1
我从来没有遇到过 Ubuntu 出现这种情况,所以这只是一个大胆的猜测:它可能与“网络管理器”有关。
至于删除 dhcp-client:
您正在尝试删除虚拟包。虚拟包实际上并不存在,它们只是由某些包提供,以声明它们提供类似的服务/功能(另请参阅Debian 政策手册)。IIRC ubuntu 安装的默认 dhcp-client 包是“isc-dhcp-client”,但无论你的系统上安装了哪一个,你都可能很难干净地删除它,因为相当多的其他包依赖于它的安装。
答案2
您可能在重新配置接口之前没有将其关闭,因此仍有 DHCP 客户端在后台运行,试图维护 DHCP IP。使用 进行检查ps -eF | grep dhclient
并终止该进程。
如果您确实想要卸载 DHCP 客户端(您不需要这样做),那么您需要删除该dhcp3-client
软件包。
答案3
您需要完全删除 isc-dhcp-client。如果在 isc-dhcp-client 和/etc/network/interfaces
文件中都配置了 DNS 服务器地址,则客户端配置中的地址始终优先,并且将被写入/etc/resolv.conf
。如果您希望将 中的 dns-servers 设置/etc/network/interfaces
写入,/etc/resolv.conf
则必须完全删除 isc-dhcp-client。
该apt-get --purge remove isc-dhcp-client isc-dhcp-common
命令将执行此操作。如果此操作无效,请查找并删除以下两个文件:
/run/resolvconf/interface/eth0.dhclient
和/run/resolvconf/interface/original.resolvconf
答案4
我遇到了同样的问题。我不太科学的测试找到了这个解决方案。将网络和广播也放入接口配置中。像这样:
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 10.0.0.7
network 10.0.0.0
broadcast 10.0.0.255
netmask 255.255.255.0
gateway 10.0.0.1
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto