WIN_ipv6 不定期失效最终解法

前情提要:

  啊,时隔几个月又和大家见面,晚间闲来无事想和大家聊聊 ipv6 的事情。今年初,我搞了一套软路由玩,性能好,功能也非常不错。但是,由于一些特殊需求,比如搭建 Minecraft 服务器等,运营商在家庭宽带中不再提供公网 IPv4 地址,因此我开始使用 IPv6 来提供一些远程访问服务。可以说,我是一个常用 IPv6 的用户了。

然而,自从我开始使用软路由 (其实之前也用硬路由) 后,我一直遇到一个问题:每隔几天,IPv6 就会自动失效。具体表现为:虽然有前缀,但后缀变成了 “::1″,完全无法通信。我查看了 Windows 网络适配器的详细信息,没有发现任何问题。我尝试过各种方法,比如打开 SLAAC 等,但始终无济于事。很明显,我认为这是 Windows 的问题。

久病成医后,我找到了解决这个问题的好办法——关闭 IPv6 协议然后重新开启。

这样就能手动刷新 IPv6 的 IP 地址,操作后就能正常使用 IPv6 了。但是,如果一直采用这种方法,那么在无人值守等情况下,设备就会在茫茫的互联网中消失不见。于是,我开始思考如何自动化处理 IPv6 失效的问题。

基本原理很简单:每隔一段时间自动 ping 一个可靠的 IPv6 地址,如果无法 ping 通,则关闭网卡再重新开启,实现自动刷新的目的。如果可以 ping 通,则自动循环保持连接。

这样就能保证 IPv6 的持续连接。我动手写了一个批处理脚本,利用 Windows 最底层的批处理功能实现了自动重启网卡的功能。如果你也遇到了类似的问题,欢迎访问我的网站,了解脚本原理并下载体验。

  嗨欢迎来到我的网站,那么正如前面所说,我们来介绍下我们编写的脚本的原理并在此分享给需要的您:

  首先我的代码基于:利用 bat 定时检查网关是否 ping 通,判断断开就重启网络

  这位老哥的脚本非常奈斯,因此我只需要把脚本略微调整即可:对于他原本的脚本我将时间调整为每五分钟重复检测三次,ping 地址改为中国科技大学的 ipv6 测速网站达到稳定访问的目的,同时网卡变量设置为 「WINNET 」因此你只需要更改脚本中涉及到”WINNET” 的字段改为你自己的网卡↓

随后使用管理员权限打开即可自动运行 (当然如果出现卡住不动的情况,鼠标右键点击窗口内最小化到后台即可) 以下为整个文件的源代码↓

@echo off
:open
echo 开始 ping ipv6 线路
ping test6.ustc.edu.cn
if %ERRORLEVEL%==0 goto Ok
if %ERRORLEVEL%==1 goto No
exit
:No
COLOR 74
cls&echo V6 状态异常 %date%_%time%
 :: 失败后输出日志
echo V6 连接失败 %date%_%time%>>netconnect.txt
echo 禁用指定网络
netsh interface set interface "WINNET"  admin= DISABLED
ping 127.0.1 /n 5 >nul
 :: 开放指定网络
netsh interface set interface "WINNET"  admin= enabled
ping 127.0.1 /n 20 >nul
goto open
:Ok
COLOR E2
cls&echo V6 状态正常 %date%_%time%
ping 127.0.1 /n 300 >nul
goto open
 ::ver1.5 由空耀软件部门制作的很好用的小工具,喜欢请多多点赞~

值得一提的是,为了方便查询连接失败日志,本人修改了文件名,在该文件的同目录下如果连接失败会生成一个,名叫 「netconnect.txt 」的日志记录,标注了时间和状态的信息以方便后期维护~

以下是编译好的文件 (改过文本格式以兼容中文命令显示) 推荐下载:

神秘代码:l2o2mi


评论

《“WIN_ipv6 不定期失效最终解法” 》 有 6 条评论

  1. 目前来说一切正常,在运行的过程中我发现了很有意思的情况,即,软路由每天重启的时候 ip 自动发生变更,winserver2019 就是没法更新,这也是困扰我很久的一个问题,直到我做了这样一个脚本才完全解决,有点曲线救国那意思,不是吗

  2. 非常好用,感谢。
    路由开启 slaac 后,Linux 倒是能够在 RA 通告时变更 v6,但 Windows 可能会存在一堆的 v6 地址,脚本能够解决上述问题,目前来说,也只能这样了

    1. 没错鸭,我目前也没发现什么办法解决问题,或许是 windows 的问题,改了 v6 更新频率依然没法自动更新,所以写了这个脚本,当然如果嫌弃每次开机都要开可以自己找教程注册为系统服务就能开机自启,而且稳定很多
      而且我还推荐您可以网上查一下关闭 ipv6 随机后缀,临时地址 (两条指令) 执行一下你的电脑就只有一个 ipv6 地址了并且地址的后缀不会进行变化而是采用 MAC 地址,这样的话呢使用起来更加方便

  3. 大佬,访问密码不对了,麻烦更新一下。

    1. 好,感谢提醒,我去更新

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code