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 服务的最佳入门选择。

参考资料

推荐链接