我刚刚安装了新的 debian 10.4.0-amd64-standard。
我将网络接口 ip 配置为静态 (eth0):
iface eth0 inet static
address 10.1.1.41/24
gateway 10.1.1.1
dns-nameservers 10.1.1.20
但是当我输入时,ip addr
我在同一接口上得到两个 IP 地址。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:01:0a:09 brd ff:ff:ff:ff:ff:ff
inet 10.1.1.103/24 brd 10.1.1.255 scope global dynamic eth0
valid_lft 549236sec preferred_lft 549236sec
inet 10.1.1.41/24 brd 10.1.1.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe01:a09/64 scope link
valid_lft forever preferred_lft forever
我需要做什么才能摆脱 DHCP IP“10.1.1.103”?
根据要求输出ps aux | grep dhcp
:
root 381 0.0 0.2 9488 5736 ? Ss Aug12 0:00 /sbin/dhclient -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
root 12551 0.0 0.0 6076 828 pts/0 S+ 07:43 0:00 grep dhcp
禁用 dhcp 服务后。当我输入ifup eth0
:
sudo ifup eth0
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:15:5d:01:0a:09
Sending on LPF/eth0/00:15:5d:01:0a:09
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 10.1.1.103 from 10.1.1.20
DHCPREQUEST for 10.1.1.103 on eth0 to 255.255.255.255 port 67
DHCPACK of 10.1.1.103 from 10.1.1.20
bound to 10.1.1.103 -- renewal in 1523 seconds.
看起来它仍在请求 dhcp 获取 ip。
答案1
我刚刚在 5 台 Mac Mini 上全新安装 Debian 11 时也遇到了这个问题,并想分享我的发现。深入研究后/var/log/syslog
,我注意到它connmand
正在启动我的以太网并请求 DHCP。大约 5 秒后,又dhclient
做了同样的事情。
这导致我的机器被分配了两个 IP 地址。我删除了connman
软件包,重新启动,一切都很顺利,现在只提取了一个 DHCP 请求。
答案2
最有可能的是,您的网络管理器仍在运行:额外的你的ip地址以太网0接口获取只能来自 DHCP 请求(也可以通过存在dhclient在输出中辅助键)。
禁用它即可,
sudo systemctl disable network-manager
并重新启动以检查现在您确实获得了一个 IP 地址。
答案3
最近遇到同样的问题:
systemd
您可以这样解决:
您不需要添加/修改文件/etc/network/interfaces
来设置IP
mv /etc/systemd/network/99-dhcp.network /etc/systemd/network/99-static.network
编辑重命名的文件:
内部替换[network]
部分从DHCP
到:
[NETWORK]
Address=xxx.xxx.xxx.xxx/yy
Gateway=xxx.xxx.xxx.xxx
DNS=xxx.xxx.xxx.xxx.xxx
(以防万一,请检查该[MATCH]
部分是否有正确的表达式来匹配您的 iface 名称,例如Name=e*
:)
然后重新启动
答案4
我刚刚找到了一个解决方案,并将分享一个关于我认为正在发生的事情的理论。
至少在我的系统上,该接口看起来是从 NetworkManager 分配的连接,/etc/网络/接口。我正在深入研究 NetworkManager 手册页和 NetworkManager.conf(5) 部分IFUPDOWN 部分,它说如果管理变量设置为错误的,“NetworkManager 将忽略 /etc/network/interfaces 中列出的任何接口。”
当我设置管理到真的,两个连接中的第一个消失了(重新启动网络后),留下了我在其中定义的唯一定义的连接/etc/网络/接口。
我犹豫是否要进一步推测,因为我经常误解我认为的线索,但我无法控制自己。
我的目标是拥有一个静态 IP 地址,我在/etc/网络/接口,但是调用IP地址始终显示 DHCP 定义的地址。我安装了isc-dhcp-客户端并不断尝试获取静态地址,直到我注意到(谁知道多久)列出了多个 IP 地址,其中一个是我在/etc/网络/接口。这与 NetworkManager.conf(5) 相矛盾,后者表示如果管理被设定为错误的。也许安装 DHCP 客户端会覆盖 NetworkManager。