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/
🌐 官方下载网站
官方主站
- 官方网站: 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 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 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.