每次我用静态 IP 地址配置 Debian 或 Centos 机器时,我都会忘记不考虑 IPV4 配置的行为。然后,我第 1000 次搜索要输入的参数sysctl.conf
以禁用 IPV6,最后我重新启动了野兽。
举个例子来说明:
Linux deb-router 3.2.0-4-amd64 #1 SMP Debian 3.2.81-2 x86_64 GNU/Linux
它有2个接口; eth0 在 IPV4 中配置了一段时间(可能是 1 年)。
ETH1 在我的物理网络上桥接,并由 IPV4 中的 DHCP 寻址。我通过这个接口与虚拟机对话。
今晚我失去了互联网网关;该设备也是我的 DHCP 服务器。
我意识到我无法再访问我的虚拟机,因此我检查ifconfig
并看到了一个不错的 IPV6,而不是绑定到 ETH1 的旧 IPV4。
所以,行动吧!
$ sudo vim /etc/network/interfaces
allow-hotplug eth1
# was dhcp before
iface eth1 inet static
address 192.168.0.15
netmask 255.255.255.0
$ sudo ifdown eth1 && sudo ifup eth1
欺骗:(
ifconfig
仅输出 ipv6;我无法访问我的虚拟机。我必须禁用 IPV6 ( net.ipv6.conf.eth1.disable_ipv6 = 1
),然后重新启动才能恢复连接。
我不明白这种偏爱 IPV6 而不是 IPV4 的选择:据我所知,大多数人都在使用 IPV4。
影响人们采用 IPV6 是技术原因还是政治原因?
答案1
不是ipv6的问题!auto eth1
为了让ifup eth1
工作正常进行,您在 /etc/network/interfaces 中缺少一行。
您在 ifconfig 输出中看到 ipv6 的原因是您的服务器根本没有 ipv4,因为 - 正如您所说 - 您的 dhcp 服务器出现故障。
ip
ifconfig
是一个比(在 Linux 机器上)更有用的工具:
ip -4 address
...仅显示 v4 地址
ip -6 address
...仅显示 v6 地址