IPv6隧道部署教程:Hurricane Electric (TunnelBroker) 免费 6in4 隧道完整配置指南

IPv6 隧道部署教程:Hurricane Electric (TunnelBroker) 6in4 完整配置指南

前言

现在很多宽带运营商(尤其国内)还没有普及 IPv6,导致我们访问 IPv6-only 资源、测试 IPv6 应用时非常不方便。Hurricane Electric(HE,飓风电讯) 提供的 免费 IPv6 隧道服务(Tunnel Broker) 就是解决这个问题的利器:它通过现有 IPv4 网络把 IPv6 数据包”隧道”到 HE 的 IPv6 骨干网,让你的设备立刻获得 IPv6 连接。

  • 官网:https://tunnelbroker.net
  • 费用:完全免费,注册即用
  • 定位:面向开发者和实验者,提供稳定的隧道平台
  • 服务商:HE 是一家运营 24×7 的商业 ISP,拥有国际骨干网络,稳定性有保障

服务特点

特点 说明
🆓 完全免费 无需信用卡,注册即可创建隧道
🌐 全球节点 隧道服务器遍布全球 30+ 城市(阿什本、芝加哥、洛杉矶、西雅图、法兰克福、伦敦、巴黎、香港、新加坡等),可选离你最近的节点
🏠 /48 前缀 隧道启用后可以申请自己的 /48 IPv6 前缀,可细分大量子网
⚡ 即开即用 简单注册后不到一分钟即可创建隧道
🔧 多平台支持 Linux / Windows / macOS / 路由器(OpenWRT 等)均有配置方案

技术原理:什么是 6in4 隧道

6in4(IPv6-in-IPv4)是最常见的隧道协议:

1
2
3
4
┌──────────┐   IPv6数据包   ┌───────────┐   IPv6数据包   ┌─────────────┐
│ 你的设备 │ ─────────────▶ │ HE隧道服务器 │ ─────────────▶ │ IPv6 互联网 │
│ (IPv4接入)│ IPv4封装(协议41)│ (全球骨干) │ 解封装转发 │ IPv6 全网 │
└──────────┘ └───────────┘ └─────────────┘
  • 你的设备把 IPv6 数据包封装进 IPv4 报文(IP 协议号 41),通过现有 IPv4 网络发送
  • HE 的隧道服务器解封装后,把 IPv6 数据包接入 HE 的 IPv6 骨干网
  • 回程流量同样经过隧道返回你的设备

这样,你不需要任何硬件改造,只要有一台能上 IPv4 网络的设备,就能获得 IPv6 地址并访问 IPv6 互联网。

第一步:注册账号

  1. 打开 tunnelbroker.net
  2. 点击 Register(注册),填写邮箱和密码
  3. 登录后进入控制台

💡 HE 还提供免费 DNS、BGP Toolkit、Looking Glass 等网络工具,注册一个账号可以全部使用。

第二步:创建隧道

  1. 登录后点击 Create Regular Tunnel(创建普通隧道)
  2. 在 IPv4 Endpoint (Your side) 输入你当前设备的公网 IPv4 地址(就是你出口的公网 IP)
  3. 系统会根据你的 IP 自动推荐离你最近的隧道服务器,也可以手动选择(Available Tunnel Servers 列表里选)
  4. 点击 Create Tunnel 创建

创建成功后进入 Tunnel Details(隧道详情) 页面,记录以下关键信息:

字段 说明 示例
Server IPv4 Address HE 隧道服务器的 IPv4 地址 216.66.80.30
Server IPv6 Address HE 隧道服务器的 IPv6 地址 2001:470:1f0b:xxx::1
Client IPv6 Address 分配给你的设备的 IPv6 地址 2001:470:1f0b:xxx::2
Routed /64 路由给你的 /64 子网 2001:470:xxxx:xxx::/64
Routed /48 可选,申请后可获得 /48 大段前缀 2001:470:xxxx::/48

⚠️ 页面下方还有 Example Configurations(示例配置),会针对你的系统自动生成完整命令,可以直接参考。

第三步:Linux 配置(iproute2)

以下命令适用于 Debian / Ubuntu / CentOS 等主流 Linux 发行版,把示例值替换成你隧道详情页里的真实值:

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 创建隧道接口(he-ipv6)
# remote = Server IPv4 Address,local = 本机公网 IPv4
sudo ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local 你的公网IP ttl 255

# 2. 启用隧道接口
sudo ip link set he-ipv6 up

# 3. 配置客户端 IPv6 地址(Client IPv6 Address)
sudo ip addr add 2001:470:1f0b:xxxx::2/64 dev he-ipv6

# 4. 添加默认 IPv6 路由(流量全部走隧道)
sudo ip -6 route add default dev he-ipv6

验证配置:

