admin管理员组文章数量:1565826
2024年7月31日发(作者:)
彻底解决linux系统有ipv6地址但不能用的问题
问题背景
最近在做的项目需要使用google仓库里的镜像,所以需要用到
ipv6来拉取镜像。
我使用的是vmware虚拟机上的ubuntu16.04 linux系统,在用
桥接模式连上校园网之后,可以看到虚拟机被分配了ipv6地址,但是
用ping6 来测试始终都ping不通,在我花了两天
尝试了网上说的几乎所有的方法都没有成功之后,我决定彻底了解一
下linux的网络配置,再来解决问题。
linux网络配置详解
关于这一点,我参考了这篇文章:
Ubuntu的网络配置详解
当然在实际做的过程发现了和文章的一些出入,以下我简短的总
结一下几个需要用到的文件:
/etc/hosts
/etc/
/etc/network/interfaces
/etc/
1. /etc/hosts
2. 该文件默认内容如下:
127.0.0.1 localhost127.0.1.1 ubuntu#The following lines are
desirable for IPv6 capable hosts::1 ip6-localhost ip6-
loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-
allnodesff02::2 ip6-allrouters
•
1
•
2
•
3
•
4
•
5
•
6
•
7
•
8
这个文件主要功能是域名解析时使用的,如果你对域名解析不熟
悉,可以这么理解:
你在浏览器里输入网址的时候输入的是类似于
之类的域名,但是实际上寻址是靠ip地址寻址,所以就需要一个解析
器,将与该网站服务器的ip对应起来,这就叫域名
解析。 linux下域名解析有两种途径,一种叫本地解析,就是利用这个
文件里的内容解析,另一种叫dns解析,是在dns服务器中查询ip。
该文件会将右边的域名,对应到左边的ip地址上去,可以看到默
认情况下,localhost对应的域名为127.0.0.1,ubuntu(该域名为主
机名,可以在/etc/hostname中更改)对应的域名为127.0.1.1
而下面几行对应的是ipv6的域名解析。
注意:网上很多教程提到用改hosts文件的方式来获取ip,我个
人是不太建议这种方式的,因为很多情况下你以为ipv6一切正常,但
其实根本没有连接到dns服务器上,只是hosts文件列的比较全而已
2. /etc/
3. 该文件用来指定域名的解析顺序,上文提到域名解析有两种方
式,该文件默认规定域名解析时现从hosts文件找,找不到在到dns
服务器上找。一般不建议修改该文件
4. /etc/network/interfaces
5. 这是最重要的文件,大部分的修改都是在这里进行。
6. 该文件是确定每个网络的IP类型,IP地址,子网掩码,网关IP,
广播地址,MAC物理地址等信息,具体的设置方式网上有很多讲解,就
不在此展开
7. 我个人一般是用dhcp方式(动态获取)获取所有的信息
8. 我的interfaces文件如下:
auto loiface lo inet loopbackauto ens33iface ens33 inet
dhcpiface ens33 inet6 dhcp
•
1
•
2
•
3
•
4
•
5
•
6
auto关键字指明接下来配置的网卡,一般前两行都是本地网络循
环,不用修改,下面的ens33是我的以太网网络接口(可以用
ifconfig指令查到),
iface关键字后指明网卡名称,然后就可以对该网络进行配置,无
论是ipv4还是ipv6我都设置成了dhcp(动态获取Ip)方式。
4. /etc/
5. 该文件也是经常容易出问题的文件,如果你一开始配置的好好
的,重启网卡,或者重启计算机后网络就出问题了,很有可能就和这
个文件有关。
6. 该文件是用来配置dns服务器ip地址信息的文件,配置方式什
么的我推荐的那篇文章里就有讲到,不再赘述,需要注意的是该文件
不建议手动修改,因为该文件会根据所在的网络环境,自动更新,覆
盖你的手动配置,所以说如果需要手动配置dns服务器,在配置
/etc/network/interfaces时就可以配置好。
有了上述相关知识,再解决问题就会容易很多。
查找问题
首先我的虚拟机是存在ipv6的地址的,而且我用主机ping是能
够成功ping通Ipv6的服务器的,我怀疑是虚拟机的dns服务器没有
配置好的问题,我尝试找到了的Ipv6地址:
2404:6800:4008:800::200e,用虚拟机直接ping这个Ip是能够成功
的,这样就锁定了是dns域名解析的问题。
但是在修改/etc/network/interfaces来手动设置dns服务器的过
程中发现不管怎么改,网络状态都没变,后来我甚至将ipv6从dhcp
方式改成手动配置方式来配置,同样没有用,经过查询才知道linux系
统的两种网络配置方式。
linux系统的两种网络配置方式
1.系统文件配置
2.利用Network Manager等第三方可视化应用配置
系统文件配置已经介绍的足够多了,除了手动配置之外,linux系
统的网络配置还可以靠可视化的第三方软件来配置。
根据网上的说法,系统默认会使用Nerwork Manager等应用的
配置,但是一旦/etc/network/interfaces等文件遭到修改就会根据系
统文件配置来配置网络,但是从我目前的状况来看,很显然系统的网
络配置不是从我修改的文件来配置的,所以我先关闭了network
manager。
/etc/init.d/network-manager stop
网上说此时查看其配
可
置
以
文
看
件
到/etc/NetworkManager/
managed=false,但显然我的nm的配置文件并没有受刚才的指令影
响,于是我手动修改了该配置文件。同时将/etc/network/interfaces
里的配置都改回dhcp方式,重启虚拟机运行。
问题完美解决。
版权声明:本文标题:彻底解决linux系统有ipv6地址但不能用的问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1722404911a931263.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论