OpenWrt配置he.net的6in4隧道访问IPv6

标签: , , , , , , ,

虽然目前用的网络直接拨号就能通过6to4隧道连接IPv6(详见《OpenWrt配置IPv6之6to4隧道》),但是今天心血来潮想试试通过he.net的6in4隧道来访问IPv6。

6in4隧道首先需要有公网IP,没有的话洗洗睡吧。然后去tunnelbroker.net注册一个账号,注册好之后登陆,点击Create Regular Tunnel,在打开的页面填好你OpenWrt路由器的公网IP地址,并在它给出的Tunnel Servers列表选择一个,点击Create Tunnel按钮即可。

可以用下面的bat脚本找出ping时间最短的隧道服务器:


@echo off
setlocal enabledelayedexpansion
%1 %0 : | sort & pause & exit /b

rem By Demon
rem https://demon.tw

(for %%i in (
    "216.218.221.6"
    "216.218.221.42"
    "74.82.46.6"
    "216.66.84.46"
    "216.66.86.114"
    "216.66.87.14"
    "216.66.80.30"
    "216.66.80.26"
    "216.66.88.98"
    "216.66.84.42"
    "216.66.86.122"
    "216.66.80.90"
    "216.66.80.162"
    "216.66.80.98"
    "216.66.22.2"
    "184.105.253.14"
    "184.105.253.10"
    "184.105.250.46"
    "72.52.104.74"
    "64.62.134.130"
    "216.66.77.230"
    "66.220.18.42"
    "209.51.161.58"
    "209.51.161.14"
    "66.220.7.82"
    "216.218.226.238"
    "216.66.38.58"
    "184.105.255.26"
) do (
    for /f "tokens=4 delims==" %%j in ('ping -n 10 %%i ^| findstr 平均') do (
        set t=%%j
        echo !t:~1,-2! %%~i
    )
))

在新建的隧道页面中,选择Example Configurations,OS选择OpenWRT Barrier Breaker,会自动生成配置命令,记得把UPDATE_KEY_OR_PASSWORD改成你隧道对应的Update Key或者你账号的登陆密码。

在OpenWrt上运行生成的命令之后,路由器就能获取到IPv6地址了,想要客户端也能访问IPv6,需要配置dnsmasq(同样详见《OpenWrt配置IPv6之6to4隧道》),当然也可以用radvd。

到此为止一切还算顺利,但是存在一个问题,每次拨号后获取的公网IP是不一样的,这样按照原来IP配置的6in4隧道就会失效,所以要想办法在每次拨号后自动更新IP地址,好在he.net考虑到了这一点,提供了一个更新IP地址的API接口:

https://ipv4.tunnelbroker.net/nic/update?username=<USERNAME>&password=<PASSWORD>&hostname=<TUNNEL_ID>

这样就会自动把对应隧道的客户端IPv4地址改成你访问这个链接时的IPv4地址,利用这个API接口,在Hotplug脚本中就可以实现自动更新IP地址了,代码不难,自己写。

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. VB6拾遗:字符串与Unicode
  2. 用VBS实现PHP的urlencode函数
  3. VBS ByRef和ByVal参数
  4. Windows下编译cURL
  5. MSDN上MS-DOS 6.22的安装方法

2 条评论 发表在“OpenWrt配置he.net的6in4隧道访问IPv6”上

  1. […] 6in4隧道访问IPV6的教程:http://demon.tw/hardware/openwrt-6in-ipv6.html […]

  2. tv5说道:

    楼主您好,实现自动更新IP地址Hotplug脚本的脚本怎么写?

留下回复