Kali Linux 官方下载网站及镜像站点整理
文章站点:(附件)(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/
🌍 国内镜像站点
教育网镜像
清华大学镜像站
地址: https://mirrors.tuna.tsinghua.edu.cn/kali/特点: 速度快,稳定 中科大镜像站
地址: https://mirrors.ustc.edu.cn/kali/特点: 同步及时 上海交通大学镜像站
地址: https://mirror.sjtu.edu.cn/kali/特点: 华东地区访问快 华中科技大学镜像站
地址: https://mirrors.hust.edu.cn/kali/特点: 华中地区优化
商业镜像
阿里云镜像站
地址: https://mirrors.aliyun.com/kali/特点: 全国 CDN 加速 华为云镜像站
地址: https://mirrors.huaweicloud.com/kali/特点: 企业级稳定性 腾讯云镜像站
地址: https://mirrors.cloud.tencent.com/kali/特点: 南方地区访问优化
🌎 国际镜像站点
亚洲地区
日本镜像
地址: https://kali.download/kali/特点: 官方推荐镜像 韩国镜像
地址: https://ftp.kaist.ac.kr/kali/特点: 亚洲地区备选
欧洲地区
德国镜像
地址: https://ftp.halifax.rwth-aachen.de/kali/特点: 欧洲地区优选 法国镜像
地址: https://kali.mirror.garr.it/kali/特点: 欧洲高速镜像 英国镜像
地址: https://www.mirrorservice.org/sites/ftp.kali.org/kali/特点: 英国教育网镜像
北美地区
美国镜像
地址: 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系统
⚡ 下载建议
选择镜像的建议
国内用户: 优先选择清华、中科大、阿里云等镜像教育网用户: 优先选择教育网镜像站点海外用户: 选择地理位置较近的官方镜像
下载方式
# 使用 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
🔧 相关工具
镜像写入工具
Rufus (Windows)Etcher (跨平台)UNetbootin (跨平台)Ventoy (多镜像管理)
虚拟机镜像
VMware: 提供预配置的虚拟机镜像VirtualBox: OVA 格式虚拟机Hyper-V: VHDX 格式镜像
⚠️ 注意事项
安全提醒: 请从官方或可信镜像下载校验文件: 下载后务必校验文件完整性合法使用: 仅用于合法的安全测试目的系统要求: 确认硬件满足最低配置要求
🔄 更新源配置
使用国内镜像源可以加快软件包更新速度:
# 编辑源列表
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 countryIdentifies OS type (Linux, macOS, Windows)Selects appropriate mirrors based on location
⚡ Speed Testing
Tests multiple mirrors simultaneouslyMeasures response time for each mirrorAutomatically 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 downloadsShows real-time progress
🔍 Verification
Automatically verifies file integrityDisplays SHA256 checksumProvides official verification links
🌈 User Experience
Colorful, informative outputInteractive menu systemProgress indicatorsError handling and recovery
Requirements
Dependencies (at least one required):
aria2c - Multi-threaded download (recommended)axel - Multi-threaded downloadwget - Standard download toolcurl - 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.