1
2
3
ip tunnel list            # 查看隧道状态(应显示 he-ipv6 up)
ip -6 addr show he-ipv6 # 查看 IPv6 地址
ip -6 route show # 查看 IPv6 路由

测试 IPv6 连通性:

1
2
3
4
5
# ping Google 的 IPv6 DNS(2001:4860:4860::8888)
ping6 2001:4860:4860::8888

# 或使用 curl 测试
curl -6 https://ipv6.google.com

开机自启(systemd)

隧道配置重启后会丢失,建议写成 systemd 服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# /etc/systemd/system/he-ipv6.service
[Unit]
Description=HE 6in4 IPv6 Tunnel
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local 你的公网IP ttl 255
ExecStart=/usr/sbin/ip link set he-ipv6 up
ExecStart=/usr/sbin/ip addr add 2001:470:1f0b:xxxx::2/64 dev he-ipv6
ExecStart=/usr/sbin/ip -6 route add default dev he-ipv6
ExecStop=/usr/sbin/ip link set he-ipv6 down
ExecStop=/usr/sbin/ip tunnel del he-ipv6

[Install]
WantedBy=multi-user.target
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable he-ipv6
sudo systemctl start he-ipv6

第四步:Windows 配置(netsh)

以管理员身份打开 PowerShell 或 CMD:

1
2
3
4
5
6
7
8
# 1. 创建 6in4 隧道
netsh interface ipv6 add v6v4tunnel "he-ipv6" 216.66.80.30 你的公网IP

# 2. 设置客户端 IPv6 地址
netsh interface ipv6 add address "he-ipv6" 2001:470:1f0b:xxxx::2

# 3. 添加默认 IPv6 路由
netsh interface ipv6 add route ::/0 "he-ipv6" 2001:470:1f0b:xxxx::1

💡 如果你使用的系统无法直接用 netsh,也可以在 下载页面 找到 HE 提供的隧道客户端工具,图形化配置更简单。

第五步:申请 /48 前缀(可选,进阶)

隧道启用并稳定运行后,可以在隧道详情页找到 Assign /48(分配 /48 前缀)的入口,申请一个完整的 /48 地址段。拿到 /48 后,你可以把它路由到局域网,给家里的所有设备都分配 IPv6 地址:

1
2
3
4
5
# 开启 IPv6 转发(路由器/网关设备上)
sudo sysctl -w net.ipv6.conf.all.forwarding=1

# 把 /48 路由到隧道接口
sudo ip -6 route add 2001:470:xxxx::/48 dev he-ipv6

然后在内网接口配置一个 /48 内的地址,并用 radvd / dnsmasq / 路由器固件做 IPv6 地址下发(RA),局域网设备就能自动获得 IPv6 地址了。

⚠️ /48 申请前请确认你在 HE 的隧道已经持续可用;滥用会导致隧道被回收。

常见问题

Q:为什么隧道创建后 ping 不通?
A:常见原因:

  1. 防火墙没有放行 协议 41(IPv6-in-IPv4) 的出入流量
  2. 路由器/运营商做了 NAT 且不支持协议 41 转发(家庭宽带尤其常见)
  3. 隧道服务器选得太远,时延高导致连接不稳定

Q:我家里是 NAT 环境,能用吗?
A:如果你的出口是 NAT(绝大多数家庭宽带),需要在光猫/路由器上把协议 41 转发到内网这台设备,或者给这台设备配置公网 IP。最省事的办法是直接在有公网 IP 的 VPS 服务器上配置隧道。

Q:隧道重启后就没了?
A:6in4 隧道默认是临时的,重启后需要重新执行配置命令。Linux 建议写成 systemd 服务(见上文),Windows 建议使用计划任务或隧道客户端工具。

Q:隧道有流量限制吗?
A:HE 隧道对个人使用没有明确流量上限,但明确禁止用于商业转售,大量滥用流量(如 BT 下载)可能导致隧道被限制或回收。

Q:IPv6 速度怎么样?
A:由于所有流量都要经过 HE 隧道服务器中转,速度取决于你到 HE 节点(及回程)的线路质量,通常比原生 IPv6 稍慢。国内用户建议选择最近的节点(香港、新加坡等)或使用其他方案(如 VPS 中转)。

小结

用 HE 免费隧道获得 IPv6,核心就三步:

  1. 注册 tunnelbroker.net 账号,创建 6in4 隧道,拿到 Server IPv4 和 Client IPv6 地址
  2. 配置:Linux 用 ip tunnel add(或 systemd 持久化),Windows 用 netsh,一分钟搞定
  3. 验证:ping6 2001:4860:4860::8888 通,即可正常访问 IPv6 互联网

隧道稳定后别忘了去申请 /48 前缀,把它路由到局域网,让家里所有设备都能享受 IPv6。这套方案完全免费,是测试 IPv6、搭建 IPv6-only 服务的最佳入门选择。

参考资料

推荐链接