标签归档:ipv6

为 VPS 配置 IPv6

在如今到处都在普及 IPv6 之际,某 VPS 服务商非常不友好地不支持 Native IPv6,无奈之下只能采用曲线救国方式,利用 HE.NET 提供的 IPv6 Tunnel 来实现 VPS 对 IPv6 的支持。

检查 VPS 是否支持 IPv6

输入 ip -6 address show 看是否有显示内容,如无则表示没有启用 IPv6。
编辑文件 /etc/sysctl.conf,添加或修改一下内容启用 IPv6:

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

键入 sysctl -p 使上述设置生效,再输入 ip -6 address show 查看是否有信息显示。

为 VPS 配置 IPv6 Tunnel

/root 目录下新建一个 he-ipv6.sh 文件,将 Tunnelbroker.net 中 Linux-route2 选项下的配置内容粘贴进去,执行 ./he-ipv6.sh

设置 IPv6 优先级

尽管目前 IPv6 在全世界范围内快速普及,但在实际使用中仍然会遇到不少问题,为保守起见,我们设置了 IPv4 的优先级高于 IPv6。
方法很简单,就是在 /etc/gai.conf 中加入 precedence ::ffff:0:0/96 100 就行了。

添加一整段 IPv6

虽然我也不知道在一个 VPS 上监听 2^n 个 IP 地址有啥用…

ip -6 route add local XXXX/64 dev lo #添加
ip -6 route list table local #查看

在 Windows 系统利用 HE Tunnelbroker 配置 IPv6

现在国家大力推进 IPv6 普及,很多网站都提供了 IPv4/v6 双栈访问,IPv6 的普及也是大势所趋。但是由于我国复杂的网络环境,很多小伙伴现在还不能使用原生的 IPv6(Native IPv6),原来在 Windows 系统下普遍采用的是 Teredo 方法来配置 IPv6,但最近几乎所有网上能查到了 Teredo 服务器都已经无法使用,所以不得不另辟蹊径。

Windows Vista/7/8/10 配置方法

原来给 VPS 配置 IPv6 环境曾经使用过 HE.NET 的 IPv6 Tunnel,那是否也能把其移植到 Windows 上?答案是肯定的。先说一下我的电脑环境:

系统: Windows 7 SP1 Ultimate 64位
网络:有线连接路由器(内网IP:192.168.1.x,公网IP:222.x.x.x)

  1. 在 Tunnelbroker.net 注册一个账号

  2. Create Regular Tunnel,填入公网IP,也就是 222.x.x.x。然后选择一个网络质量最好的 Tunnel Server

  3. 创建完成后,可以在 Main Page 最下方看见 tunnel 列表,点击打开查看详情,再进入 Example Configurations

  4. 在下拉菜单选择相应的系统,例如选择 Windows Vista/2008/7/8 则显示下列信息:

    netsh interface teredo set state disabled
    netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel 192.168.1.x 216.66.88.98 #如果你是内网环境,加黑处替换为内网地址
    netsh interface ipv6 add address IP6Tunnel 2001:470:XXXX:XXXX::2 #替换为你的 IPv6 地址
    netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:XXXX:XXXX::1 #对应替换 IPv6 地址

    Windows 10 则为如下配置:

    netsh interface teredo set state disabled
    netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel localaddress=192.168.1.x remoteaddress=216.66.88.98 #如果你是内网环境,加黑处替换为内网地址
    netsh interface ipv6 add address interface=IP6Tunnel address=2001:470:XXXX:XXXX::2
    netsh interface ipv6 add route prefix=::/0 interface=IP6Tunnel nexthop=2001:470:XXXX:XXXX::1
  5. 用管理员权限启动 CMD,然后依次输入上述信息,IPv6 配置就完成了

其他相关命令

下面陈列一下其他涉及 IPv6 配置的命令

netsh int ipv6 show int #查看 IPv6 interfaces
netsh int ipv6 add address IP6Tunnel 2001:470:XXXX:XXXX::3/64 #添加额外 IPv6 地址
netsh int ipv6 delete address IP6Tunnel 2001:470:XXXX:XXXX::3/64 #删除额外 IPv6 地址

netsh interface ipv6 delete interface ip6tunnel #删除 ip6tunnel
netsh interface ipv6 reset all #重置 IPv6 设置

netsh int ipv6 show prefixpolicies #查看前缀策略,第一列数值越大,优先级越高
netsh int ipv6 add prefixpolicy 2001:470::/32 5 11 store=persistent #降低 Tunnelbroker 的优先级

netsh int ipv6 delete prefixpolicy ::1/128 store=persistent #删除策略记录
netsh int ipv6 add prefixpolicy ::1/128 40 0 store=persistent #新增策略记录
*::1/128 #IPv6 loopback
*::/0 #Native IPv6
*::ffff:0:0/96 #IPv4
*2002::/16 #6to4
*2001::/32 #Teredo
*::/96 #v4compat
*fec0::/10 #IPv6 site-local
*3ffe::/16 #6bone

参考文章
Windows IP Address Prefix Policies

