为什么我的私有 IP 不在允许的范围内?

为什么我的私有 IP 不在允许的范围内?

我的 Vagrantfile

 config.vm.network :private_network, ip: "172.16.0.22"
  config.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--cpus", 2]
      v.customize ["modifyvm", :id, "--memory", 2048]
      v.customize ['modifyvm', :id, '--nicpromisc1', 'allow-all']

vangrant up 之后

The IP address configured for the host-only network is not within the
allowed ranges. Please update the address used to be within the allowed
ranges and run the command again.

  Address: 172.16.0.22
  Ranges: 10.0.0.0/8, 192.168.0.0/16, 2001::/64

据我了解,172.16.xx 是私有 IP。我的 wlo1

wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c8:94:32:93:05:p2 brd ff:ff:ff:ff:ff:ff
    altname wlp3s0
    inet 192.168.1.19/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
       valid_lft 3068sec preferred_lft 3068sec

我更改了 network.conf 文件,通过添加 172.16.0.0 cat /etc/vbox/networks.conf

* 10.0.0.0/8 192.168.0.0/16 172.16.0.0
* 2001::/64

同样的问题仍然存在。

为什么IP不在网络范围之内?

答案1

因此,按照 OP 的说法,vagrant 显然根据文件确定哪些 IP 子网块可用于仅主机网络/etc/vbox/networks.conf

IP 子网仅在带有子网掩码或前缀长度(它们在不同的表示形式中本质上是同一件事)时才有效,因为它表示子网的大小。地址/子网 ID 等172.16.0.0仅表示块的“起点”,否则被视为单个任意主机地址。

因此,如果您想允许整个172.16.0.0/12块在 RFC 中定义,请将其(整个内容)放入 conf 文件中。(或者,如果必要和/或需要,我确信您可以只允许部分块,只要您具有有效的子网 ID 和前缀长度组合即可。我不会在这里讲述子网划分 101 的完整故事。)

相关内容