Kali Linux Download 官方站点及镜像站点整理

Kali Linux 官方下载网站及镜像站点整理,附一键下载脚本;

关键词:Kali Linux download, Kali Linux 官方下载, Kali Linux 镜像站点, Kali Linux 官方网站, Kali Linux 下载地址, Kali Linux 官方源地址, Kali Linux 下载教程, Kali Linux 官方镜像, Kali Linux 官网下载, Kali Linux 官方站点地址

For English:https://www.calcguide.tech/2025/08/23/kali-linux-download-websites-and-mirror-sites-collection/

For Chinese:https://www.calcguide.tech/2025/08/23/kali-linux-download-%e5%ae%98%e6%96%b9%e7%ab%99%e7%82%b9%e5%8f%8a%e9%95%9c%e5%83%8f%e7%ab%99%e7%82%b9%e6%95%b4%e7%90%86/

🌐 官方下载网站

官方主站

  • 官方网站: https://www.kali.org/
  • 官方下载页面: https://www.kali.org/get-kali/
  • 官方文档: https://www.kali.org/docs/

官方直接下载链接

  • 最新版 ISO: https://cdimage.kali.org/kali-current/
  • 每周构建版: https://cdimage.kali.org/kali-weekly/
  • 历史版本: https://cdimage.kali.org/

🌍 国内镜像站点

教育网镜像

  1. 清华大学镜像站
  • 地址: https://mirrors.tuna.tsinghua.edu.cn/kali/
  • 特点: 速度快,稳定
  1. 中科大镜像站
  • 地址: https://mirrors.ustc.edu.cn/kali/
  • 特点: 同步及时
  1. 上海交通大学镜像站
  • 地址: https://mirror.sjtu.edu.cn/kali/
  • 特点: 华东地区访问快
  1. 华中科技大学镜像站
  • 地址: https://mirrors.hust.edu.cn/kali/
  • 特点: 华中地区优化

商业镜像

  1. 阿里云镜像站
  • 地址: https://mirrors.aliyun.com/kali/
  • 特点: 全国 CDN 加速
  1. 华为云镜像站
  • 地址: https://mirrors.huaweicloud.com/kali/
  • 特点: 企业级稳定性
  1. 腾讯云镜像站
  • 地址: https://mirrors.cloud.tencent.com/kali/
  • 特点: 南方地区访问优化

🌎 国际镜像站点

亚洲地区

  1. 日本镜像
  • 地址: https://kali.download/kali/
  • 特点: 官方推荐镜像
  1. 韩国镜像
  • 地址: https://ftp.kaist.ac.kr/kali/
  • 特点: 亚洲地区备选

欧洲地区

  1. 德国镜像
    • 地址: https://ftp.halifax.rwth-aachen.de/kali/
    • 特点: 欧洲地区优选
  2. 法国镜像
    • 地址: https://kali.mirror.garr.it/kali/
    • 特点: 欧洲高速镜像
  3. 英国镜像
    • 地址: https://www.mirrorservice.org/sites/ftp.kali.org/kali/
    • 特点: 英国教育网镜像

北美地区

  1. 美国镜像
    • 地址: https://kali.mirror.globo.tech/kali/
    • 特点: 美国西海岸镜像

📦 不同版本下载链接

桌面版

  • 标准版: kali-linux-default-amd64.iso
  • 大型版: kali-linux-large-amd64.iso
  • 全功能版: kali-linux-everything-amd64.iso

轻量版

  • 轻量版: kali-linux-light-amd64.iso
  • 最小版: kali-linux-minimal-amd64.iso

特殊用途版

  • NetHunter: 专为移动设备设计
  • ARM版: 适配ARM架构设备
  • Live版: 可直接启动的Live系统

⚡ 下载建议

选择镜像的建议

  1. 国内用户: 优先选择清华、中科大、阿里云等镜像
  2. 教育网用户: 优先选择教育网镜像站点
  3. 海外用户: 选择地理位置较近的官方镜像

下载方式

# 使用 wget 下载(推荐)
wget https://cdimage.kali.org/kali-current/kali-linux-default-amd64.iso

