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

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

data-ad-format="fluid" data-ad-layout-key="-7k+ex-4a-9w+4a">

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

For English:Kali Linux Download Websites and Mirror Sites Collection

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

🌐 官方下载网站

官方主站

官方直接下载链接

🌍 国内镜像站点

教育网镜像

清华大学镜像站

中科大镜像站

上海交通大学镜像站

华中科技大学镜像站

商业镜像

阿里云镜像站

华为云镜像站

腾讯云镜像站

🌎 国际镜像站点

亚洲地区

日本镜像

韩国镜像

欧洲地区

德国镜像

法国镜像

英国镜像

北美地区

美国镜像

📦 不同版本下载链接

桌面版

  • 标准版: 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
4
5
6
7
8
# 使用 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

校验文件完整性

1
2
3
4
5
# 校验 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 格式镜像

⚠️ 注意事项

安全提醒: 请从官方或可信镜像下载

校验文件: 下载后务必校验文件完整性

合法使用: 仅用于合法的安全测试目的

系统要求: 确认硬件满足最低配置要求

🔄 更新源配置

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

1
2
3
4
5
6
# 编辑源列表
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
#!/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}&#91;INFO]${NC} Detecting system information..."

# Detect language
if &#91; -n "$LANG" ]; then
LANGUAGE=$(echo "$LANG" | cut -d'_' -f1 | tr '&#91;:upper:]' '&#91;: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 &#91;&#91; "$OSTYPE" == "linux-gnu"* ]]; then
OS_TYPE="Linux"
elif &#91;&#91; "$OSTYPE" == "darwin"* ]]; then
OS_TYPE="macOS"
elif &#91;&#91; "$OSTYPE" == "cygwin" ]] || &#91;&#91; "$OSTYPE" == "msys" ]] || &#91;&#91; "$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}&#91;FAIL]${NC} No download tool available"
return 999
fi

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

# Function to find fastest mirror
find_fastest_mirror() {
echo -e "${GREEN}&#91;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 &#91;&#91; "$COUNTRY" == "CN" ]] || &#91;&#91; "$LANGUAGE" == "zh" ]]; then
echo -e "${PURPLE}&#91;Testing Chinese Mirrors]${NC}"
for name in "${!MIRRORS_CN&#91;@]}"; do
local url="${MIRRORS_CN&#91;$name]}"
test_mirror_speed "$url"
local result=$?
if &#91; $result -lt $fastest_time ] && &#91; $result -ne 999 ]; then
fastest_time=$result
fastest_mirror=$url
mirror_name=$name
fi
done
echo ""
fi

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

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

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

local counter=1
local versions_list=()

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

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

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

echo ""
}

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

# Default download locations
local default_dir=""
if &#91;&#91; "$OS_TYPE" == "Windows" ]]; then
default_dir="$HOME/Downloads"
elif &#91;&#91; "$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 &#91; -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}&#91;SELECTED]${NC} Download directory: $DOWNLOAD_DIR"
echo ""
}

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

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

echo -e "${GREEN}&#91;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}&#91;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}&#91;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}&#91;USING]${NC} axel (multi-threaded)"
axel -n 8 -o "$filepath" "$DOWNLOAD_URL"
elif command -v wget >/dev/null 2>&1; then
echo -e "${YELLOW}&#91;USING]${NC} wget"
cd "$DOWNLOAD_DIR" && wget "$DOWNLOAD_URL"
elif command -v curl >/dev/null 2>&1; then
echo -e "${YELLOW}&#91;USING]${NC} curl"
cd "$DOWNLOAD_DIR" && curl -O "$DOWNLOAD_URL"
else
echo -e "${RED}&#91;ERROR]${NC} No download tool available!"
exit 1
fi

local download_status=$?

if &#91; $download_status -eq 0 ]; then
echo ""
echo -e "${GREEN}&#91;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}&#91;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}&#91;INFO]${NC} Verifying file integrity..."

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

echo ""
echo -e "${GREEN}&#91;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 &#91;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}&#91;INFO]${NC} Checking dependencies..."

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

for tool in "${tools&#91;@]}"; 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&#91;@]}"; do
if command -v "$tool" >/dev/null 2>&1; then
echo -e " ✓ ${GREEN}$tool${NC} - Available (download tool)"
download_available=1
fi
done

if &#91; $download_available -eq 0 ]; then
echo -e "${RED}&#91;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 &#91; $AUTO_MODE -eq 0 ]; then
select_kali_version
else
SELECTED_VERSION="default"
echo -e "${YELLOW}&#91;AUTO]${NC} Using default version"
fi

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

# Construct download URL
construct_download_url

# Show summary
show_summary

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

# Download file
download_file

# Final message
echo ""
echo -e "${GREEN}&#91;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

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

2. Make it executable

1
chmod +x kali-downloader.sh

3. Run the script

1
2
3
4
5
6
7
8
# 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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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:

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

Environment Variables:

1
2
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.

data-ad-format="auto" data-full-width-responsive="true">