IPv6 已经推广多年,但实用比例仍不算高,但是事实上IPv6在解决IPv4数量不足的问题上功不可没,之前介绍了 IPv6 理论知识, 本文介绍 IPv6 接地气的实用知识。
就我个人而言,相比 IPv4,IPv6最大的优势是每台终端理论上都可以获得世界唯一的公网地址,终于配得上拥有了姓名; 那些只有拥有了公网IP才能做的事情,在运营商不提供 IPv4 地址时,IPv6 可以帮你做
总结来说,如果有如下情况,建议使用IPv6地址:
最典型的需求就是个人 nas 了
2409, 2408, 240e
开头的全国三大运营商IPv6地址分配情况(以北京部分区域为例),格式如下
区县名称 | 移动宽带 | 移动基站 | 联通宽带 | 联通基站 | 电信宽带 | 电信基站 |
---|---|---|---|---|---|---|
110101-中国北京市东城区 | 2409:8a00::-2409:8a00:bff:: | 2409:8900::-2409:8900:bff:: | 2408:8206::-2408:8206:bff:: | 2408:8406::-2408:8406:bff:: | 240e:304::-240e:304:bff:: | 240e:404::-240e:404:bff:: |
110102-中国北京市西城区 | 2409:8a00:c00::-2409:8a00:17ff:: | 2409:8900:c00::-2409:8900:17ff:: | 2408:8206:c00::-2408:8206:17ff:: | 2408:8406:c00::-2408:8406:17ff:: | 240e:304:c00::-240e:304:17ff:: | 240e:404:c00::-240e:404:17ff:: |
110105-中国北京市朝阳区 | 2409:8a00:1800::-2409:8a00:23ff:: | 2409:8900:1800::-2409:8900:23ff:: | 2408:8206:1800::-2408:8206:23ff:: | 2408:8406:1800::-2408:8406:23ff:: | 240e:304:1800::-240e:304:23ff:: | 240e:404:1800::-240e:404:23ff:: |
fe80
开头的是内网 IPv6 地址# 检查ipv6是否开启
sysctl -a | grep ipv6 | grep disable # 如果输出的值是一堆0则表示ipv6是开启的
ip -6 addr | grep inet6,如果有看到fe80则表示ipv6是开启的
# 临时禁用ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1
# 临时开启ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=0
# 彻底禁用ipv6
在grub里添加ipv6.disable=1,然后重启操作系统
控制面板\网络和 Internet\网络连接
此种情况下表明本机开启 IPv6
属性
,控制是否勾选来开启/关闭 IPv6ipconfig
可以查看地址ipconfig
->
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : 2409:8a1e:8fbb:1e40:d40:e8eb:783f:fd34
临时 IPv6 地址. . . . . . . . . . : 2409:8a1e:8fbb:1e40:8096:86b9:7ddf:b6e9
本地链接 IPv6 地址. . . . . . . . : fe80::d70:e1eb:753f:fd54%3
IPv4 地址 . . . . . . . . . . . . : 192.168.1.5
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : fe80::1%3
192.168.1.1
若此处看到
24
开头的IPv6地址基本可以判定当前获取到了公网 IP
ifconfig
ifconfig
->
bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.222 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 2409:8a1e:8fbb:1e40:20dc:135f:b737:e9a7 prefixlen 64 scopeid 0x0<global>
inet6 fe80::ca56:b29b:a90f:338a prefixlen 64 scopeid 0x20<link>
ether 74:c2:f0:d7:d9:c3 txqueuelen 1000 (以太网)
RX packets 89703 bytes 5291226 (5.2 MB)
RX errors 0 dropped 56738 overruns 0 frame 0
TX packets 6874 bytes 580124 (580.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip a
ip a
->
bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 76:c6:f0:d7:d9:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.222/24 brd 192.168.1.255 scope global noprefixroute bridge0
valid_lft forever preferred_lft forever
inet6 2409:8a1e:8fbb:1e40:20dc:135f:b737:e9a7/64 scope global dynamic noprefixroute
valid_lft 229439sec preferred_lft 143039sec
inet6 fe80::ca56:b29b:a90f:338a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
同样地,若此处看到
24
开头的IPv6地址基本可以判定当前获取到了公网 IP
在Windows 和Linux 下均可以使用 ping
命令直接接IPv6 地址(与IPv4相同)
C:\Users\Administrator>ping 2408:4002:110b:200:98c3:464:ef7d:7639
正在 Ping 2408:4002:110b:200:98c3:464:ef7d:7639 具有 32 字节的数据:
来自 2408:4002:110b:200:98c3:464:ef7d:7639 的回复: 时间=6ms
来自 2408:4002:110b:200:98c3:464:ef7d:7639 的回复: 时间=5ms
2408:4002:110b:200:98c3:464:ef7d:7639 的 Ping 统计信息:
数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 5ms,最长 = 6ms,平均 = 5ms
$ ping 2408:4002:110b:200:98c3:464:ef7d:7639
PING 2408:4002:110b:200:98c3:464:ef7d:7639(2408:4002:110b:200:98c3:464:ef7d:7639) 56 data bytes
64 比特,来自 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=1 ttl=55 时间=6.01 毫秒
64 比特,来自 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=2 ttl=55 时间=5.53 毫秒
64 比特,来自 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=3 ttl=55 时间=5.79 毫秒
^C
--- 2408:4002:110b:200:98c3:464:ef7d:7639 ping 统计 ---
已发送 3 个包, 已接收 3 个包, 0% 包丢失, 耗时 2003 毫秒
rtt min/avg/max/mdev = 5.531/5.776/6.006/0.194 ms
在Linxu 下 也可以使用 ping6
命令专门ping IPv6地址
$ ping6 2408:4002:110b:200:98c3:464:ef7d:7639
PING 2408:4002:110b:200:98c3:464:ef7d:7639(2408:4002:110b:200:98c3:464:ef7d:7639) 56 data bytes
64 比特,来自 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=1 ttl=55 时间=6.35 毫秒
64 比特,来自 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=2 ttl=55 时间=5.47 毫秒
^C
--- 2408:4002:110b:200:98c3:464:ef7d:7639 ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% 包丢失, 耗时 1002 毫秒
在Android终端中 Termux
可以创建 Android 控制台,其中需要使用 ping6
来接IPv6地址
~ $ ping 2408:4002:110b:200:98c3:464:ef7d:7639
ping: unknown host 2408:4002:110b:200:98c3:464:ef7d:7639
~ $ ping6 2408:4002:110b:200:98c3:464:ef7d:7639
PING 2408:4002:110b:200:98c3:464:ef7d:7639(2408:4002:110b:200:98c3:464:ef7d:7639) 56 data bytes
64 bytes from 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=1 ttl=55 time=22.1 ms
64 bytes from 2408:4002:110b:200:98c3:464:ef7d:7639: icmp_seq=2 ttl=55 time=18.5 ms
^C
--- 2408:4002:110b:200:98c3:464:ef7d:7639 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 18.576/20.362/22.148/1.786 ms
ssh username@ipv6
C:\Users\Administrator>ssh vvd@2408:4002:110b:200:98c3:464:ef7d:7639
vvd@2408:4002:110b:200:98c3:464:ef7d:7639's password:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Welcome to Alibaba Cloud Elastic Compute Service !
Last login: Sat Dec 25 12:53:42 2021 from 2409:8a1e:8fbb:1e40:fcc6:9f4a:d491:90b6
vvd@iZuf6fnlkc96o99z1t5zc7Z:~$
# 查看ip
ip -6 addr
# 查看路由
ip -6 route
# 查看多播地址
ip -6 maddr
netstat -gn
# 查dns AAAA记录(走ipv4线路)
dig -t AAAA fzxiaomange.com
nslookup -query=AAAA fzxiaomange.com
# 查dns AAAA记录(走ipv6线路)
dig @2620:0:ccc::2 -6 -t AAAA fzxiaomange.com
nslookup -query=AAAA fzxiaomange.com 2620:0:ccc::2
# 查dns AAAA记录(走ipv6线路的最纯粹、最完整、最靠谱方法)
dig @2620:0:ccc::2 -t AAAA -6 fzxiaomange.com +trace
# curl
curl -6 https://fzxiaomange.com
# ping
ping6 fzxiaomange.com
# trace route
mtr -6 fzxiaomange.com
traceroute6 fzxiaomange.com
tracert6 fzxiaomange.com
tracepath6 fzxiaomange.com
# 邻居地址解析,类似ipv4的arping
ndisc6 -n 2002::102 eth0
# iptables查看
ip6tables-save
# tcpdump
tcpdump -nnn -i eth0 ip6
由 DNSPod 提供的公共免费 DNS,后来 DNSPod 被腾讯(Tencent)收购,现在属于腾讯公司所有,稳定性和连通性也是不错的,经测试海外也可以使用。
DNSPod 除了 IPv4,现在同时支持 IPv6 DNS 和 DoT/DoH 服务。
项目 | 地址 |
---|---|
IPv4 | 119.29.29.29 |
IPv6 | 2402:4e00:: |
DoH 地址 | |
DoH (国密 SM2,基于腾讯云政企国密解决方案) 地址 | |
DoT 地址 | dot.pub |
这组 DNS 是由阿里巴巴提供的,国内连通性还是不错的,海外部分地区连通性不是特别好,具体可以测试一下。
阿里 DNS 同时提供了 IPv4/IPv6 DNS 和 DoT/DoH 服务。
项目 | 地址 |
---|---|
IPv4 | 223.5.5.5 / 223.6.6.6 |
IPv6 | 2400:3200::1 / 2400:3200:baba::1 |
DoH 地址 | |
DoT 地址 | dns.alidns.com |
中国最大的搜索引擎百度提供的公共 DNS,经测试海外连通性也是不错的,暂时百度只提供了一组 IPv4 和 IPv6 DNS 地址。
项目 | 地址 |
---|---|
IPv4 | 180.76.76.76 |
IPv6 | 2400:da00::6666 |
360 提供的 DNS 服务,只提供了 IPv4 和 DoT/DoH 服务。
项目 | 地址 |
---|---|
针对中国电信/铁通/移动的 IPv4 | 101.226.4.6 / 218.30.118.6 |
针对中国联通的 IPv4 | 123.125.81.6 / 140.207.198.6 |
DoH 地址 | |
DoT 地址 | dot.360.cn |
两台拥有IPv6地址的主机AB,A 可以 ping 通B,B ping A 超时
网络信息
-> 防火墙
中配置规则我的腾讯云服务器没有IPv6 地址因此没有设置相关规则,思路是一样的
ping的 ICMP协议被放行,但tcp 22端口被拒绝访问,总结问题就是 被墙了
安全 -> 防火墙 -> 攻击保护设置 -> 去掉Ipv6Spi
考虑代理服务器的问题,关闭代理服务器
代理服务器设置
,关闭相关代理