Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPv6 Status Fail(间断性) #8919

Closed
FSP-Butters opened this issue Dec 8, 2017 · 11 comments
Closed

IPv6 Status Fail(间断性) #8919

FSP-Butters opened this issue Dec 8, 2017 · 11 comments

Comments

@FSP-Butters
Copy link

xxnet的IPv6 Status经常间歇的fail
后来在问题讨论区看到了https://github.com/XX-net/XX-Net/issues/8862(#8862)
然后下载了teredo.zip,以下是当时遇到的情况。

最开始在讨论区学会了用netsh int teredo show state查看teredo的状态。
然后大概了解了一下teredo到底什么鬼(本人程序渣,netsh是啥不知道,teredo也没看懂,就当作黑盒子不管了)。
然后单个命令单个命令的试了试,发现netsh、int、teredo好像是嵌套的(每一个字段代表打开一个子程序的感觉),可以单个敲进去。
然后show state是展示teredo链接当前的状态,然后我发现有个错误提示的是UDP什么鬼的失败了(具体咋回事也不知道)。还有一个服务器名称是win1710开头的一个地址,不知道什么意思。我想可能是不能访问这个win1710开头的服务器地址。
后来就想找一个简单的方法(本人懒),就找到了teredo.zip的那个方法。
把teredo.zip解压到xxnet根目录。
一开始直接双击了解压出来的tertdo.bat,然后提示我需要管理员权限。
然后右键点击选了管理员权限运行了tertdo.bat。
然后就看着命令窗里显示一堆貌似跟teredo有关的地址,然后貌似在测每一个地址的延迟。(在这之前一直开着xxnet)
但是最后一个怎么也出不来,就看着光标在哪里闪。
等的不耐烦了直接ctrl+z结束了程序,然后提示error 0,出了一个python程序的路径,在xxnet里。(我没关这个CMD窗口)
然后我就去找那个文件,发现那个文件是teredo.zip里有的,我解压出来的。正好电脑上有python我就打开看了看,但是没太明白(没学过python)。
但是发现里面写了一个类似String数组的东西是用存放之前显示的那一大堆地址的。(感觉这个地方大概可以DIY一下,自己加地址)然后发现里面区分了这些地址是is accessible,还是isn't accessible,大概就是判断这些那个地址可不可用。然后看到有一个地方确实是在算什么avereage,也就是平均数,应该是在算之前的延迟,因为输出的string后面有ms。看到最后发现有一句
c='netsh interface teredo set state server='+d
这一句根据我刚刚的学习,我判断是在设置teredo的服务器地址,然后d就是那个地址,(感觉这里也可以DIY一下,在这一句之前把d改成自己想要的地址,或者直接把c里面的命令敲到CMD窗口里去自己改地址)。
但是程序看到这里还是毫无帮助。
然后我就又回去比对了一下之前CMD窗口里is accessible的地址与下面测出延迟的地址,发现少的地址。就是win1710开头的服务器地址,这个地址是is accessible,但是没有出来,但是之前测延迟却存在延迟9999的地址(一看就是不能用的),所以我估计多半跟我正在用这个地址有关。
所以我就把xxnet关了然后再管理员权限运行tertdo.bat
然后很快就跑完了,然后就提示我“最佳的teredo为…………”,然后让我按任意键继续。
然我没按任意键,就把CMD窗口放在那里,就不想动它(我大概是有病)。
然后我又启动了xxnet。
然后在teredo里show state看看效果如何。
show state证明效果貌似很好的样子。
但是我注意到xxnet里还是过了好久IPv6的状态才变成OK。可能有什么内部配置或者测试吧。

你是不是以为到这里就结束了?
答案是否定的!!!
之后还是有时候xxnet显示ipv6 状态为fail,但是teredo show state查看是正常的。
还有时候xxnet显示ipv6 状态为OK,但是就是打不开网页(墙外)。
这不跟最开始时是一样的吗?放弃治疗啦!!!
加上发这篇文章的时间我已经花了4个小时了,泡好的泡面没吃都快变干了,求大佬们更新解决。
顺便问一下那个teredo怎么设置比较合适,特别是刷新间隔时间,我感觉那个参数可以缩短对链接失败的反应时间。
另外每次输入netsh,然后输入int的时候,CMD就提示我去PowerShell里什么乱七八糟的,好像是以后有可能不支持netsh什么TCP/IP的什么鬼,那个是什么意思,是指以后批处理这种方法就行不通了吗?
之前用win1710的时候,刚开机的话xxnet就基本上可以成功访问外网,但是一段时间后就不行了,这是为什么?
还有用户已经感受到断网了(例如Google明显打不开,YouTube视频提示中断什么鬼的),但是xxnet依然要显示一段时间的一切正常,这个延迟是因为xxnet通过查询的方式检查当前的网络状态的吗?
default

@onplus
Copy link
Collaborator

onplus commented Dec 8, 2017