# 使用 aria2 多线程下载
aria2c -x 16 -s 16 https://cdimage.kali.org/kali-current/kali-linux-default-amd64.iso

# 使用 curl 下载
curl -O https://cdimage.kali.org/kali-current/kali-linux-default-amd64.iso

校验文件完整性

# 校验 SHA256 哈希值
sha256sum kali-linux-default-amd64.iso

# 校验 GPG 签名
gpg --verify kali-linux-default-amd64.iso.sig kali-linux-default-amd64.iso

🔧 相关工具

镜像写入工具

  1. Rufus (Windows)
  2. Etcher (跨平台)
  3. UNetbootin (跨平台)
  4. Ventoy (多镜像管理)

虚拟机镜像

  • VMware: 提供预配置的虚拟机镜像
  • VirtualBox: OVA 格式虚拟机
  • Hyper-V: VHDX 格式镜像

⚠️ 注意事项

  1. 安全提醒: 请从官方或可信镜像下载
  2. 校验文件: 下载后务必校验文件完整性
  3. 合法使用: 仅用于合法的安全测试目的
  4. 系统要求: 确认硬件满足最低配置要求

🔄 更新源配置

使用国内镜像源可以加快软件包更新速度:

# 编辑源列表
sudo nano /etc/apt/sources.list

# 添加国内镜像源(以清华为例)
deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib

这些镜像站点可以为您提供快速稳定的 Kali Linux 下载体验。建议根据您的地理位置和网络环境选择最适合的镜像站点。

一键下载脚本:

Kali Linux Smart Download Script

#!/bin/bash

# Kali Linux Smart Download Script
# Automatically detects language, country, and OS to select the fastest mirror

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

# Global variables
SCRIPT_VERSION="1.0"
SELECTED_MIRROR=""
SELECTED_VERSION=""
DOWNLOAD_URL=""
DOWNLOAD_DIR=""
LANGUAGE=""
COUNTRY=""
OS_TYPE=""

# Mirror lists by region
declare -A MIRRORS_CN=(
    ["tsinghua"]="https://mirrors.tuna.tsinghua.edu.cn/kali"
    ["ustc"]="https://mirrors.ustc.edu.cn/kali"
    ["aliyun"]="https://mirrors.aliyun.com/kali"
    ["huaweicloud"]="https://mirrors.huaweicloud.com/kali"
    ["sjtu"]="https://mirror.sjtu.edu.cn/kali"
    ["hust"]="https://mirrors.hust.edu.cn/kali"
    ["tencent"]="https://mirrors.cloud.tencent.com/kali"
)

declare -A MIRRORS_GLOBAL=(
    ["official"]="https://http.kali.org/kali"
    ["jp"]="https://kali.download/kali"
    ["de"]="https://ftp.halifax.rwth-aachen.de/kali"
    ["fr"]="https://kali.mirror.garr.it/kali"
    ["uk"]="https://www.mirrorservice.org/sites/ftp.kali.org/kali"
    ["us"]="https://kali.mirror.globo.tech/kali"
)

# Kali versions
declare -A KALI_VERSIONS=(
    ["default"]="kali-linux-default-amd64.iso"
    ["large"]="kali-linux-large-amd64.iso"
    ["everything"]="kali-linux-everything-amd64.iso"
    ["light"]="kali-linux-light-amd64.iso"
    ["minimal"]="kali-linux-minimal-amd64.iso"
)

# Function to print banner
print_banner() {
    echo -e "${CYAN}"
    echo "  _  __       _ _    _     _     _ _     "
    echo " | |/ /      | | |  | |   (_)   | (_)    "
    echo " | ' / __ _  | | |  | |___ _ ___| |_ ___ "
    echo " |  < / _\` | | | |  | / __| / __| | / __|"
    echo " | . \ (_| | | | |__| \__ \ \__ \ | \__ \\"
    echo " |_|\_\__,_|_|_|\____/|___/_|___/_|_|___/"
    echo -e "${NC}"
    echo -e "${YELLOW}Kali Linux Smart Download Script v${SCRIPT_VERSION}${NC}"
    echo -e "${BLUE}Automatically selecting the fastest mirror for your location${NC}"
    echo ""
}

