记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

解决开启IPV6后NETFLIX打不开的问题&系统设置IPV4优先

解决开启IPV6后NETFLIX打不开的问题&系统设置IPV4优先

在国内,如果在路由器上开启了IPv4和IPv6,有可能netflix打不开,这是因为网飞的IPv6地址是屏蔽状态,有几种方法可以解决。

一、win10设置IPv4优先,也就是说,访问netflix时,IPv4优先访问,这样就可以绕过IPv6了,在win10里设置IPv4优先的方法如下:
将以下的三行,复制到词本里,重命名为:IPv4优先.reg,然后双击
XML/HTML代码
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters]
  3. "DisabledComponents"=dword:00000020
如果要取消IPv4优先,就去注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters删除DisabledComponents这一行, 这样一来,就可以在win10上打开netflix了。
或者更贱简单粗暴的解决问题就是给网卡的ipv6关闭了,在 TCP/ipv6 前面的勾去掉就可以了。
二、安卓手机或安卓电视使用IPv4优先的方法。
在路由器中设置,DHCP服务器里面,把DHCPv6模式改为有状态,重启安卓手机或安卓电视,这样安卓设备只能获取IPv4的地址,而无法获取IPv6的地址了。如果没有IPV6设置选项的路由就无法设置。
IP查询网:https://ipw.cn/
win系统设置参考:https://learn.microsoft.com/zh-CN/troubleshoot/windows-server/networking/configure-ipv6-in-windows
实测爱快软路由系统,IPv6设置中,内网配置,把DHCPv6模式改为有状态,重启安卓手机或安卓电视,这样安卓设备只能获取IPv4的地址,而无法获取IPv6的地址了,科学上网正常,但是netflix还是会出现无法访问,如果没有IPv6需求,可以直接给路由中IPv6关闭最为保险。
Ubuntu,Debian以及CentOS,IPV4优先和关闭IPV6
一、设置IPv4优先:
Debian及Ubuntu:
修改 /etc/gai.conf,
vim /etc/gai.conf
取消下面这一行的注释
precedence ::ffff:0:0/96 100
或者直接使用命令添加此行直接启用IPV4优先
XML/HTML代码
  1. sed -i '$aprecedence ::ffff:0:0/96 100' /etc/gai.con
CentOS:
新建文件 /etc/gai.conf,填写如下内容:
XML/HTML代码
  1. label       ::1/128        0
  2. label       ::/0           1
  3. label       2002::/16      2
  4. label       ::/96          3
  5. label       ::ffff:0:0/96  4
  6. precedence  ::1/128        50
  7. precedence  ::/0           40
  8. precedence  2002::/16      30
  9. precedence  ::/96          20
  10. precedence  ::ffff:0:0/96  100
编辑 /etc/gai.conf 文件,查找
precedence ::ffff:0:0/96 100
将前面的注释 # 去掉并保存,如果前面没有 # 号表示已经更改过设置了。如果没有查找到该行直接在文件末尾添加上
precedence ::ffff:0:0/96 100
CentOS默认没有 /etc/gai.conf 该文件,可以执行命令
XML/HTML代码
  1. cp -p /usr/share/doc/glibc-common-2.17/gai.conf /etc/
  2. sed -i '$aprecedence ::ffff:0:0/96 100' /etc/gai.conf
修改完成保存生效。这样设置后有IPv4的话优先使用IPv4,也不影响IPv6的使用。
注:::ffff:0:0/96 为IPv4/IPv6转换地址 (IPv4-mapped IPv6 address)。
二、关闭IPv6
如果确实不需要IPv6,我们可以禁用IPv6
执行命令:
XML/HTML代码
  1. echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6
这样就掉了禁用ipv6,如需恢复的话删除掉 /proc/sys/net/ipv6/conf/all/disable_ipv6 这个文件就可以。
Debian:
XML/HTML代码
  1. vim /etc/sysctl.conf
  2. net.ipv6.conf.all.disable\_ipv6 = 1
  3. net.ipv6.conf.default.disable\_ipv6 = 1
  4. net.ipv6.conf.lo.disable\_ipv6 = 1
  5. sysctl -p
CentOS:
XML/HTML代码
  1. vi /etc/sysctl.conf
  2. net.ipv6.conf.all.disable\_ipv6 =1
  3. net.ipv6.conf.default.disable\_ipv6 =1
  4. sysctl -p
以下是几个常用查询系统有没有IPV6地址和V4优先还是V6优先
XML/HTML代码
  1. #查询本机外网IPv4地址
  2. curl 4.ipw.cn
  3. #查询本机外网IPv6地址
  4. curl 6.ipw.cn
  5. #测试网络是IPv4还是IPv6访问优先(访问IPv4/IPv6双栈站点,如果返回IPv6地址,则IPv6访问优先)
  6. curl test.ipw.cn
通过以上命令可以设置IPV4优先并且保留IPV6地址,特殊场景下可以方便使用。
一键脚本:
XML/HTML代码
  1. bash <(curl -sL https://iii80.com/sh/ipv.sh)
在线检查ip由于缓存原因可以没有更新,但实际上已经实现了,具体自测。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):