在复杂网络环境下设置 ipv6

自从升级了电信宽带,就在家里折腾光猫、路由器、网线......一度搞的网络状况非常复杂,乃至之前运行正常的 ipv6 访问都失效了。

测试环境:Windows 7 64x
网络环境:电信光猫接入,LAN1 直连电脑通过 PPPoE 拨宽带上网;LAN2 接另外一台路由器,同样拨宽带连接,电脑同时连接上该局域网
错误表现:ping ipv4 地址正常,ping ipv6 地址提示 general failure

解决方案:在内网环境下只能采用 teredo 方式才能适配 ipv6 地址访问,所以要剔出多余的 isatap 和 6to4 适配器。

# 禁用 6to4
netsh interface 6to4 set state disabled
在操作中可能还需要进入 gpedit.msc 手动禁用 6to4

# 禁用 isatap
netsh interface isatap set state disabled

# 最后检查一下网络设置
netsh int teredo show state
ipconfig

参考文章:

Windows7 环境下配置 Teredo 接入 IPv6

关闭Windows7中的6to4/isatap/teredo隧道

关闭Windows7中的6to4/isatap/teredo隧道

经常看到用户抱怨在 Windows 7 操作系统的 cmd 命令提示符窗口下使用 ipconfig /all 时,会看到非常多的称之为“隧道适配器”的本地连接,而大多数用户对于隧道连接的概念并不了解。

在 Windows 7 中,系统自动配置生成了多个隧道连接,这些隧道连接的用处是用于实现 IPv4 与 IPv6 互访问而设计的。IPv6 隧道是将 IPv6 报文封装在 IPv4 报文中,让 IPv6 数据包通过使用 IPv4 地址协议的网络进行通信。对于采用隧道技术的设备来说,在隧道的入口处,将 IPv6 的数据报封装进 IPv4,IPv4 报文的源地址和目的地址分别是隧道入口和隧道出口的 IPv4 地址,而在隧道的出口处,再将 IPv6 报文取出转发到目的节点。隧道技术只要求在隧道的入口和出口处进行报文的封装修改,对其他部分没有要求,容易实现。

在 Windows 7 中,为了更好的实现 IPv4 到 IPv6 的过渡,使用了多种隧道技术。但是,对于基本上一直在使用 IPv4 的用户,多个隧道连接反而带来了一些不便,因此,这里介绍一下如何关闭 Windows 7 中自带的隧道连接。

使用 netsh 命令关闭 IPv6 隧道适配器:

netsh interface teredo set state disable

netsh interface 6to4 set state disabled

netsh interface isatap set state disabled

 

 

当我们需要使用 IPv6 网络时,只需要使用如下命令恢复 IPv6 隧道设置即可:

netsh interface teredo set state default

netsh interface 6to4 set state default

netsh interface isatap set state default

 

 

文章转自:http://marui.blog.51cto.com/1034148/380357

 

Windows7 环境下配置 Teredo 接入 IPv6

按:Teredo 是一种使用公共网关的 IPv4/IPv6 转换机制,它目前只用于直接通过 IP 地址发起连接,因此你的浏览器不会通过域名连接 IPv6,也就是说该网络配置无益于访问 IPv6 网站。如果一定要通过该方案访问 IPv6 网站,请自行于 hosts 文件中添加相关 IPv6 解析记录。

配置的网络环境:中国电信 2M ADSL 路由器拨号上网,Windows 7 64位操作系统。

以下是隧道方式(Teredo)连接 IPv6 的设置方法:

1.首先,如果你以前配置过 IPv6 的话,最好能把那些配置都还原回来。我这个方案不需要安装任何第三方软件,所以如果你安装过什么隧道软件的话,现在就可以卸掉了。如果经过以下配置,还不能配置成功的话,建议重新安装操作系统,用一个干净的系统开始配置。

2.使用管理员权限运行 cmd,打开命令行窗口。

3.根据使用路由器的方式不同,选择运行不同的命令:
netsh int ter set state client (PPPoE直拨上网选用)
netsh int ter set state enterpriseclient(通过路由器上网选用)

4.设置隧道:
netsh int teredo set state client teredo-debian.remlab.net
或者:
netsh int teredo set state enterpriseclient teredo-debian.remlab.net

5.这样就开启了 IPv6 隧道了。Cmd 中运行 ipconfig 看看,有这样的一串以 2001: 开头的 IPv6 地址的话,就说明已经配置成功了。没有的话,重启一下电脑看看。

部分Public Teredo Servers:

  • teredo.remlab.net / teredo-debian.remlab.net (France)
  • teredo.autotrans.consulintel.com (Spain)
  • teredo.ipv6.microsoft.com (USA, Redmond) (default for WindowsXP/2003/Vista/2008 OS)
  • teredo.ngix.ne.kr (South Korea)
  • teredo.managemydedi.com (USA, Chicago)
  • teredo.trex.fi (Finland)

参考资料
Windows 7,中国电信ADSL的环境下配置IPv6
Teredo tunneling

修订历史
2019-01-22:修改了标题,精简了内容,补充了 Teredo 使用提示