# Function to detect system information
detect_system() {
    echo -e "${GREEN}[INFO]${NC} Detecting system information..."

    # Detect language
    if [ -n "$LANG" ]; then
        LANGUAGE=$(echo "$LANG" | cut -d'_' -f1 | tr '[:upper:]' '[:lower:]')
    else
        LANGUAGE="en"
    fi

    # Detect country
    if command -v curl >/dev/null 2>&1; then
        COUNTRY=$(curl -s https://ipapi.co/country_code/ 2>/dev/null || echo "US")
    elif command -v wget >/dev/null 2>&1; then
        COUNTRY=$(wget -qO- https://ipapi.co/country_code/ 2>/dev/null || echo "US")
    else
        COUNTRY="US"
    fi

    # Detect OS type
    if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        OS_TYPE="Linux"
    elif [[ "$OSTYPE" == "darwin"* ]]; then
        OS_TYPE="macOS"
    elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
        OS_TYPE="Windows"
    else
        OS_TYPE="Unknown"
    fi

    echo -e "${BLUE}Language:${NC} $LANGUAGE"
    echo -e "${BLUE}Country:${NC} $COUNTRY"
    echo -e "${BLUE}OS Type:${NC} $OS_TYPE"
    echo ""
}

# Function to test mirror speed
test_mirror_speed() {
    local mirror_url=$1
    local timeout=10

    echo -ne "${YELLOW}Testing${NC} $mirror_url ... "

    # Test connection speed
    if command -v curl >/dev/null 2>&1; then
        local start_time=$(date +%s%3N)
        local response=$(curl -s -o /dev/null -w "%{http_code}" --max-time $timeout "$mirror_url" 2>/dev/null)
        local end_time=$(date +%s%3N)
        local duration=$((end_time - start_time))
    elif command -v wget >/dev/null 2>&1; then
        local start_time=$(date +%s%3N)
        local response=$(wget -q --spider --timeout=$timeout "$mirror_url" 2>&1 && echo "200" || echo "0")
        local end_time=$(date +%s%3N)
        local duration=$((end_time - start_time))
    else
        echo -e "${RED}[FAIL]${NC} No download tool available"
        return 999
    fi

    if [ "$response" = "200" ] || [ "$response" = "301" ] || [ "$response" = "302" ]; then
        echo -e "${GREEN}[OK]${NC} (${duration}ms)"
        return $duration
    else
        echo -e "${RED}[FAIL]${NC}"
        return 999
    fi
}

# Function to find fastest mirror
find_fastest_mirror() {
    echo -e "${GREEN}[INFO]${NC} Finding the fastest mirror..."
    echo ""

    local fastest_time=999999
    local fastest_mirror=""
    local mirror_name=""

    # Test Chinese mirrors if in China or Chinese language
    if [[ "$COUNTRY" == "CN" ]] || [[ "$LANGUAGE" == "zh" ]]; then
        echo -e "${PURPLE}[Testing Chinese Mirrors]${NC}"
        for name in "${!MIRRORS_CN[@]}"; do
            local url="${MIRRORS_CN[$name]}"
            test_mirror_speed "$url"
            local result=$?
            if [ $result -lt $fastest_time ] && [ $result -ne 999 ]; then
                fastest_time=$result
                fastest_mirror=$url
                mirror_name=$name
            fi
        done
        echo ""
    fi

    # Test global mirrors
    echo -e "${PURPLE}[Testing Global Mirrors]${NC}"
    for name in "${!MIRRORS_GLOBAL[@]}"; do
        local url="${MIRRORS_GLOBAL[$name]}"
        test_mirror_speed "$url"
        local result=$?
        if [ $result -lt $fastest_time ] && [ $result -ne 999 ]; then
            fastest_time=$result
            fastest_mirror=$url
            mirror_name=$name
        fi
    done

    if [ -n "$fastest_mirror" ]; then
        SELECTED_MIRROR=$fastest_mirror
        echo ""
        echo -e "${GREEN}[SUCCESS]${NC} Fastest mirror selected: ${BLUE}$mirror_name${NC} (${fastest_time}ms)"
        echo -e "${BLUE}URL:${NC} $SELECTED_MIRROR"
    else
        echo -e "${RED}[ERROR]${NC} No working mirror found. Using official mirror."
        SELECTED_MIRROR="${MIRRORS_GLOBAL[official]}"
    fi
    echo ""
}

# Function to select Kali version
select_kali_version() {
    echo -e "${GREEN}[INFO]${NC} Select Kali Linux version:"
    echo ""

    local counter=1
    local versions_list=()

    for version in "${!KALI_VERSIONS[@]}"; do
        echo -e "${counter}. ${YELLOW}${version}${NC} - ${KALI_VERSIONS[$version]}"
        versions_list[$counter]=$version
        ((counter++))
    done

    echo ""
    echo -e "${BLUE}Enter your choice (1-${#versions_list[@]}):${NC} "
    read -r choice

    if [[ $choice -ge 1 && $choice -le ${#versions_list[@]} ]]; then
        SELECTED_VERSION="${versions_list[$choice]}"
        echo -e "${GREEN}[SELECTED]${NC} Version: $SELECTED_VERSION"
    else
        echo -e "${YELLOW}[DEFAULT]${NC} Using default version"
        SELECTED_VERSION="default"
    fi

    echo ""
}

# Function to select download directory
select_download_directory() {
    echo -e "${GREEN}[INFO]${NC} Select download directory:"
    echo ""

    # Default download locations
    local default_dir=""
    if [[ "$OS_TYPE" == "Windows" ]]; then
        default_dir="$HOME/Downloads"
    elif [[ "$OS_TYPE" == "macOS" ]]; then
        default_dir="$HOME/Downloads"
    else
        default_dir="$HOME/Downloads"
    fi

    echo -e "Default directory: ${BLUE}$default_dir${NC}"
    echo -e "Press Enter to use default, or enter custom path:"
    read -r custom_dir

    if [ -n "$custom_dir" ]; then
        DOWNLOAD_DIR="$custom_dir"
    else
        DOWNLOAD_DIR="$default_dir"
    fi

    # Create directory if it doesn't exist
    mkdir -p "$DOWNLOAD_DIR"

    echo -e "${GREEN}[SELECTED]${NC} Download directory: $DOWNLOAD_DIR"
    echo ""
}

# Function to construct download URL
construct_download_url() {
    local iso_file="${KALI_VERSIONS[$SELECTED_VERSION]}"

    # Handle different mirror URL structures
    if [[ "$SELECTED_MIRROR" == *"kali.org"* ]] || [[ "$SELECTED_MIRROR" == *"kali.download"* ]]; then
        DOWNLOAD_URL="${SELECTED_MIRROR}/current/$iso_file"
    else
        DOWNLOAD_URL="$SELECTED_MIRROR/$iso_file"
    fi

    echo -e "${GREEN}[INFO]${NC} Download URL constructed:"
    echo -e "${BLUE}$DOWNLOAD_URL${NC}"
    echo ""
}

# Function to download file
download_file() {
    local filename=$(basename "$DOWNLOAD_URL")
    local filepath="$DOWNLOAD_DIR/$filename"

    echo -e "${GREEN}[INFO]${NC} Starting download..."
    echo -e "${BLUE}File:${NC} $filename"
    echo -e "${BLUE}Destination:${NC} $filepath"
    echo ""

    # Choose download method
    if command -v aria2c >/dev/null 2>&1; then
        echo -e "${YELLOW}[USING]${NC} aria2c (multi-threaded)"
        aria2c -x 16 -s 16 -d "$DOWNLOAD_DIR" "$DOWNLOAD_URL"
    elif command -v axel >/dev/null 2>&1; then
        echo -e "${YELLOW}[USING]${NC} axel (multi-threaded)"
        axel -n 8 -o "$filepath" "$DOWNLOAD_URL"
    elif command -v wget >/dev/null 2>&1; then
        echo -e "${YELLOW}[USING]${NC} wget"
        cd "$DOWNLOAD_DIR" && wget "$DOWNLOAD_URL"
    elif command -v curl >/dev/null 2>&1; then
        echo -e "${YELLOW}[USING]${NC} curl"
        cd "$DOWNLOAD_DIR" && curl -O "$DOWNLOAD_URL"
    else
        echo -e "${RED}[ERROR]${NC} No download tool available!"
        exit 1
    fi

    local download_status=$?

    if [ $download_status -eq 0 ]; then
        echo ""
        echo -e "${GREEN}[SUCCESS]${NC} Download completed!"
        echo -e "${BLUE}Location:${NC} $filepath"
        echo -e "${BLUE}Size:${NC} $(ls -lh "$filepath" | awk '{print $5}')"

        # Verify file integrity
        verify_file "$filepath"
    else
        echo -e "${RED}[ERROR]${NC} Download failed!"
        exit 1
    fi
}

# Function to verify file integrity
verify_file() {
    local filepath=$1
    local filename=$(basename "$filepath")

    echo ""
    echo -e "${GREEN}[INFO]${NC} Verifying file integrity..."

    if command -v sha256sum >/dev/null 2>&1; then
        echo -e "${YELLOW}[CHECKING]${NC} SHA256 checksum..."
        sha256sum "$filepath"
    elif command -v shasum >/dev/null 2>&1; then
        echo -e "${YELLOW}[CHECKING]${NC} SHA256 checksum..."
        shasum -a 256 "$filepath"
    fi

    echo ""
    echo -e "${GREEN}[TIPS]${NC} Compare checksum with official values at:"
    echo -e "${BLUE}https://www.kali.org/get-kali/#kali-installer-images${NC}"
}

# Function to show download summary
show_summary() {
    echo ""
    echo -e "${CYAN}========== DOWNLOAD SUMMARY ==========${NC}"
    echo -e "${BLUE}Language:${NC} $LANGUAGE"
    echo -e "${BLUE}Country:${NC} $COUNTRY"
    echo -e "${BLUE}OS Type:${NC} $OS_TYPE"
    echo -e "${BLUE}Mirror:${NC} $SELECTED_MIRROR"
    echo -e "${BLUE}Version:${NC} $SELECTED_VERSION"
    echo -e "${BLUE}Download Directory:${NC} $DOWNLOAD_DIR"
    echo -e "${CYAN}=====================================${NC}"
    echo ""
}

# Function to show help
show_help() {
    echo "Kali Linux Smart Download Script"
    echo ""
    echo "Usage: $0 [OPTIONS]"
    echo ""
    echo "Options:"
    echo "  -h, --help     Show this help message"
    echo "  -v, --version  Show script version"
    echo "  --auto         Run in automatic mode"
    echo ""
    echo "Features:"
    echo "  • Automatically detects your location and language"
    echo "  • Tests multiple mirrors to find the fastest one"
    echo "  • Supports multiple Kali Linux versions"
    echo "  • Uses the best available download tool"
    echo "  • Verifies file integrity after download"
}

# Function to check dependencies
check_dependencies() {
    echo -e "${GREEN}[INFO]${NC} Checking dependencies..."

    local tools=("curl" "wget")
    local available_tools=()

    for tool in "${tools[@]}"; do
        if command -v "$tool" >/dev/null 2>&1; then
            echo -e "  ✓ ${GREEN}$tool${NC} - Available"
            available_tools+=("$tool")
        else
            echo -e "  ✗ ${RED}$tool${NC} - Not found"
        fi
    done

    # Check download tools
    local download_tools=("aria2c" "axel" "wget" "curl")
    local download_available=0

    for tool in "${download_tools[@]}"; do
        if command -v "$tool" >/dev/null 2>&1; then
            echo -e "  ✓ ${GREEN}$tool${NC} - Available (download tool)"
            download_available=1
        fi
    done

    if [ $download_available -eq 0 ]; then
        echo -e "${RED}[ERROR]${NC} No download tool available!"
        echo -e "Please install one of: aria2c, axel, wget, curl"
        exit 1
    fi

    echo ""
}

# Main function
main() {
    # Parse command line arguments
    case "$1" in
        -h|--help)
            show_help
            exit 0
            ;;
        -v|--version)
            echo "Kali Linux Smart Download Script v$SCRIPT_VERSION"
            exit 0
            ;;
        --auto)
            AUTO_MODE=1
            ;;
        *)
            AUTO_MODE=0
            ;;
    esac

    # Print banner
    print_banner

    # Check dependencies
    check_dependencies

    # Detect system information
    detect_system

    # Find fastest mirror
    find_fastest_mirror

    # Select Kali version
    if [ $AUTO_MODE -eq 0 ]; then
        select_kali_version
    else
        SELECTED_VERSION="default"
        echo -e "${YELLOW}[AUTO]${NC} Using default version"
    fi

    # Select download directory
    if [ $AUTO_MODE -eq 0 ]; then
        select_download_directory
    else
        DOWNLOAD_DIR="$HOME/Downloads"
        mkdir -p "$DOWNLOAD_DIR"
        echo -e "${YELLOW}[AUTO]${NC} Using default directory: $DOWNLOAD_DIR"
    fi

    # Construct download URL
    construct_download_url

    # Show summary
    show_summary

    # Confirm download
    if [ $AUTO_MODE -eq 0 ]; then
        echo -e "${BLUE}Start download? (y/N):${NC} "
        read -r confirm
        if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
            echo -e "${YELLOW}[CANCELLED]${NC} Download cancelled by user"
            exit 0
        fi
    fi

    # Download file
    download_file

    # Final message
    echo ""
    echo -e "${GREEN}[COMPLETED]${NC} Kali Linux download finished successfully!"
    echo -e "${BLUE}Next steps:${NC}"
    echo -e "  1. Verify the checksum matches official values"
    echo -e "  2. Write the ISO to a USB drive using Rufus, Etcher, or dd"
    echo -e "  3. Boot from the USB and install Kali Linux"
    echo ""
}

# Run main function
main "$@"

Usage Instructions

1. Save the script

# Save as kali-downloader.sh
nano kali-downloader.sh
# Paste the script content and save

2. Make it executable

chmod +x kali-downloader.sh

3. Run the script

# Interactive mode
./kali-downloader.sh

# Automatic mode (uses defaults)
./kali-downloader.sh --auto

# Show help
./kali-downloader.sh --help

Features

🌍 Smart Detection

  • Automatically detects system language and country
  • Identifies OS type (Linux, macOS, Windows)
  • Selects appropriate mirrors based on location

Speed Testing

  • Tests multiple mirrors simultaneously
  • Measures response time for each mirror
  • Automatically selects the fastest working mirror

📦 Version Selection

  • Multiple Kali Linux versions available:
  • Default (standard desktop)
  • Large (extended tools)
  • Everything (full package set)
  • Light (minimal installation)
  • Minimal (smallest footprint)

🛠️ Intelligent Download

  • Uses the best available download tool:
  • aria2c (multi-threaded, fastest)
  • axel (multi-threaded)
  • wget (standard)
  • curl (fallback)
  • Supports resume interrupted downloads
  • Shows real-time progress

🔍 Verification

  • Automatically verifies file integrity
  • Displays SHA256 checksum
  • Provides official verification links

🌈 User Experience

  • Colorful, informative output
  • Interactive menu system
  • Progress indicators
  • Error handling and recovery

Requirements

Dependencies (at least one required):

  • aria2c – Multi-threaded download (recommended)
  • axel – Multi-threaded download
  • wget – Standard download tool
  • curl – HTTP client

Installation of dependencies:

# Ubuntu/Debian
sudo apt update
sudo apt install aria2 wget curl

# CentOS/RHEL/Fedora
sudo yum install aria2 wget curl
# or
sudo dnf install aria2 wget curl

# macOS
brew install aria2 wget curl

# Windows (WSL)
sudo apt install aria2 wget curl

Advanced Usage

Command Line Options:

./kali-downloader.sh --help     # Show help
./kali-downloader.sh --version  # Show version
./kali-downloader.sh --auto     # Automatic mode

Environment Variables:

export KALI_VERSION="everything"  # Set default version
export DOWNLOAD_DIR="/custom/path" # Set custom download directory

This script provides an intelligent, automated way to download Kali Linux from the fastest available mirror based on your location and system configuration.

此条目发表在linux文章分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注