Update ipv6

This commit is contained in:
2025-11-05 19:19:36 +08:00
committed by GitHub
parent a6f100371d
commit d9f449e566

70
ipv6
View File

@@ -1,52 +1,42 @@
#!/bin/bash #!/bin/bash
echo "=== IPv6 专业检测工具 ===" echo "=== Ubuntu IPv6 基础检测 ==="
# 颜色定义 # 检查系统版本
RED='\033[0;31m' echo "1. 系统信息:"
GREEN='\033[0;32m' lsb_release -d 2>/dev/null || echo " Ubuntu $(uname -r)"
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检测函数 # 检查NetworkManager状态Ubuntu默认
check_with_color() { echo "2. 网络管理器状态:"
if $1 &> /dev/null; then if systemctl is-active NetworkManager >/dev/null 2>&1; then
echo -e "${GREEN}✓ $2${NC}" echo " ✓ NetworkManager 运行中"
return 0
else else
echo -e "${RED}✗ $2${NC}" echo " ⚠ NetworkManager 未运行"
return 1
fi fi
}
echo "正在执行IPv6检测..." # 检查IPv6内核参数
echo "3. IPv6内核参数:"
if [[ $(cat /proc/sys/net/ipv6/conf/all/disable_ipv6 2>/dev/null) -eq 0 ]]; then
echo " ✓ IPv6已启用"
else
echo " ✗ IPv6被禁用"
fi
# 1. 内核支持检测 # 检查网络接口
check_with_color "test -f /proc/net/if_inet6" "内核IPv6支持" echo "4. 网络接口IPv6状态:"
for iface in $(ip -o link show | awk -F': ' '{print $2}'); do
# 2. IPv6地址检测 ipv6_status=$(cat /proc/sys/net/ipv6/conf/$iface/disable_ipv6 2>/dev/null)
echo -e "\nIPv6地址信息:" if [[ $ipv6_status -eq 0 ]]; then
ip -6 addr show | grep "inet6" | head -5 | while read line; do echo " ✓ $iface: IPv6已启用"
echo -e " ${YELLOW}$line${NC}" else
echo " ✗ $iface: IPv6被禁用"
fi
done done
# 3. 连通性测试 # 测试连通性
echo -e "\n连通性测试:" echo "5. IPv6连通性测试:"
check_with_color "ping6 -c 1 -W 3 2001:4860:4860::8888" "Google IPv6 DNS" if ping6 -c 2 -W 3 2001:4860:4860::8888 >/dev/null 2>&1; then
check_with_color "ping6 -c 1 -W 3 2606:4700:4700::1111" "Cloudflare IPv6 DNS" echo " ✓ IPv6外网连通正常"
# 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 else
echo -e "${RED}❌ 系统未启用IPv6${NC}" echo " ✗ IPv6外网连通失败"
fi fi