使用 ubuntu 22.04,我尝试将两个 IP 地址192.168.200.100
和分配169.254.1.0
给以太网设备enx00e04c680202
。以下本教程和这个答案/etc/netplan/01-network-config_home.yaml
我创建了一个包含以下内容的文件:
network:
version: 2
renderer: NetworkManager
ethernets:
enx00e04c680202:
addresses:
- 192.168.200.100/24
- 169.254.1.100/24
routes:
- to: default
via: 192.168.200.220
nameservers:
addresses:
- 8.8.8.8 # Add your DNS server IP address
- 8.8.4.4 # Add another DNS server IP address
并使用命令应用更改
sudo netplan apply
我使用命令检查了配置ip address show dev enx00e04c680202
,但似乎只应用了一个地址:
3: enx00e04c680202: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:e0:4c:68:02:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.100/24 brd 192.168.200.255 scope global noprefixroute enx00e04c680202
valid_lft forever preferred_lft forever
但其他配置的地址似乎有效!即使它没有显示命令
ip address show dev enx00e04c680202
我能够连接到 IP 地址为 169.254.1.0 的设备,该设备仅连接到该以太网适配器。
enx00e04c680202
当我使用以下命令向该适配器添加 IP 地址时
sudo ip addr add 169.254.1.100/24 dev enx00e04c680202
然后我看到该命令的以下输出ip address show dev enx00e04c680202
:
3: enx00e04c680202: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:e0:4c:68:02:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.100/24 brd 192.168.200.255 scope global noprefixroute enx00e04c680202
valid_lft forever preferred_lft forever
inet 169.254.1.100/24 scope global enx00e04c680202
valid_lft forever preferred_lft forever
它显示两个 IP 地址,而不是一个。这可能是一个错误ip address show
?
答案1
您正在尝试静态分配地址169.254.1.100/24
。169.254.0.0/16
地址空间为 IPv4 自动配置保留。看来 NetworkManager 拒绝允许您静态分配此范围内的 IP 地址。您可以使用该指令启用此范围内的地址link-local
,例如:
enx00e04c680202:
addresses:
- 192.168.200.100/24
routes:
- to: default
via: 192.168.200.220
metric: 200
link-local: [ ipv4, ipv6 ]
看https://netplan.readthedocs.io/en/stable/netplan-yaml/#properties-for-all-device-types以获得 的解释link-local
。