#!/bin/bash echo "=== IPv6 专业检测工具 ===" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 检测函数 check_with_color() { if $1 &> /dev/null; then echo -e "${GREEN}✓ $2${NC}" return 0 else echo -e "${RED}✗ $2${NC}" return 1 fi } echo "正在执行IPv6检测..." # 1. 内核支持检测 check_with_color "test -f /proc/net/if_inet6" "内核IPv6支持" # 2. IPv6地址检测 echo -e "\nIPv6地址信息:" ip -6 addr show | grep "inet6" | head -5 | while read line; do echo -e " ${YELLOW}$line${NC}" done # 3. 连通性测试 echo -e "\n连通性测试:" check_with_color "ping6 -c 1 -W 3 2001:4860:4860::8888" "Google IPv6 DNS" check_with_color "ping6 -c 1 -W 3 2606:4700:4700::1111" "Cloudflare IPv6 DNS" # 4. 路由检测 echo -e "\nIPv6路由表:" ip -6 route show | head -5 | while read line; do echo -e " ${YELLOW}$line${NC}" done # 5. 总结报告 echo -e "\n=== 检测总结 ===" if ip -6 addr show | grep -q "inet6" && ping6 -c 1 -W 2 2001:4860:4860::8888 &> /dev/null; then echo -e "${GREEN}✅ 系统IPv6功能完整正常${NC}" elif ip -6 addr show | grep -q "inet6"; then echo -e "${YELLOW}⚠️ 系统有IPv6地址但无法访问外网${NC}" else echo -e "${RED}❌ 系统未启用IPv6${NC}" fi