netsh interface teredo set state type=enterpriseclient servername=teredo.iks-jena.de refreshinterval=20 clientport=default

或者

netsh interface teredo set state enterpriseclient teredo.iks-jena.de 20 default
ping -6 [2001:470:1:18::125]
netsh int  teredo show  state 

image

@ghost
Copy link

ghost commented Dec 8, 2017

使用ping超时的微软服务器或许更稳定 管理权限运行
netsh int ipv6 set teredo enterpriseclient default
今天第一次发现延迟最小也未必正常,如 teredo2.remlab.net

@ghost
Copy link

ghost commented Dec 8, 2017

netsh interface teredo set state type=enterpriseclient servername=teredo.iks-jena.de refreshinterval=20 clientport=default 貌似可简化成
netsh int ipv6 set teredo enterpriseclient teredo.iks-jena.de 20 default

@ghost
Copy link

ghost commented Dec 8, 2017

出现间断性,或 netsh int ipv6 show teredo 正常时候xxnet显示ipv6 状态为fail,#8862 已说——
多次刷新或重载控制页,或右键 XX-Net 状态栏图标重启、再稍侯,或结束进程pythonw.exe、关闭浏览器、重启 XX-Net、再稍侯,或机器重启。或换服务器或禁用再启用网络

@ghost
Copy link

ghost commented Dec 8, 2017

或结束全部RuntimeBroker.exe进程、右键 XX-Net 状态栏图标重启(待验证)

@FSP-Butters
Copy link
Author

今天用YouTube测试了一下,从开机、开始播放视频,一直到视频出现中断(此时Google也打不开),总时间不到两个小时,但是在静置不管大约30秒后视频回复播放。(虽然我开了两倍速播放,但是因为视频有缓存,测试结果很不准确。不知道终端开始的具体时间。)
现在不知道这种中断的原因是什么,是否是正常的。但是本次测试相对于之前的视频测试来说已经非常非常棒了。(虽然不知道以后会怎么样,可能需要长期测试吧。)
本来想写一个批处理来间隔几秒钟就执行netsh int teredo show state,但是没弄明白怎么写。(本人蠢)
本次使用的服务器依然为teredo.iks-jena.de。
teredo的变动有:
采纳了onplus大神给出的办法,将refreshinterval设置为20,将type设置为enterpriseclient。
服务器没有使用default,因为之前的win1710感觉太不稳定了。
另外在确定网络中断后(Google打不开),我刷新了xxnet的config页面,但在较长时间内都显示OK。
在本次留言发表时,视频中断,Google确定打不开。
然后检查xxnet显示一切正常,ipv6 status OK,teredo show state貌似正常。
一段时间后xxnet显示一切正常,但是显示ipv6 status Fail,teredo show state貌似正常。
再然后xxnet显示失败,ipv6 status fail,teredo show state失败,(貌似ipv6 number此时突然涨了好多,是不是恢复了之前误判的失效ip?)
然后xxnet显示失败,ipv6 fail,teredo show state貌似在manage什么,好像是在链接,没有IP地址。
一段时间后xxnet显示正常,ipv6 status OK,teredo show state貌似正常。但是网速很慢,Google打开的很慢,视频还是中断。
一段时间后网速恢复,视频恢复,google流畅。本次中断大概持续2分钟。
(手敲log……)
然后就在猜测网络中断原因是不是并不是xxnet的问题,而是teredo的问题?

@FSP-Butters
Copy link
Author

批处理实现每五秒自动检测一次teredo状态:
新建两个txt并更改后缀名。

文件名:新建文本文档.bat
文件内容:
:loop
netsh int teredo show state
Wscript sleepOneSecond.vbs
Wscript sleepOneSecond.vbs
Wscript sleepOneSecond.vbs
Wscript sleepOneSecond.vbs
Wscript sleepOneSecond.vbs
goto loop

文件名:sleepOneSecond.vbs
文件内容:
WScript.sleep 1000

运行结果:
default
两个文件都有自由发挥的空间。
本地独立测试得到结果:
服务器稳定性win1710.ipv6.microsoft.com<win10.ipv6.microsoft.com<teredo.iks-jena.de
抱歉写的很丑,但是写的很简单。
大家可以自己在开着xxnet的时候跑一下这个很简答的批处理程序,然后实时的看一下自己本地用那个服务器更稳定。(虽然方法有点蠢)
这个issue就到这里吧。

@ghost
Copy link

ghost commented Dec 11, 2017

@FSP-Butters
win1710.ipv6.microsoft.com 与 win1710.ipv6.microsoft.com. 呢?
win10.ipv6.microsoft.com 与 win10.ipv6.microsoft.com. 呢?😂

@sun3596209
Copy link

:loop
netsh int teredo show state
ping 127.0.0.1 > null
goto loop

这个似乎更简单一点,只要一个文件就好了

@ghost
Copy link

ghost commented Dec 13, 2017

default

@ghost
Copy link

ghost commented Dec 13, 2017

default

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants