前言
- 操作系统版本:centos 7.6
- curl版本:7.87(centos 7自带的curl版本是7.29,测ipv6会有问题)
系统开启ipv6
centos 7默认开启 ipv6,可检查net.ipv6.conf.all.disable_ipv6
和net.ipv6.conf.default.disable_ipv6
的值是否为 0
。如果不是,可修改/etc/sysctl.conf
文件。
sysctl -a | grep net.ipv6.conf.all.disable_ipv6 sysctl -a | grep net.ipv6.conf.default.disable_ipv6
执行 ip a
或 ifconfig
可查看网卡的ipv6地址,假设网卡名为 ens192
ifconfig ens192 | grep inet6 | awk '{print $2}'
更新curl
如果操作系统版本为CentOS 7,其自带的curl版本 7.29较低,建议更新curl,高版本curl可略过。
- 从github下载新版的curl,centos 7测试7.87版本可用。GitHub - curl - release
- 备份原来的curl
mv /usr/bin/curl{,-bak}
- 将新版的curl文件放到
/usr/bin
目录下,授予可执行权限 - 测试
curl -V
测试ipv6
# ping测试,-I 指定网卡名 ping6 -c 4 -I ens192 fe80::1c33:4e53:ebfc:707f # telnet测试,测试80端口,百分号后接网卡名 telnet -6 fe80::20c:29ff:fead:6a6b%ens192 80 # curl测试,-6表示指定IPv6,-g 解析中括号,--interface 指定网卡名 curl -6 -g --interface ens192 "http://[fe80::20c:29ff:fead:6a6b]:80"
nginx配置监听ipv6地址
server { listen 80; listen [::]:80; # ... }