Update ipv6
This commit is contained in:
82
ipv6
82
ipv6
@@ -1,52 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== IPv6 专业检测工具 ==="
|
||||
echo "=== Ubuntu IPv6 基础检测 ==="
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
# 检查系统版本
|
||||
echo "1. 系统信息:"
|
||||
lsb_release -d 2>/dev/null || echo " Ubuntu $(uname -r)"
|
||||
|
||||
# 检测函数
|
||||
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}"
|
||||
# 检查NetworkManager状态(Ubuntu默认)
|
||||
echo "2. 网络管理器状态:"
|
||||
if systemctl is-active NetworkManager >/dev/null 2>&1; then
|
||||
echo " ✓ NetworkManager 运行中"
|
||||
else
|
||||
echo -e "${RED}❌ 系统未启用IPv6${NC}"
|
||||
echo " ⚠ NetworkManager 未运行"
|
||||
fi
|
||||
|
||||
# 检查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
|
||||
|
||||
# 检查网络接口
|
||||
echo "4. 网络接口IPv6状态:"
|
||||
for iface in $(ip -o link show | awk -F': ' '{print $2}'); do
|
||||
ipv6_status=$(cat /proc/sys/net/ipv6/conf/$iface/disable_ipv6 2>/dev/null)
|
||||
if [[ $ipv6_status -eq 0 ]]; then
|
||||
echo " ✓ $iface: IPv6已启用"
|
||||
else
|
||||
echo " ✗ $iface: IPv6被禁用"
|
||||
fi
|
||||
done
|
||||
|
||||
# 测试连通性
|
||||
echo "5. IPv6连通性测试:"
|
||||
if ping6 -c 2 -W 3 2001:4860:4860::8888 >/dev/null 2>&1; then
|
||||
echo " ✓ IPv6外网连通正常"
|
||||
else
|
||||
echo " ✗ IPv6外网连通失败"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user