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

### **关于没开xx-net能ping通,xx-net后不行,关闭xx-net后还是一样,重新设置teredo后又好了的终级答案** #12063

Open
yyuurrii34 opened this issue Jan 12, 2019 · 6 comments

Comments

@yyuurrii34
Copy link

yyuurrii34 commented Jan 12, 2019

关于没开xx-net能ping通,xx-net后不行,关闭xx-net后还是一样,重新设置teredo后又好了的终级答案

承接#12037
这个问题我研究了好久,不好意思,我脑子是个废物。
一开始我想的是nat穿透行为和protpreserving上,结果忙了半天还是个瞎,对于有portpreserving的,这种问题基本确实不确在,因为不存在端口上的链路路转,但今天我回老家,无意中打开老家的机子,发现不是portpreserving的,也就是nat并不对同源端口的,同样也可以在打开xx-net时ping通。我想来想去,偶然中用了一个命令
route -6 print
看了看ipv6的路由表,结果你猜怎么着,恍然大悟。
通过那个路由表你会发现,起作用的有三个接口,一个是你的网卡,二个是回环适配器,三个是teredo,当你启动xx-net后,其实会在你的网卡上新建几个用作代理的端口,而这几个端口是需要通过回环适配器和你的teredo的跃点数在同一个级别上,才能发挥作用。而有时你的网卡本身也会有个ipv6目标地址,这个目标地址有时比teredo的目标地址(2001:开头)的跃点数级别还要高,所以才会造成,开了代理后,ipv6跳转走网卡上的代理接口了,而不走teredo的。
怪不得有些网上说,要设置teredo时,请把你网卡本身的ipv6功能给卸载掉。这确实是正确的,因为这样就没有网卡本身的ipv6在路由表上“捣乱了”
综上所述,解决办法如下:
### 1。笨招,卸载掉你网卡的ipv6功能。再开启teredo
### 2.妙招,改路由表
当然你如果对route这个恐怖的命令感兴趣,可以全部用它来改,但那几乎就是浪费时间,因为路由表是活动的。我只介绍一行命令,不仅仅是修改路由表(最让你想不到的是电脑直接pppoe拔号上网也能建立teredo了),最近的研究发现修改某些参数还能帮助稳定teredo隧道 ,因此强烈推荐。

netsh interface ipv6 set interface "Teredo Tunneling Pseudo-Interface" metric=2 forwarding=enabled routerdiscovery=enabled forcearpndwolpattern=enabled enabledirectedmacwolpattern=enabled nud=enabled weakhostsend=enabled weakhostreceive=enabled store=persistent

还有些后话:无意中看到netsh interface ipv6 set interface 的参数,没准以后可以通过这些参数调整teredo通道 达到稳定性,而不需要用不断ping的方式。
另外,这个方法虽然有效果,但好像还是不稳定,如果你的路由器里的nat的特殊行为portpreserving能“是”的话,这个传偷的稳定性要强很多。
还有,用方法2的命令,还可以解决电脑直接用网卡进行pppoe宽带拔号后建立的teredo
@hanyz-github @liamcos @liuhun2000 @winters-z @hhwhtl

Originally posted by @yyuurrii34 in #12037 (comment)

@tedgo
Copy link

tedgo commented Jan 12, 2019

我今晚又试了一下,不管怎么弄,只要开了xxnet,ping就会超时。
然后我还了手机作为热点,现在我这边手机的4G网络已经是IPV6,马上速度刷刷的。
就是隧道稳定性的问题。可以一起再探讨一下

@JosanL
Copy link

JosanL commented Jan 12, 2019

恩,我从昨天讨论完发现报告有效的portpreserving大部分都是“是”,然后就到处查怎么调。。
结果是:查到的大部分靠路由器直接设置端口,然后我的路由器太旧了没有那些功能,就。。。。
结论:如果路由器支持是最好的,没有的参考上面,我选择买个新路由算了,刚好淘汰掉原来的
最近隧道稳定性的确是不好。。

@yyuurrii34
Copy link
Author

yyuurrii34 commented Jan 12, 2019

恩,我从昨天讨论完发现报告有效的portpreserving大部分都是“是”,然后就到处查怎么调。。
结果是:查到的大部分靠路由器直接设置端口,然后我的路由器太旧了没有那些功能,就。。。。
结论:如果路由器支持是最好的,没有的参考上面,我选择买个新路由算了,刚好淘汰掉原来的
最近隧道稳定性的确是不好。。

对于nat特殊行为“PortPreserving”为“否”的情况,比如电脑直接pppoe拔号的,我最新的这一行代码亲测有效,要调整接口的转发和唤醒参数。
netsh interface ipv6 set interface "Teredo Tunneling Pseudo-Interface" metric=2 forwarding=enabled routerdiscovery=enabled dhcpstaticipcoexistence=enabled forcearpndwolpattern=enabled enabledirectedmacwolpattern=enabled store=persistent
注意如果你是直接pppoe上网,xx-net自带的调整代理设置是不起作用的,请直接使用其它代理方式如“Proxy SwitchySharp
@JosanL

@happiness2925
Copy link

dhcpstaticipcoexistence不是有效的参数怎么办?系统win7
去除这条参数都能执行

@yyuurrii34
Copy link
Author

yyuurrii34 commented Jan 14, 2019

dhcpstaticipcoexistence不是有效的参数怎么办?系统win7
去除这条参数都能执行

那就去掉吧,这条是win10的teredo里的,针对有些网关开启了dhcp有些没开启,为了让大家都能用才加上的。没影响,只要你的teredo的ip地址有2001开头就不存在问题。
@happiness2925

@yyuurrii34
Copy link
Author

恩,我从昨天讨论完发现报告有效的portpreserving大部分都是“是”,然后就到处查怎么调。。
结果是:查到的大部分靠路由器直接设置端口,然后我的路由器太旧了没有那些功能,就。。。。
结论:如果路由器支持是最好的,没有的参考上面,我选择买个新路由算了,刚好淘汰掉原来的
最近隧道稳定性的确是不好。。

@JosanL
最近研究发现,这个portpreserving是pppoe服务器上的选项,我自己用路由器模拟了一个pppoe,才发现这个问题,一般主路由器(一般指带pppoe拔号的光猫)如果能获得公网ip,后面的路由器不管开不开upnp,portperserving都显示“是”。
言下之意就是,如果你公网ip就没有问题。
但我家里就是内网ip,也是能ping通的,主要是上面那行命令里的两个参数forcearpndwolpattern和 enabledirectedmacwolpattern
这两个参数倒底是enabled和disabled要根据情况调整一下,好像不固定,每种都试一下最好。

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

4 participants