DigitalOcean VPS打开IPv6,及解决IPv6地址Ping不通问题
本来是想在架设IPv6 VPN的时候顺带提一下的,后来发现这个地方问题很大,所以单独拿出来写。
在创建Droplet
的时候就在Available Settings
中把IPv6
打钩的都没有什么问题,只需要注意显示的IPv6
地址后面的/64
实际用的时候删去就行了。这里主要说的是后来开启IPv6的情况。
一、开启IPv6
很容易,登录DigitalOcean Contorl Panel
选择需要开启IPv6的Droplet
选择Settings
点击Public IPv6 Network
下的Enable
等待几秒钟就会出现分配好的IPv6地址等信息,比如我的:
PUBLIC IPV6 ADDRESS:
2604:a880:1:20::13:c001/64
PUBLIC IPV6 GATEWAY:
2604:a880:1:20::1
CONFIGURABLE ADDRESS RANGE:
2604:a880:1:20::13:c000 - 2604:a880:1:20::13:c00f
注意:
- 此IPv6地址不需要重启服务器即已生效
- 像我的IPv6地址这里显示的是2604:a880:1:20::13:c001/64,而实际使用时是不需要后面的/64的,即我的IPv6地址为2604:a880:1:20::13:c001
此时从本地计算机ping
这个IPv6地址是ping
不通的,如:
ping 2604:a880:1:20::13:c001
会出现:
无法访问目标主机。
请求超时。
无法访问目标主机。
请求超时。
其实原因是:DigitalOcean虽然已经将此IPv6地址分配给这个Droplet
,但此Droplet
服务器网卡中还未更新IPv6地址。
二、修改服务器IPv6配置
使用这个命令可以看到服务器网卡目前设置的IPv6地址:
ip -6 addr show eth0
可以看到例如:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::601:1cff:fe11:5b01/64 scope link
valid_lft forever preferred_lft forever
解决ping
不通的方法就是手动配置IPv6地址。
首先配置IPv6地址:
ip -6 addr add YOUR_PUBLIC_IPV6_ADDRESS/64 dev eth0
然后配置IPv6网关:
ip -6 route add default via YOUR_PUBLIC_PIV6_GATEWAY dev eth0
这样再ping
自己服务器的IPv6地址就能ping
通了,不过服务器重启后又会要重复上述步骤。
三、固化IPv6配置
为了避免每次重启服务器都要重新配置IPv6,可以通过写入服务器网络配置文件的方式实现。
Ubuntu下,编辑/etc/network/interfaces
文件:
nano /etc/network/interfaces
将下面的内容添加到文件中:
iface eth0 inet6 static
address YOUR_PUBLIC_IPV6_ADDRESS
netmask 64
gateway YOUR_PUBLIC_PIV6_GATEWAY
autoconf 0
dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888 209.244.0.3
注意:上面的YOUR_PUBLIC_IPV6_ADDRESS
最后没有/64
重启后即生效。
这样即可正常使用此IPv6地址,甚至用来SSH
登录。
dns-nameservers 是cat /etc/resolv.conf 获取么
非常感谢博主,我遇到一个问题:
IPV6的IP添加正常。
在加入网关时,显示RTNETLINK answers: No route to host
请问有没有办法解决?
你好,请问我使用了digitalocean的vps并搭建了shadowsocksR,ipv4和ipv6都正常使用4个月了,但前几天发现ipv6的ssr连不上了,检查发现本地无法ping通服务器v6的ip,请问有什么好的处理建议吗?我感觉可能是被墙了,毕竟我平时用ssr也是v6的比较多,v4很少用
检测发现VPS可以ping通ipv6.google.com,也可以ping通东北大学ipv6视频站,traceroute结果发现断点在100ge8-2.core1.pao1.he.net [2001:470:0:375::1]
看到he.net感觉情况不对呀,说明你本地的IPv6其实走的是HE的6to4隧道,感觉像是HE的服务器被墙了,所以你本地不能走IPv6连上VPS了。你要是还想用IPv6连上VPS的话,你得好好看看本地IPv6是怎么来的了~
现在又连不上了……不知道出了什么问题,我用的是天津发育的校园网,请问有什么办法绕过he的节点吗?
天大的校园网?那你们网络中心可玩的真6,感觉是学校IPv6出口网关就直接转到HE走IPv4了,竟然不是走的教育网骨干,也是服气哇~
不过看楼上的回复说IPv6能连山六维但连不上VPS,有可能是学校或外部哪个IPv6网关作了判断,国内地址走国内教育网IPv6网络,国外地址走HE代理。这个一般只能向学校网络中心反映了~
貌似不是诶,不知道怎么判断的,youtube和google都可以直接改ipv6的hosts上,也没出现过问题,就是vps这段时间会断,就很奇怪
兄弟你是天大的不?我是天大的,我和你的情况一样,之前一直通过ipv6连到vps上的ss,但前几天ipv6就连不上vps了,但是六维什么的都还能上。昨天好了几个小时,但后来ipv6还是连不上了.....好伤。你现在什么情况?
对哈,我也天大的,现在不在学校不知道情况了,不过ipv4的可以用
哈哈哈哈,我也是,,,竟然都是tju的,,,看来真的是学校的问题啊
没事啦,今天又自动恢复正常了.........很奇怪额,可能是HE服务器维护吧~
我按您说的做了,我现在能ping通google的dns服务器,但是我ping不通我本地电脑的ipv6地址,它说No route,就是无路由,不知道是怎么回事?我确定我电脑有ipv6地址,且是可用的。
如果你确定你的IPv6能够连上互联网的话,我怀疑是你的IPv6地址是通过某些特殊路由器设置拿到的(类似IPv4的NAT那种),简单来说就是你本地其他电脑能够ping通你的电脑的IPv6地址,但从远端计算机就ping不通本地IPv6地址,这个一般无解(需要修改相关路由器设置)。还有可能是防火墙规则问题,当然也是很难解决的啦~
digitialocean cent 7.4 在配置ipv6那步时显示
inet6 prefix is expected rather than "YOUR_PUBLIC_IPV6_ADDRESS/64".和
inet6 address is expected rather than "YOUR_PUBLIC_PIV6_GATEWAY".
请问怎么解决?
你需要把YOUR_PUBLIC_IPV6_ADDRESS和YOUR_PUBLIC_PIV6_GATEWAY换成上面你的droplet里显示的地址哟~不是直接复制粘贴的
某人我服务器用的he.net的ipv6隧道,直接启用的官方给的配置文件,ping服务器还是无法访问目标网
抱歉隧道这个我不太清楚唉,不过理论上如果你能走隧道访问到IPv6网站的话,也能走隧道访问到服务器的,不妨在服务器上假设一个IPv6的web服务器访问看看?
博主你好, 我用的是cohona的服务器, 配置好可以支持ipv6连接, 本地用ipv4可以访问服务器, 速度还不错, 但用本地用ipv6连接就上不了外网, 本地可以ping通服务器ipv6地址, 但从服务器ping不通本地ipv6地址(本地是支持ipv6的, 插网线可以裸连google等网站), 目前不知道是什么原因, 可能是与学校防火墙有关?
求指教
鉴于国内日趋复杂的墙,服务器ping不通本地IPv6地址也是很正常的,我也ping不通。极端点你可以在服务器上搭建一个http服务器,然后监听IPv6,本地浏览器用IPv6地址(注意加左右中括号)访问,应该没问题的。
博主你好 在DO上开了个SFO的Droplets,但是droplets上Ping baidu.com 不通 是咋回事。Ping douyu.com可以通 而且速度非常快。
我刚才试了也是这样,貌似国内的站点无论大小全都ping不通,暂时还没找到原因~有个奇怪的问题是IPv6连上ss然后是可以走ss打开百度的...
博主好,我都在droplet设置好了IPV6IP之后,本地还是ping不通IPV6地址是为啥?而且ssh也连不上。
另外,如果你自己的网络不支持IPv6的话,当然也是ping不通,而且连不上IPv6的。
这个可能原因挺多的,首先ifconfig看有没有如2604开头的IPv6地址(目测没有),没有的话检查服务器IPv6有没有开(这个不同Linux发行版设置不一样,不过都是要修改配置文件),然后检查防火墙有没有阻止IPv6协议(比如ufw,或者iptables的设置)。
你这个说的不清楚我觉得,你说这时候就可以ping通了IPV6地址这个的
意思是我本地的计算机可以ping通IPV地址了吗?但是好像并没有提到本地的计算机怎么设置IPV地址哦,不是一直都在说如何设置服务器(droplet)的IPV6地址嘛?好模糊哦
哈哈哈~好吧,服务器开通IPv6的目的是让本地计算机可以更快速地连上服务器,潜在的要求是本地计算机也支持IPv6,严格来说是ISP提供IPv6网络。比如你的本地计算机需要有如2001开头的IPv6地址,可以访问如bt.byr.cn之类的IPv6网站。
否则你的本地计算机是不支持IPv6的,这样即使服务器开通IPv6,你也是不可能连上IPv6网络的。
我WIN10系统,6to4隧道,在公网上的 IPv6 地址是 2002开头的,不是2001
IPv6 连接测试:
您似乎正在使用公共的6转4网关;您的路由器可能自动为您提供该功能。这种公共网关没有服务层协议;您在使用中可能会碰到性能问题。最好从您的ISP那里获取原生IPv6地址。
您的DNS服务器(通常由您的网络服务商提供)已经可以接入IPv6互联网了。
(DNS我用的是自动分配的,自动分配的不行)
危险!IPv6几近成功——但鉴于已损坏的网站呈现,可知大包传输失败。如果发行人发行在IPv6上,您将会认为是他们的网站被损坏了。向您的ISP询问关于MTU的问题;可能与您的隧道有关。 请检查您的防火墙以确保ICMPv6消息被允许(尤其是“类型2”或者“数据包过大”)。
(这个意思是要修改MTU大小吧)
使用 IPv4 域名记录进行测试
成功 (0.225s) 使用 ipv4
使用 IPv6 域名记录进行测试
成功 (0.305s) 使用 ipv6 6to4
使用双栈域名记录进行测试
成功 (0.198s) 使用 ipv4
双栈域名和大封包测试
成功 (0.208s) 使用 ipv4
不使用域名的 IPv4 测试
成功 (0.221s) 使用 ipv4
不使用域名的 IPv6 测试
成功 (0.309s) 使用 ipv6 6to4
IPv6 大封包测试
慢 (7.240s) 使用 ipv6 6to4
测试您 ISP 的域名服务器是否使用 IPv6
成功 (0.226s) 使用 ipv4
查找IPv4服务提供商
成功 (0.233s) 使用 ipv4 ASN 4134
查找IPv6服务提供商
失败 (0.315s) 使用 ipv6 6to4
这些是不是说明我现在用的电信并不支持纯IPV6连接呢,如果是,还有必要继续配置.现在能访问一些普通的IPV6站点,很多打不开.
看到了,麻烦回答一下哈
抱歉这几天太忙了,从你提供的来看确实是不支持纯IPv6,准确来说,是你的路由器或电信的某个网关分配给你的IPv6地址,而实际在访问公网的时候走的是IPv4(也可以理解成你拿到的IPv6地址是一个局域网地址)。而且你说能访问到普通的IPv6站点,我怀疑那些站点是IPv4/IPv6双栈的,你其实也是访问到的IPv4网站。
博主牛逼
我们之所以总是ipv6连接服务器不成功只是因为在网上其他人的教程里面恰恰缺少博主讲的步骤,这步骤又是最关键的步骤,谢博主哈哈
还好不是嫌弃我啰嗦...很高兴能够帮到你 ^_^
博主你好,我用类似的方法应用到vultr vps上,网卡配置显示正确ipv6地址,从本地ping正常,能从ipv6地址ssh登录,能使用服务器的ipv4地址用SS,,,,,但唯一的问题就是不能用ipv6地址来搭SS,无法上网,手机端提示connect closed by peer,求救啊
抱歉回复晚了,这个错误的话排查起来是很困难的...一般就是重装系统或者重启都可能会好...你是说能IPv6能ping通VPS,但IPv6用ss连VPS就不行?首先排查链路是不是通的,即手机或电脑有没有IPv6地址,再看服务器ss日志有没有建立连接的记录;如果都正常的话考虑服务器没有互联网访问权限,简单的方法是在服务器上ping各种地址,难点的方法就是写脚本模拟http访问能不能看到网页...这样应该能找到一些线索的。
嗯嗯,已经解决了,是服务器端ss版本太老不支持ipv6的原因 换了个安装脚本就好了. ps: do新加坡服ping好高...体验比vultr东京差远了...
对啊新加坡不是直连大陆的,中间还绕了好大一个弯的;目前来说就是do旧金山的最快了,海底光缆直连(不知道停不停靠日本)。
开了一个sfo2服务器,是直连的,体验比sgp好一点了,然而还是远远不如vu..
谢谢博主,本人菜鸟,但是我这么设置后Windows下ping ipv6还是 四次的请求超时,无法通过ipv6连上vps,putty和shadowsocks都不行。但是我【ip -6 addr show eth0】之后已经显示两个地址了。我记得在一次重启之前还是可以的。
是不是网关没有设置好?如果将配置写入到文件做固化的话,以后每次重启服务器都要重新操作一遍的。
或者你可以吧Droplet销毁掉了重建,记得IPv6打钩,这样是最可靠的...
我个人认为网关好像已经设置了的。好像我在文章里看到的都试了,但还是不行。不知道有没有可能是什么防火墙的问题之类的。总不可能是我的电脑突然不能使用ipv6了吧。。
这个就不知道啦,可能的原因就太多了。一般不是故意设置的话,防火墙是不会把ping都拒绝的,你可以看看ufw的日志,或者是在/var/log/里的其他日志找找线索咯
我什么都没干,今天就可以了。。谢谢博主
非常感谢博主,这里解决了我一个困扰了很久的问题, 我的 droplet 创建的时候ipv6没有打勾,然后各种配置ipv6 一直失败,今天ping了一下发现ping 不通,然后搜到了这篇文章终于搞定了
^_^ 我就说肯定不是我一个人的