• 陪伴互联网运营小白共同探索成长,与IT爱好者共享探索乐趣
  • 建站只为分享,欢迎在PC端文章面打赏支持
  • 使用Ctrl+D 可收藏本站

解决Linux Debian9 无法获取ipv6地址

好玩有趣 陆子方 5年前 (2019-07-18) 5360次浏览 0个评论 扫描二维码
文章目录[隐藏]

手上有台小内存的纯ipv6 vps,考虑到内存不是很大,一直想换成32位的Debian操作系统。为了最小化安装,采取了网络重装的方式,也很方便。随后就遇到了麻烦,发现无法进行ssh连接。

一、检查镜像

按理说,网络重装下载的是原始的镜像,不太可能出现问题。但在实际的使用过程当中,当我直接应用镜像安装时,是可以直接获取到IP v6地址的。于是,我手动挂挂载了厂商的镜像,通过vnc进行了手动安装,但还是没能获取到ipv6。

除了直接使用厂商的镜像安装之外,通过网络安装,我还选择了手动模式,可见这不是安装镜像的问题。

二、检查配置

一开始我觉得是没有获取到IP地址的问题,所以我将IP地址设置为固定ip。
cd /etc/network && sudo cp interfaces interfaces.old
nano interfaces
auto ens18
iface ens18 inet static
address 厂商给的ipv6地址
netmask 255.255.255.0(对应修改)
gateway 192.168.0.1(对应修改)

but,还是无法正常访问。.随后我将系统还原为厂商镜像,在正常访问的镜像系统中,我查看了网络设置:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens18
iface ens18 inet dhcp

这就十分让人费解了,因为这个配置嗯跟网络进行安装是一模一样的,所以还是在其他地方需要设置一下。

三、解决问题

1、执行如下命令,查看当前云服务器是否启用IPv6。
ip addr

如果没有开启IPv6协议栈,则只能看到IPv4地址,如果已开启IPv6协议栈,则可以看到LLA地址(fe80开头)有inet6字样开头

2、开启Linux虚拟机IPv6协议栈。
确认内核是否支持IPv6协议栈,执行如下命令
sysctl –a | grep ipv6

如果没有任何输出,说明内核不支持ipv6协议栈,需要先加载IPv6模块
modprobe ipv6

修改/etc/sysctl.conf配置文件,增加如下配置:
net.ipv6.conf.all.disable_ipv6=0

保存配置并退出,然后执行如下命令,加载配置
sysctl –p

其实大部分的公共镜像都已经开启了

划重点划重点!!

编辑 /etc/network/interfaces 文件,使之包含以下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
pre-up sleep 3

如果有多个网卡,则在/etc/network/interfaces文件中,增加对应网卡的配置,以eth1为例,需要增加:
auto eth1
iface eth1 inet dhcp
iface eth1 inet6 dhcp
pre-up sleep 3

重启网络后,就发现正常了!!注意不是所有的网卡都是eth开头,比如我的是ens18,注意做好修改。


子方有料原创丨转载请注明原文链接
期待您的评论或捐赠,这是最好的鼓励和支持!
喜欢 (7)
[赞赏使我快乐]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到