[原创]更换IP地址解决IPv6严重丢包问题

1#    l2dy    
2016-10-29 21:33
Last-Modified: Sun Nov6 14:44:56 CST 2016
东北大学浑南校区的IPv6状况很差,官方的说法是这样的:浑南校区IPv6网络性能有限,网络设备有限保障IPv4网络运行,要有所改善要等待核心机房环境改善后增加网络设备。


但是我还是找到了解决办法:换几次IPv6地址就能不丢包了


!这个方法只适用于某些特殊的网络环境!


然而换IP不是那么容易的。特别是Windows下


所以下面总结一下各种操作系统的换IP方法


Windows:
需要以管理员身份运行两条netsh命令(Win+X然后选命令提示符(管理员),输入命令后按Enter),利用IPv6的隐私扩展生成临时IPv6地址,Windows默认开启隐私扩展,不确定电脑有没有开的可以用
  1. netsh int ipv6 show privacy
查看。如果没有开启先运行(换成disabled是禁用)
  1. netsh int ipv6 set privacy state=enabled

下面开始换IP:
  • 运行ping(在另一个窗口里运行,这个是用来了解丢包情况的,第三步完成后就可以关掉了)
    1. ping -t bt.neu6.edu.cn

  • 每隔2分钟切换临时IP
    1. netsh int ipv6 set privacy maxpreferredlifetime=120s maxrandomtime=1s store=active

  • 等延迟稳定、不丢包后
    1. netsh int ipv6 set privacy maxpreferredlifetime=1d maxrandomtime=10m store=active


就能锁住IPv6地址了。这三条命令可以写到批处理(bat/cmd)里,右键->以管理员身份运行,就不用每次在命令提示符里粘贴了
ping解释:后面的2, 3ms就是延迟,出现Request timed out.(请求超时)的话就是丢包了。



PS: 在网络连接里禁用再启用网卡可以清空临时地址,开启隐私扩展的话这样也可以换IP哦(能够承受网络断开的同学可以用这个,更方便)。后两条netsh命令由于用了`store=active`重启之后改动就消失了,不用担心弄坏什么。命令参数(时间)可以自行调整,想看命令帮助可以运行
  1. netsh int ipv6 set privacy

macOS:
这个最简单,弄两个网络位置,切换一下就会自动更换临时地址。也要同时在终端里运行ping命令(ping6丢包时不会显示,但Ctrl+C后会出现丢包数等信息):
  1. ping6 bt.neu6.edu.cn



下面的是自定义地址所以需要知道IPv6地址格式 https://en.wikipedia.org/wiki/IPv6_address


Linux:
Linux网络管理有很多不同的方式,/etc/network/interfaces、NetworkManager、wicd和等。后两个有GUI改起来很方便所以只说第一个。
  1. iface eth0 inet6 static
  2.     address 2001:db8::c0ca:1eaf
  3.     netmask 64
  4.     gateway 2001:db8::1ead:ed:beef
这是Debian Wiki上的设置静态IPv6的示例,先用
  1. ip -6 addr

  1. ip -6 route
提取网卡名、地址和网关,填进去之后就能手动修改IP了。换IP的时候先修改文件,然后运行
  1. ifdown eth0 ; ifup eth0
就可以了。ping命令和macOS一样。
PS: 默认网关会带有default,网关地址有以fe80::开头的,也有和IPv6地址前缀相同的。


FreeBSD:
FreeBSD的网络配置一般放到/etc/rc.conf里。
  1. ifconfig_em0_ipv6="inet6 2001:db8::c0ca:1eaf prefixlen 64"
  2. ipv6_defaultrouter="2001:db8::1ead:ed:beef"
网卡名、IP地址用ifconfig,网关用
  1. netstat -6nr

提取。要换IP的时候改rc.conf然后运行
  1. service netif restart em0
就可以了。ping命令和Linux一样。





This work by l2dy (Zero King) is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.


首发于六维空间。
2#    chenlong1004    
2016-10-30 09:30
谢谢楼主科普
3#    popcorner    
2016-10-31 12:38
写的真好~
愿意收录到六维互助教程里嘛?
4#    l2dy    
2016-10-31 14:51
popcorner 发表于 2016-10-31 12:38
写的真好~
愿意收录到六维互助教程里嘛?

当然OK。我又做了一些修改,应该更容易看懂了。
5#    王孑    
2016-11-1 20:14
连BSD都考虑到啦 真的考虑的好周全哦
6#    zhai0413    
2016-11-4 09:18
楼主好厉害