![Ubuntu 18.04 最小服务器有两个 IP 地址!](https://linux22.com/image/903383/Ubuntu%2018.04%20%E6%9C%80%E5%B0%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9C%89%E4%B8%A4%E4%B8%AA%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%81.png)
我在 Odroid XU4 上看到两个不同的 IP 地址。我在盒子上设置了 Unifi 控制器后才注意到这一点,但随后尝试通过 ssh 成功进入这两个地址。我只想要 192.168.2.3,不需要 IPv6。
mike@odroid:~$ ip addr show
1: lo: 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: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1e:06:30:1e:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.3/24 brd 192.168.2.255 scope global dynamic noprefixroute eth0
valid_lft 3069558340sec preferred_lft 3069558340sec
inet 192.168.2.9/24 brd 192.168.2.255 scope global secondary eth0
valid_lft forever preferred_lft forever
mike@odroid:~$ ifconfig
eth0: flags=4163 mtu 1500
inet 192.168.2.3 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:1e:06:30:1e:f5 txqueuelen 1000 (Ethernet)
RX packets 12821 bytes 2393432 (2.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13336 bytes 9323830 (9.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 10593 bytes 4855090 (4.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10593 bytes 4855090 (4.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我们在这里可以看到,eth0 有两个 IP 地址,并且只通过命令显示ip
,而不是通过ifconfig
。我无法理解这是从哪里来的,或者如何永久禁用第二个 IP。我想永久摆脱第二个 IP 地址。
mike@odroid:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
mike@odroid:~$ cat /etc/netplan/*.yaml
cat: '/etc/netplan/*.yaml': No such file or directory
答案1
我也曾为这个完全相同的问题而苦苦挣扎,每次搜索都会发现还有其他几个人遇到同样的问题,但没有得到解决。
最后,以下是为我解决问题的方法:
ip addr flush dev <your_adapter_id>
对我来说
ip addr flush dev enp0s4
这将终止辅助 IP。
答案2
我正在运行 20.04 LTS 并且遇到了这个问题。当我用笔记本电脑打开网络并且虚拟机(ubuntu)获得新的 ip 时发生了这种情况。
运行以下命令删除第二个 IP 分配并应用正确的设置:
sudo netplan apply
请记住,我已经在 /etc/netplan/01-netcfg.yaml 中为网卡设置了静态 IP。
答案3
升级后,我在 Ubuntu 22.04.2 上遇到了同样的问题。/etc/netplan/50-cloud-init.yaml 文件过去包含静态配置,但现在 dhcp4 设置为 TRUE:
dhcp4: true
将其更改为
dhcp4: false
并且应用后,多余的 DHCP 地址就消失了。
答案4
在我的例子中,尽管在 netplan 中设置了静态 ip,并且禁用了 NetworkManager,但/etc/init.d
各种链接触发的dhcpcd 脚本仍导致运行 dhcpcd 进程。您可以通过查找 DHCP 客户端进程来检查是否属于这种情况。然后,您可以禁用此服务,例如通过从中删除访问权限或按此处所述将“denyinterfaces name”添加到您的:/etc/rcX.d/*
/etc/network/interfaces
ps -A
x
/etc/init.d/dhcpcd
dhcpcd.conf
https://serverfault.com/a/1094181/1024693