title: 给linux网卡上ipv6
author: lenfrex
cover: https://oss-img.ciduid.top/blog/covers/cover(15).png
tags:
  - ipv6
  - 折腾
  - 网络
  - 服务器
categories:
  - 折腾
date: 2022-03-20 21:26:00
---
按照阿里云官网的文档ipv6分配地址并且开通ipv6公网带宽之后，在我本地这里去ping服务器的ipv6地址ping通了，而且延迟比ipv4地址短了将近一半；

有意思的是，当我从服务器ping服务器自己的ipv6地址时，却ping不通，提示`Destination unreachable: Address unreachable`

奇怪了，我的服务器类型是支持ipv6的，而且公网能ping通，偏偏自己ping不通自己...没道理呀...

ipv6本地回环倒是没问题，ping其他纯ipv6网站也是长时间没结果

去问阿里云客服，给的回复是防火墙icmp没开放，去开了之后也是一样的结果。

在阿里云官方的[这个文档](https://help.aliyun.com/document_detail/187463.html)，图里eth0网卡中有两个ipv6地址，一个对应的应该是私有地址，一个是公有地址，人家分配的公网地址和其中一个地址是对应的，但是我这只有本地的私有地址，刚刚分配到的地址不见显示。

![](https://oss-img.ciduid.top/aether/Snipaste_2022-03-20_22-21-45.png)

按照一些教程的说法，编辑`/etc/network/interfaces`，还有去`/etc/sysctl.conf`把ipv6给开了，但是都没用。

后来搜索`ubuntu ipv6 eth0`，找到了[这篇文章](https://www.cnblogs.com/shipfi/archive/2008/01/29/1057950.html)，手动把ipv6地址给挂上了网卡，命令如下（root权限）：

> ip -6 addr add <ipv6地址>/<prefixlength前缀长度> dev <网卡设备,如eth0>

例如像我这里就是

> sudo ip -6 addr add 2408:4005:3c2:fe9:3b13:f597:331a:b090/64 dev eth0

执行完毕之后，用ifconfig一看，eth0果然多了一个对应着分配的ipv6地址。

![](https://oss-img.ciduid.top/aether/Snipaste_2022-03-20_22-13-50.png)

去ping其他ipv6网站，也能ping通了，至此是可以了。

记得防火墙ipv4的规则复制一遍改成ipv6的，两种规则是不一样的，需要单独设定规则。

最后，这是这个破站的ipv6访问地址：https://ipv6.ciduid.top/