Program ini hadir tanpa jaminan. Anda harus menggunakan program ini dengan risiko Anda sendiri.
aria2 adalah utilitas untuk mengunduh file. Protokol yang didukung adalah HTTP(S), FTP, SFTP, BitTorrent, dan Metalink. aria2 dapat mengunduh file dari berbagai sumber/protokol dan mencoba memanfaatkan bandwidth unduhan maksimum Anda. Ini mendukung pengunduhan file dari HTTP(S)/FTP/SFTP dan BitTorrent secara bersamaan, sedangkan data yang diunduh dari HTTP(S)/FTP/SFTP diunggah ke gerombolan BitTorrent. Menggunakan checksum potongan Melink, aria2 secara otomatis memvalidasi potongan data saat mengunduh file seperti BitTorrent.
Halaman proyek terletak di https://aria2.github.io/.
Lihat Manual Online aria2 (terjemahan Rusia, terjemahan Portugis) untuk mempelajari cara menggunakan aria2.
Berikut adalah daftar fiturnya:
Antarmuka baris perintah
Unduh file melalui HTTP(S)/FTP/SFTP/BitTorrent
Pengunduhan tersegmentasi
Dukungan Metalink versi 4 (RFC 5854) (HTTP/FTP/SFTP/BitTorrent)
Dukungan Metalink versi 3.0 (HTTP/FTP/SFTP/BitTorrent)
Dukungan Melink/HTTP (RFC 6249).
Implementasi HTTP/1.1
Dukungan Proksi HTTP
Dukungan otentikasi HTTP BASIC
Dukungan otentikasi Proksi HTTP
Variabel lingkungan terkenal untuk proxy: http_proxy
, https_proxy
, ftp_proxy
, all_proxy
dan no_proxy
HTTP gzip, mengempiskan dukungan pengkodean konten
Verifikasi rekan menggunakan sertifikat CA tepercaya yang diberikan di HTTPS
Otentikasi sertifikat klien di HTTPS
Dukungan pengkodean transfer terpotong
Muat Cookies dari file menggunakan format Firefox3, Chromium/Google Chrome dan format Mozilla/Firefox (1.x/2.x)/Netscape.
Simpan Cookie dalam format Mozilla/Firefox (1.x/2.x)/Netscape.
Dukungan Header HTTP khusus
Dukungan Koneksi Persisten
FTP/SFTP melalui Proksi HTTP
Pembatasan kecepatan unduh/unggah
Ekstensi BitTorrent: Ekstensi cepat, DHT, PEX, MSE/PSE, Multi-Tracker, pelacak UDP
Penyemaian WEB BitTorrent. aria2 meminta potongan lebih dari ukuran potongan untuk mengurangi overhead permintaan. Ini juga mendukung permintaan pipeline dengan ukuran potongan.
Penemuan Rekan Lokal BitTorrent
Ganti nama/ubah struktur direktori unduhan BitTorrent sepenuhnya
JSON-RPC (melalui HTTP dan WebSocket)/antarmuka XML-RPC
Jalankan sebagai proses daemon
Unduhan selektif dalam torrent multi-file/Metalink
Validasi checksum potongan di Melink
Dapat menonaktifkan pengunduhan tersegmentasi di Melink
Dukungan Netrc
Dukungan file konfigurasi
Unduh URI yang ditemukan dalam file teks atau stdin dan direktori tujuan serta nama file keluaran dapat ditentukan secara opsional
Dukungan URI yang diparameterisasi
Dukungan IPv6 dengan Happy Eyeballs
Cache disk untuk mengurangi aktivitas disk
Kami menggunakan 3 nomor untuk versi aria2: MAJOR.MINOR.PATCH. Kami akan mengirimkan pembaruan MINOR pada tanggal 15 setiap bulan. Kami mungkin melewatkan rilis jika tidak ada perubahan sejak rilis terakhir. Pembekuan fitur dan dokumentasi terjadi 10 hari sebelum hari rilis (hari ke-5 setiap bulannya) untuk tim penerjemah. Kami akan mengangkat masalah tentang rilis mendatang sekitar hari itu.
Kami mungkin merilis rilis PATCH di antara rilis reguler jika kami memiliki masalah keamanan.
Versi MAJOR akan tetap di 1 untuk saat ini.
Kami memelihara kode sumber di Github: https://github.com/aria2/aria2
Untuk mendapatkan kode sumber terbaru, jalankan perintah berikut:
$ git klon https://github.com/aria2/aria2.git
Ini akan membuat direktori aria2 di direktori Anda saat ini dan file sumber disimpan di sana.
fitur | ketergantungan |
---|---|
HTTPS | OSX atau GnuTLS atau OpenSSL atau Windows |
SFTP | libssh2 |
BitTorrent | Tidak ada. Opsional: libnettle+libgmp atau libgcrypt atau OpenSSL (lihat catatan) |
tautan logam | libxml2 atau Ekspatriat. |
Jumlah pemeriksaan | Tidak ada. Opsional: OSX atau libnettle atau libgcrypt atau OpenSSL atau Windows (lihat catatan) |
gzip, kempiskan di HTTP | zlib |
DNS asinkron | Kekuatiran |
Cookie Firefox3/Kromium | libsqlite3 |
XML-RPC | libxml2 atau Ekspatriat. |
JSON-RPC melalui WebSocket | libnettle atau libgcrypt atau OpenSSL |
Catatan
libxml2 lebih diutamakan daripada Expat jika kedua perpustakaan diinstal. Jika Anda lebih suka Expat, jalankan konfigurasi dengan --without-libxml2
.
Catatan
Di Apple OSX, dukungan SSL/TLS tingkat OS akan lebih diutamakan. Oleh karena itu, baik GnuTLS maupun OpenSSL tidak diperlukan pada platform tersebut. Jika Anda ingin menonaktifkan perilaku ini, jalankan konfigurasi dengan --without-appletls
.
GnuTLS lebih diutamakan daripada OpenSSL jika kedua perpustakaan diinstal. Jika Anda lebih suka OpenSSL, jalankan konfigurasi dengan --without-gnutls
--with-openssl
.
Di Windows, tersedia implementasi SSL yang didasarkan pada kemampuan SSL asli Windows (Schannel) dan ini akan lebih disukai. Oleh karena itu, baik GnuTLS maupun OpenSSL tidak diperlukan pada platform tersebut. Jika Anda ingin menonaktifkan perilaku ini, jalankan konfigurasi dengan --without-wintls
.
Catatan
Di Apple OSX, dukungan checksum tingkat OS akan lebih diutamakan, kecuali aria2 dikonfigurasi dengan --without-appletls
.
libnettle lebih diutamakan daripada libgcrypt jika kedua perpustakaan diinstal. Jika Anda lebih suka libgcrypt, jalankan konfigurasi dengan --without-libnettle --with-libgcrypt
. Jika OpenSSL dipilih daripada GnuTLS, libnettle maupun libgcrypt tidak akan digunakan.
Jika tidak ada dependensi opsional yang diinstal, implementasi internal yang hanya mendukung md5 dan sha1 akan digunakan.
Di Windows, tersedia implementasi SSL yang didasarkan pada kemampuan asli Windows dan ini akan lebih disukai, kecuali aria2 dikonfigurasi dengan --without-wintls
.
Pengguna dapat memiliki salah satu konfigurasi berikut untuk SSL dan perpustakaan kripto:
OpenSSL
GnuTLS + libgcrypt
GnuTLS + libnettle
Apple TLS (hanya OSX)
Windows TLS (hanya Windows)
Anda dapat menonaktifkan dukungan BitTorrent dan Metalink dengan menyediakan --disable-bittorrent
dan --disable-metalink
masing-masing ke skrip konfigurasi.
Untuk mengaktifkan dukungan DNS async, Anda memerlukan c-ares.
c-ares: http://c-ares.haxx.se/
aria2 terutama ditulis dalam C++. Awalnya, ini ditulis berdasarkan fitur standar C++98/C++03. Kami sekarang memigrasikan aria2 ke standar C++11. Kode sumber saat ini memerlukan kompiler yang paham C++11. Untuk kompiler terkenal, seperti g++ dan clang, flag -std=c++11
atau -std=c++0x
harus didukung.
Untuk membangun aria2 dari paket sumber, Anda memerlukan paket pengembangan berikut (nama paket mungkin berbeda-beda tergantung distribusi yang Anda gunakan):
libgnutls-dev (Diperlukan untuk dukungan HTTPS, BitTorrent, Checksum)
nettle-dev (Diperlukan untuk BitTorrent, dukungan Checksum)
libgmp-dev (Diperlukan untuk BitTorrent)
libssh2-1-dev (Diperlukan untuk dukungan SFTP)
libc-ares-dev (Diperlukan untuk dukungan DNS async)
libxml2-dev (Diperlukan untuk dukungan Metalink)
zlib1g-dev (Diperlukan untuk gzip, dukungan decoding deflate dalam HTTP)
libsqlite3-dev (Diperlukan untuk dukungan cookie Firefox3/Chromium)
pkg-config (Diperlukan untuk mendeteksi perpustakaan yang diinstal)
Anda dapat menggunakan libgcrypt-dev alih-alih nettle-dev dan libgmp-dev:
libgpg-error-dev (Diperlukan untuk BitTorrent, dukungan Checksum)
libgcrypt-dev (Diperlukan untuk BitTorrent, dukungan Checksum)
Anda dapat menggunakan libssl-dev alih-alih libgnutls-dev, nettle-dev, libgmp-dev, libgpg-error-dev dan libgcrypt-dev:
libssl-dev (Diperlukan untuk dukungan HTTPS, BitTorrent, Checksum)
Anda dapat menggunakan libexpat1-dev alih-alih libxml2-dev:
libexpat1-dev (Diperlukan untuk dukungan Metalink)
Di Fedora Anda memerlukan paket berikut: gcc, gcc-c++, kernel-devel, libgcrypt-devel, libxml2-devel, openssl-devel, gettext-devel, cppunit
Jika Anda mengunduh kode sumber dari repositori git, Anda harus menginstal paket berikut untuk mendapatkan makro autoconf:
libxml2-dev
libcppunit-dev
autoconf
pembuatan otomatis
alat otomatis-dev
titik otomatis
alat lib
Dan jalankan perintah berikut untuk menghasilkan skrip konfigurasi dan file lain yang diperlukan untuk membangun program:
$autoreconf -i
Selain itu, Anda memerlukan Sphinx untuk membuat halaman manual.
Jika Anda membuat aria2 untuk Mac OS X, lihat makerelease-osx.mk GNU Make makefile.
Cara tercepat untuk membangun aria2 adalah dengan menjalankan skrip konfigurasi terlebih dahulu:
$ ./konfigurasi
Untuk membangun aria2 yang tertaut secara statis, gunakan opsi baris perintah ARIA2_STATIC=yes
:
$ ./konfigurasi ARIA2_STATIC=ya
Setelah konfigurasi selesai, jalankan make
untuk mengkompilasi program:
$ membuat
Lihat Kompilasi silang biner Windows untuk membuat biner Windows. Lihat Kompilasi silang biner Android untuk membuat biner Android.
Skrip konfigurasi memeriksa pustaka yang tersedia dan mengaktifkan sebanyak mungkin fitur kecuali fitur eksperimental yang tidak diaktifkan secara default.
Sejak 1.1.0, aria2 memeriksa sertifikat server HTTPS secara default. Jika Anda membangun dengan OpenSSL atau GnuTLS versi terbaru yang memiliki fungsi gnutls_certificate_set_x509_system_trust()
dan pustaka dikonfigurasi dengan benar untuk menemukan penyimpanan sertifikat CA di seluruh sistem, aria2 akan secara otomatis memuat sertifikat tersebut saat startup. Jika tidak demikian, saya sarankan untuk menyediakan jalur ke file bundel CA. Misalnya, di Debian jalur ke file bundel CA adalah '/etc/ssl/certs/ca-certificates.crt' (dalam paket ca-certificates). Ini mungkin berbeda tergantung pada distribusi Anda. Anda dapat memberikannya untuk mengonfigurasi skrip menggunakan --with-ca-bundle option
:
$ ./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' $ membuat
Tanpa opsi --with-ca-bundle
, Anda akan mengalami kesalahan saat mengakses server HTTPS karena sertifikat tidak dapat diverifikasi tanpa bundel CA. Dalam kasus seperti itu, Anda dapat menentukan file bundel CA menggunakan opsi --ca-certificate
aria2. Jika Anda belum menginstal file bundel CA, pilihan terakhir adalah menonaktifkan validasi sertifikat menggunakan --check-certificate=false
.
Menggunakan implementasi asli OSX (AppleTLS) dan/atau Windows (WinTLS) akan secara otomatis menggunakan penyimpanan sertifikat sistem, jadi --with-ca-bundle
tidak diperlukan dan akan diabaikan saat menggunakan implementasi ini.
Secara default, file bash_completion bernama aria2c
diinstal ke direktori $prefix/share/doc/aria2/bash_completion
. Untuk mengubah direktori instalasi file, gunakan opsi --with-bashcompletiondir
.
Setelah make
, executable terletak di src/aria2c
.
aria2 menggunakan CppUnit untuk pengujian unit otomatis. Untuk menjalankan pengujian unit:
$ lakukan pengecekan
Di bagian ini, kami menjelaskan cara membuat biner Windows menggunakan kompiler silang mingw-w64 (http://mingw-w64.org/doku.php) di Debian Linux. MinGW (http://www.mingw.org/) mungkin tidak dapat membangun aria2.
Cara termudah untuk membangun biner Windows adalah menggunakan Dockerfile.mingw. Lihat Dockerfile.mingw cara membuat biner. Jika Anda tidak dapat menggunakan Dockerfile, lanjutkan membaca paragraf berikut.
Pada dasarnya, setelah mengkompilasi dan menginstal pustaka yang bergantung, Anda dapat melakukan kompilasi silang hanya dengan meneruskan opsi --host
yang sesuai dan menentukan variabel CPPFLAGS
, LDFLAGS
, dan PKG_CONFIG_LIBDIR
untuk dikonfigurasi. Untuk kenyamanan dan untuk menurunkan biaya pengembangan kami, kami menyediakan cara yang lebih mudah untuk mengonfigurasi pengaturan build.
skrip mingw-config
adalah pembungkus skrip konfigurasi untuk mingw-w64. Kami menggunakannya untuk membuat build Windows resmi. Skrip ini mengasumsikan perpustakaan berikut telah dibuat untuk kompilasi silang:
kekuatiran
ekspatriat
sqlite3
zlib
libssh2
cppunit
Beberapa variabel lingkungan dapat disesuaikan untuk mengubah pengaturan build:
HOST
kompilasi silang untuk membangun program agar dapat dijalankan HOST
. Standarnya adalah i686-w64-mingw32
. Untuk membuat biner 64bit, tentukan x86_64-w64-mingw32
.
PREFIX
Awalan ke direktori tempat perpustakaan dependen diinstal. Standarnya adalah /usr/local/$HOST
. -I$PREFIX/include
akan ditambahkan ke CPPFLAGS
. -L$PREFIX/lib
akan ditambahkan ke LDFLAGS
. $PREFIX/lib/pkgconfig
akan disetel ke PKG_CONFIG_LIBDIR
.
Misalnya, untuk membuat biner 64bit, lakukan ini:
$ HOST=x86_64-w64-mingw32 ./mingw-config
Jika Anda ingin libaria2 dll dengan --enable-libaria2
, maka jangan gunakan ARIA2_STATIC=yes
dan siapkan perpustakaan eksternal versi DLL.
Di bagian ini, kami menjelaskan cara membuat biner Android menggunakan kompiler silang Android NDK di Debian Linux.
Pada saat penulisan ini, Android NDK r21e seharusnya mengkompilasi aria2 tanpa kesalahan.
skrip android-config
adalah pembungkus skrip konfigurasi untuk Android build. Kami menggunakannya untuk membuat build Android resmi. Skrip ini mengasumsikan perpustakaan berikut telah dibuat untuk kompilasi silang:
kekuatiran
opensl
ekspatriat
zlib
libssh2
Saat membangun perpustakaan di atas, pastikan untuk menonaktifkan perpustakaan bersama dan hanya mengaktifkan perpustakaan statis. Kami akan menghubungkan perpustakaan-perpustakaan itu secara statis.
android-config
mengasumsikan bahwa variabel lingkungan $ANDROID_HOME
dan $NDK
telah ditentukan.
Saat ini kami menggunakan Android NDK r21e. $NDK
harus menunjuk ke direktori ke Android NDK. Alat pembangunan dapat ditemukan di $NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/
.
Semua perpustakaan dependen harus diinstal di bawah $ANDROID_HOME/usr/local
.
Setelah android-config
, jalankan make
untuk mengkompilasi sumber.
Sphinx terbiasa membuat dokumentasi. halaman manual aria2 akan dibuat saat Anda menjalankan make
jika halaman tersebut tidak mutakhir. Anda juga dapat membuat versi HTML dari halaman manual aria2 dengan make html
. Panduan versi HTML juga tersedia online (terjemahan Rusia, terjemahan Portugis).
Nama file dari file yang diunduh ditentukan sebagai berikut:
mode file tunggal
Jika kunci "nama" ada di file .torrent, nama file adalah nilai kunci "nama". Jika tidak, nama file adalah nama dasar file .torrent yang ditambah dengan ".file". Misalnya file .torrent adalah "test.torrent", maka nama filenya adalah "test.torrent.file". Direktori untuk menyimpan file yang diunduh dapat ditentukan dengan opsi -d.
mode multi-file
Struktur direktori/file lengkap yang disebutkan dalam file .torrent telah dibuat. Direktori untuk menyimpan direktori teratas file yang diunduh dapat ditentukan dengan opsi -d.
Sebelum pengunduhan dimulai, struktur direktori lengkap dibuat jika diperlukan. Secara default, aria2 membuka paling banyak 100 file yang disebutkan dalam file .torrent, dan langsung menulis dan membaca dari file tersebut. Jumlah file yang akan dibuka secara bersamaan dapat dikontrol dengan opsi --bt-max-open-files
.
aria2 mendukung DHT yang kompatibel dengan jalur utama. Secara default, tabel perutean untuk IPv4 DHT disimpan ke $XDG_CACHE_HOME/aria2/dht.dat
dan tabel perutean untuk IPv6 DHT disimpan ke $XDG_CACHE_HOME/aria2/dht6.dat
kecuali ada file di $HOME/.aria2/dht.dat
atau $HOME/.aria2/dht6.dat
. aria2 menggunakan nomor port yang sama untuk mendengarkan DHT IPv4 dan IPv6.
Dukungan pelacak UDP diaktifkan ketika IPv4 DHT diaktifkan. Nomor port pelacak UDP dibagikan dengan DHT. Gunakan opsi --dht-listen-port
untuk mengubah nomor port.
Opsi -o
digunakan untuk mengubah nama file dari file .torrent itu sendiri, bukan nama file dari file dalam file .torrent. Untuk tujuan ini, gunakan opsi --index-out
sebagai gantinya.
Nomor port yang digunakan aria2 secara default adalah 6881-6999 untuk TCP dan UDP.
aria2 tidak mengonfigurasi penerusan porta secara otomatis. Harap konfigurasikan router atau firewall Anda secara manual.
Jumlah maksimum rekan adalah 55. Batas ini dapat terlampaui jika kecepatan pengunduhan rendah. Kecepatan pengunduhan ini dapat disesuaikan menggunakan opsi --bt-request-peer-speed-limit
.
Pada rilis 0.10.0, aria2 berhenti mengirimkan pesan permintaan setelah pengunduhan selektif selesai.
Implementasi saat ini mendukung HTTP(S)/FTP/SFTP/BitTorrent. Protokol P2P lainnya diabaikan. Dokumen Melink4 (RFC 5854) dan Melink versi 3.0 didukung.
Untuk verifikasi checksum, md5, sha-1, sha-224, sha-256, sha-384, dan sha-512 didukung. Jika beberapa algoritma hash disediakan, aria2 menggunakan algoritma yang lebih kuat. Jika verifikasi checksum seluruh file gagal, aria2 tidak mencoba lagi pengunduhan dan hanya keluar dengan kode pengembalian yang bukan nol.
Preferensi pengguna yang didukung adalah versi, bahasa, lokasi, protokol, dan os.
Jika checksum potongan disediakan dalam file Melink, aria2 secara otomatis memvalidasi potongan data selama pengunduhan. Perilaku ini dapat dimatikan dengan opsi baris perintah.
Jika tanda tangan disertakan dalam file Melink, aria2 menyimpannya sebagai file setelah pengunduhan selesai. Nama filenya adalah nama file unduhan + ".sig". Jika file yang sama sudah ada, file tanda tangan tidak disimpan.
Di Melink4, torrent multi-file dapat muncul di elemen metalink:metaurl. Karena aria2 tidak dapat mengunduh 2 torrent yang sama secara bersamaan, aria2 mengelompokkan file dalam elemen metalink:file yang memiliki metaurl BitTorrent yang sama, dan mengunduhnya dari satu gerombolan BitTorrent. Ini pada dasarnya adalah unduhan torrent multi-file dengan pemilihan file, sehingga file yang berdekatan yang tidak ada dalam dokumen Metalink tetapi berbagi bagian yang sama dengan file yang dipilih juga dibuat.
Jika URI relatif ditentukan dalam elemen metalink:url atau metalink:metaurl, aria2 menggunakan URI file Metalink sebagai URI dasar untuk menyelesaikan URI relatif. Jika URI relatif ditemukan dalam file Metalink yang dibaca dari disk lokal, aria2 menggunakan nilai opsi --metalink-base-uri
sebagai URI dasar. Jika opsi ini tidak ditentukan, URI relatif akan diabaikan.
Implementasi saat ini hanya menggunakan tautan rel=duplikat. aria2 memahami bidang header Digest dan memeriksa apakah cocok dengan nilai intisari dari sumber lain. Jika berbeda, putuskan koneksi. aria2 juga menggunakan nilai intisari ini untuk melakukan verifikasi checksum setelah pengunduhan selesai. aria2 mengenali nilai geo. Untuk memberi tahu aria2 lokasi mana yang Anda sukai, Anda dapat menggunakan opsi --metalink-location
.
dukungan netrc diaktifkan secara default untuk HTTP(S)/FTP/SFTP. Untuk menonaktifkan dukungan netrc, tentukan -n opsi baris perintah. File .netrc Anda harus memiliki izin yang benar (600).
Server WebSocket yang tertanam di aria2 mengimplementasikan spesifikasi yang ditentukan dalam RFC 6455. Versi protokol yang didukung adalah 13.
Libraria2 adalah pustaka C++ yang menawarkan fungsionalitas aria2 ke kode klien. Saat ini, libaria2 tidak dibuat secara default. Untuk mengaktifkan libaria2, gunakan opsi konfigurasi --enable-libaria2
. Secara default, hanya perpustakaan bersama yang dibuat. Untuk membangun perpustakaan statis, gunakan juga opsi konfigurasi --enable-static
. Lihat dokumentasi libaria2 untuk mengetahui cara menggunakan API.
Panduan Daring aria2
https://aria2.github.io/
PROTOKOL TRANSFER FILE RFC 959 (FTP)
RFC 1738 Uniform Resource Locator (URL)
Ekstensi FTP RFC 2428 untuk IPv6 dan NAT
Protokol Transfer Hiperteks RFC 2616 -- HTTP/1.1
Ekstensi RFC 3659 ke FTP
RFC 3986 Uniform Resource Identifier (URI): Sintaks Generik
Aspek Penerapan RFC 4038 Transisi IPv6
RFC 5854 Format Deskripsi Unduhan Metalink
RFC 6249 Metalink/HTTP: Cermin dan Hash
Mekanisme Manajemen Status HTTP RFC 6265
RFC 6266 Penggunaan Bidang Header Disposisi Konten di Hypertext Transfer Protocol (HTTP)
RFC 6455 Protokol WebSocket
RFC 6555 Happy Eyeballs: Sukses dengan Host Dual-Stack
Spesifikasi Protokol BitTorrent
BitTorrent: Protokol DHT
BitTorrent: Ekstensi Cepat
BitTorrent: Ekstensi Pelacak IPv6
BitTorrent: Ekstensi untuk Rekan untuk Mengirim File Metadata
BitTorrent: Protokol Ekstensi
BitTorrent: Ekstensi Metadata Multipelacak
BitTorrent: Protokol Pelacak UDP untuk spesifikasi protokol udp-tracker BitTorrent dan BitTorrent.
BitTorrent: WebSeed - Penyemaian HTTP/FTP (gaya GetRight)
BitTorrent: Torrent Pribadi
BitTorrent: Ekstensi DHT BitTorrent untuk IPv6
BitTorrent: Enkripsi Aliran Pesan
Kademlia: Sistem Informasi Peer-to-peer Berdasarkan Metrik XOR