โปรแกรมนี้ไม่มีการรับประกัน คุณต้องใช้โปรแกรมนี้โดยยอมรับความเสี่ยงเอง
aria2 เป็นโปรแกรมอรรถประโยชน์สำหรับการดาวน์โหลดไฟล์ โปรโตคอลที่รองรับ ได้แก่ HTTP(S), FTP, SFTP, BitTorrent และ Metalink aria2 สามารถดาวน์โหลดไฟล์จากหลายแหล่ง/โปรโตคอล และพยายามใช้แบนด์วิธการดาวน์โหลดสูงสุดของคุณ รองรับการดาวน์โหลดไฟล์จาก HTTP(S)/FTP/SFTP และ BitTorrent ในเวลาเดียวกัน ในขณะที่ข้อมูลที่ดาวน์โหลดจาก HTTP(S)/FTP/SFTP จะถูกอัปโหลดไปยังกลุ่ม BitTorrent การใช้เช็คซัมก้อนของ Metalink ทำให้ aria2 ตรวจสอบความถูกต้องของข้อมูลจำนวนมากโดยอัตโนมัติขณะดาวน์โหลดไฟล์เช่น BitTorrent
หน้าโครงการอยู่ที่ https://aria2.github.io/
ดูคู่มือออนไลน์ aria2 (การแปลภาษารัสเซีย การแปลภาษาโปรตุเกส) เพื่อเรียนรู้วิธีใช้ aria2
นี่คือรายการคุณสมบัติ:
อินเทอร์เฟซบรรทัดคำสั่ง
ดาวน์โหลดไฟล์ผ่าน HTTP(S)/FTP/SFTP/BitTorrent
การดาวน์โหลดแบบแบ่งส่วน
รองรับ Metalink เวอร์ชัน 4 (RFC 5854) (HTTP/FTP/SFTP/BitTorrent)
รองรับ Metalink เวอร์ชัน 3.0 (HTTP/FTP/SFTP/BitTorrent)
รองรับ Metalink/HTTP (RFC 6249)
การใช้งาน HTTP/1.1
การสนับสนุนพร็อกซี HTTP
รองรับการตรวจสอบสิทธิ์ HTTP BASIC
รองรับการตรวจสอบสิทธิ์ HTTP Proxy
ตัวแปรสภาพแวดล้อมที่รู้จักกันดีสำหรับพร็อกซี: http_proxy
, https_proxy
, ftp_proxy
, all_proxy
และ no_proxy
HTTP gzip ยุบการสนับสนุนการเข้ารหัสเนื้อหา
ตรวจสอบเพียร์โดยใช้ใบรับรอง CA ที่เชื่อถือได้ที่กำหนดใน HTTPS
การรับรองความถูกต้องใบรับรองไคลเอ็นต์ใน HTTPS
รองรับการเข้ารหัสการถ่ายโอนแบบก้อน
โหลดคุกกี้จากไฟล์โดยใช้รูปแบบ Firefox3, Chromium/Google Chrome และ Mozilla/Firefox (1.x/2.x)/Netscape รูปแบบ
บันทึกคุกกี้ในรูปแบบ Mozilla/Firefox (1.x/2.x)/Netscape
การสนับสนุนส่วนหัว HTTP แบบกำหนดเอง
รองรับการเชื่อมต่อแบบถาวร
FTP/SFTP ผ่านพร็อกซี HTTP
การควบคุมความเร็วในการดาวน์โหลด/อัพโหลด
ส่วนขยาย BitTorrent: ส่วนขยายที่รวดเร็ว, DHT, PEX, MSE/PSE, Multi-Tracker, ตัวติดตาม UDP
BitTorrent WEB-การเพาะ aria2 ขอชิ้นที่มากกว่าขนาดชิ้นเพื่อลดค่าใช้จ่ายในการร้องขอ นอกจากนี้ยังรองรับคำขอแบบไปป์ไลน์ที่มีขนาดชิ้นส่วนอีกด้วย
การค้นพบเพียร์ท้องถิ่นของ BitTorrent
เปลี่ยนชื่อ/เปลี่ยนโครงสร้างไดเร็กทอรีของการดาวน์โหลด BitTorrent โดยสมบูรณ์
อินเทอร์เฟซ JSON-RPC (ผ่าน HTTP และ WebSocket)/XML-RPC
ทำงานเป็นกระบวนการภูต
เลือกดาวน์โหลดในรูปแบบ torrent/Metalink หลายไฟล์
การตรวจสอบความถูกต้องของเช็คซัมก้อนใน Metalink
สามารถปิดการดาวน์โหลดแบบแบ่งส่วนใน Metalink ได้
รองรับ Netrc
รองรับไฟล์การกำหนดค่า
ดาวน์โหลด URI ที่พบในไฟล์ข้อความหรือ stdin และสามารถระบุไดเร็กทอรีปลายทางและชื่อไฟล์เอาต์พุตได้
การสนับสนุน URI แบบกำหนดพารามิเตอร์
รองรับ IPv6 พร้อม Happy Eyeballs
ดิสก์แคชเพื่อลดกิจกรรมของดิสก์
เราใช้ตัวเลข 3 ตัวสำหรับเวอร์ชัน aria2: MAJOR.MINOR.PATCH เราจะจัดส่งการอัปเดตของ MINOR ในวันที่ 15 ของทุกเดือน เราอาจข้ามการเผยแพร่หากเราไม่มีการเปลี่ยนแปลงใด ๆ นับตั้งแต่การเผยแพร่ครั้งล่าสุด การหยุดใช้งานฟีเจอร์และเอกสารจะเกิดขึ้น 10 วันก่อนวันวางจำหน่าย (วันที่ 5 ของเดือน) สำหรับทีมแปล เราจะแจ้งปัญหาเกี่ยวกับการเปิดตัวที่กำลังจะมาถึงประมาณวันนั้น
เราอาจเผยแพร่ PATCH ระหว่างการเผยแพร่ปกติหากเรามีปัญหาด้านความปลอดภัย
เวอร์ชัน MAJOR จะอยู่ที่ 1 ในขณะนี้
เรารักษาซอร์สโค้ดไว้ที่ Github: https://github.com/aria2/aria2
หากต้องการรับซอร์สโค้ดล่าสุด ให้รันคำสั่งต่อไปนี้:
$ โคลนคอมไพล์ https://github.com/aria2/aria2.git
สิ่งนี้จะสร้างไดเร็กทอรี aria2 ในไดเร็กทอรีปัจจุบันของคุณและไฟล์ต้นฉบับจะถูกเก็บไว้ที่นั่น
คุณสมบัติ | การพึ่งพาอาศัยกัน |
---|---|
HTTPS | OSX หรือ GnuTLS หรือ OpenSSL หรือ Windows |
เอสเอฟทีพี | libssh2 |
บิตทอร์เรนต์ | ไม่มี. ทางเลือก: libnettle+libgmp หรือ libgcrypt หรือ OpenSSL (ดูหมายเหตุ) |
เมทัลลิงค์ | libxml2 หรือชาวต่างชาติ |
เช็คซัม | ไม่มี. ทางเลือก: OSX หรือ libnettle หรือ libgcrypt หรือ OpenSSL หรือ Windows (ดูหมายเหตุ) |
gzip ยุบใน HTTP | ซลิบ |
DNS แบบอะซิงโครนัส | ซี-อาเรส |
คุกกี้ Firefox3/โครเมียม | libsqlite3 |
XML-RPC | libxml2 หรือชาวต่างชาติ |
JSON-RPC บน WebSocket | libnettle หรือ libgcrypt หรือ OpenSSL |
บันทึก
libxml2 มีความสำคัญมากกว่า Expat หากติดตั้งทั้งสองไลบรารี หากคุณต้องการ Expat ให้รัน configuration ด้วย --without-libxml2
บันทึก
บน Apple OSX แนะนำให้ใช้การรองรับ SSL/TLS ระดับ OS ดังนั้นจึงไม่จำเป็นต้องใช้ GnuTLS และ OpenSSL บนแพลตฟอร์มนั้น หากคุณต้องการปิดการใช้งานลักษณะการทำงานนี้ ให้รัน configuration ด้วย --without-appletls
GnuTLS มีความสำคัญเหนือกว่า OpenSSL หากติดตั้งทั้งสองไลบรารี หากคุณต้องการ OpenSSL ให้รัน configuration ด้วย --without-gnutls
--with-openssl
บน Windows มีการใช้งาน SSL ที่ขึ้นอยู่กับความสามารถ Windows SSL ดั้งเดิม (Schannel) และจะเป็นที่ต้องการ ดังนั้นจึงไม่จำเป็นต้องใช้ GnuTLS และ OpenSSL บนแพลตฟอร์มนั้น หากคุณต้องการปิดการใช้งานลักษณะการทำงานนี้ ให้รัน configuration ด้วย --without-wintls
บันทึก
บน Apple OSX แนะนำให้ใช้การรองรับการตรวจสอบผลรวมระดับ OS เว้นแต่ว่า aria2 จะได้รับการกำหนดค่าด้วย --without-appletls
libnettle มีความสำคัญเหนือกว่า libgcrypt หากติดตั้งทั้งสองไลบรารี หากคุณต้องการ libgcrypt ให้รัน configuration with --without-libnettle --with-libgcrypt
หากเลือก OpenSSL บน GnuTLS จะไม่มีการใช้ libnettle หรือ libgcrypt
หากไม่มีการติดตั้งการขึ้นต่อกันที่เป็นตัวเลือก การใช้งานภายในที่รองรับเฉพาะ md5 และ sha1 เท่านั้น
บน Windows มีการใช้งาน SSL ที่ขึ้นอยู่กับความสามารถดั้งเดิมของ Windows และจะเป็นที่ต้องการ เว้นแต่ว่า aria2 จะได้รับการกำหนดค่าด้วย --without-wintls
ผู้ใช้สามารถมีการกำหนดค่าอย่างใดอย่างหนึ่งต่อไปนี้สำหรับ SSL และไลบรารี crypto:
OpenSSL
GnuTLS + libgcrypt
GnuTLS + libnettle
Apple TLS (OSX เท่านั้น)
Windows TLS (เฉพาะ Windows เท่านั้น)
คุณสามารถปิดการใช้งานการสนับสนุน BitTorrent และ Metalink ได้โดยระบุ --disable-bittorrent
และ --disable-metalink
ให้กับสคริปต์กำหนดค่าตามลำดับ
หากต้องการเปิดใช้งานการรองรับ async DNS คุณต้องมี c-ares
ซี-ares: http://c-ares.haxx.se/
aria2 เขียนด้วยภาษา C++ เป็นหลัก เริ่มแรกเขียนโดยใช้คุณสมบัติมาตรฐาน C++98/C++03 ขณะนี้เรากำลังย้าย aria2 ไปเป็นมาตรฐาน C++11 ซอร์สโค้ดปัจจุบันต้องการคอมไพเลอร์ที่รับรู้ C++11 สำหรับคอมไพเลอร์ที่รู้จักกันดี เช่น g++ และ clang จะต้องรองรับแฟล็ก -std=c++11
หรือ -std=c++0x
ในการสร้าง aria2 จากแพ็คเกจต้นทาง คุณต้องมีแพ็คเกจการพัฒนาต่อไปนี้ (ชื่อแพ็คเกจอาจแตกต่างกันไปขึ้นอยู่กับการแจกจ่ายที่คุณใช้):
libgnutls-dev (จำเป็นสำหรับ HTTPS, BitTorrent, รองรับ Checksum)
nettle-dev (จำเป็นสำหรับ BitTorrent, รองรับ Checksum)
libgmp-dev (จำเป็นสำหรับ BitTorrent)
libssh2-1-dev (จำเป็นสำหรับการรองรับ SFTP)
libc-ares-dev (จำเป็นสำหรับการรองรับ async DNS)
libxml2-dev (จำเป็นสำหรับการรองรับ Metalink)
zlib1g-dev (จำเป็นสำหรับ gzip, ยุบการสนับสนุนการถอดรหัสใน HTTP)
libsqlite3-dev (จำเป็นสำหรับการรองรับคุกกี้ Firefox3/Chromium)
pkg-config (จำเป็นในการตรวจหาไลบรารีที่ติดตั้ง)
คุณสามารถใช้ libgcrypt-dev แทน nettle-dev และ libgmp-dev:
libgpg-error-dev (จำเป็นสำหรับ BitTorrent, รองรับ Checksum)
libgcrypt-dev (จำเป็นสำหรับ BitTorrent, รองรับ Checksum)
คุณสามารถใช้ libssl-dev แทน libgnutls-dev, nettle-dev, libgmp-dev, libgpg-error-dev และ libgcrypt-dev:
libssl-dev (จำเป็นสำหรับการรองรับ HTTPS, BitTorrent, Checksum)
คุณสามารถใช้ libexpat1-dev แทน libxml2-dev:
libexpat1-dev (จำเป็นสำหรับการรองรับ Metalink)
บน Fedora คุณต้องมีแพ็คเกจต่อไปนี้: gcc, gcc-c++, kernel-devel, libgcrypt-devel, libxml2-devel, openssl-devel, gettext-devel, cppunit
หากคุณดาวน์โหลดซอร์สโค้ดจากที่เก็บ git คุณต้องติดตั้งแพ็คเกจต่อไปนี้เพื่อรับมาโคร autoconf:
libxml2-dev
libcppunit-dev
การประชุมอัตโนมัติ
ออโตเมค
autotools-dev
จุดอัตโนมัติ
libtool
และรันคำสั่งต่อไปนี้เพื่อสร้างสคริปต์กำหนดค่าและไฟล์อื่นๆ ที่จำเป็นในการสร้างโปรแกรม:
$ การตรวจสอบอัตโนมัติ -i
นอกจากนี้คุณต้องมี Sphinx เพื่อสร้าง man page
หากคุณกำลังสร้าง aria2 สำหรับ Mac OS X โปรดดูที่ makerelease-osx.mk GNU Make makefile
วิธีที่เร็วที่สุดในการสร้าง aria2 คือการรันสคริปต์กำหนดค่าก่อน:
$ ./configure
หากต้องการสร้าง aria2 ที่เชื่อมโยงแบบคงที่ ให้ใช้ตัวเลือกบรรทัดคำสั่ง ARIA2_STATIC=yes
:
$ ./configure ARIA2_STATIC=ใช่
หลังจากตั้งค่าเสร็จแล้ว ให้รัน make
เพื่อคอมไพล์โปรแกรม:
$ ทำ
ดูไบนารี Windows ที่คอมไพล์ข้ามเพื่อสร้างไบนารี Windows ดูไบนารี Android ที่คอมไพล์ข้ามเพื่อสร้างไบนารี Android
สคริปต์กำหนดค่าจะตรวจสอบไลบรารีที่มีอยู่และเปิดใช้งานคุณสมบัติต่างๆ ให้ได้มากที่สุด ยกเว้นคุณสมบัติทดลองที่ไม่ได้เปิดใช้งานตามค่าเริ่มต้น
ตั้งแต่ 1.1.0 เป็นต้นมา aria2 จะตรวจสอบใบรับรองของเซิร์ฟเวอร์ HTTPS ตามค่าเริ่มต้น หากคุณสร้างด้วย OpenSSL หรือ GnuTLS เวอร์ชันล่าสุดซึ่งมีฟังก์ชัน gnutls_certificate_set_x509_system_trust()
และไลบรารีได้รับการกำหนดค่าอย่างเหมาะสมเพื่อค้นหาที่เก็บใบรับรอง CA ทั่วทั้งระบบ aria2 จะโหลดใบรับรองเหล่านั้นโดยอัตโนมัติเมื่อเริ่มต้นระบบ หากไม่เป็นเช่นนั้น ฉันขอแนะนำให้ระบุเส้นทางไปยังไฟล์บันเดิล CA ตัวอย่างเช่น ใน Debian เส้นทางไปยังไฟล์บันเดิล CA คือ '/etc/ssl/certs/ca-certificates.crt' (ในแพ็คเกจ ca-certificates) สิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับการกระจายของคุณ คุณสามารถให้มันกำหนดค่าสคริปต์โดยใช้ --with-ca-bundle option
:
$ ./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' $ ทำ
หากไม่มีตัวเลือก --with-ca-bundle
คุณจะพบข้อผิดพลาดเมื่อเข้าถึงเซิร์ฟเวอร์ HTTPS เนื่องจากไม่สามารถตรวจสอบใบรับรองได้หากไม่มีบันเดิล CA ในกรณีเช่นนี้ คุณสามารถระบุไฟล์บันเดิล CA ได้โดยใช้อ็อพชัน --ca-certificate
ของ aria2 หากคุณไม่ได้ติดตั้งไฟล์บันเดิล CA วิธีสุดท้ายคือปิดการใช้งานการตรวจสอบใบรับรองโดยใช้ --check-certificate=false
การใช้การใช้งาน OSX ดั้งเดิม (AppleTLS) และ/หรือ Windows (WinTLS) จะใช้ที่เก็บใบรับรองระบบโดยอัตโนมัติ ดังนั้น --with-ca-bundle
จึงไม่จำเป็น และจะถูกละเว้นเมื่อใช้การใช้งานเหล่านี้
ตามค่าเริ่มต้น ไฟล์ bash_completion ชื่อ aria2c
จะถูกติดตั้งลงในไดเร็กทอรี $prefix/share/doc/aria2/bash_completion
หากต้องการเปลี่ยนไดเร็กทอรีการติดตั้งของไฟล์ให้ใช้ตัวเลือก --with-bashcompletiondir
หลังจาก make
ไฟล์เรียกทำงานจะอยู่ที่ src/aria2c
aria2 ใช้ CppUnit สำหรับการทดสอบหน่วยอัตโนมัติ หากต้องการรันการทดสอบหน่วย:
$ ทำการตรวจสอบ
ในส่วนนี้ เราจะอธิบายวิธีสร้างไบนารีของ Windows โดยใช้คอมไพเลอร์ข้าม mingw-w64 (http://mingw-w64.org/doku.php) บน Debian Linux MinGW (http://www.mingw.org/) อาจไม่สามารถสร้าง aria2 ได้
วิธีที่ง่ายที่สุดในการสร้างไบนารีของ Windows คือการใช้ Dockerfile.mingw ดู Dockerfile.mingw วิธีสร้างไบนารี หากคุณไม่สามารถใช้ Dockerfile ได้ ให้อ่านย่อหน้าต่อไปนี้ต่อไป
โดยพื้นฐานแล้ว หลังจากการคอมไพล์และติดตั้งไลบรารี่ที่ขึ้นต่อกัน คุณสามารถทำการคอมไพล์ข้ามได้เพียงแค่ส่งตัวเลือก --host
ที่เหมาะสมและระบุตัวแปร CPPFLAGS
, LDFLAGS
และ PKG_CONFIG_LIBDIR
เพื่อกำหนดค่า เพื่อความสะดวกและเพื่อลดต้นทุนการพัฒนาของเราเอง เรามีวิธีที่ง่ายกว่าในการกำหนดค่าการตั้งค่าบิลด์
สคริปต์ mingw-config
เป็นตัวตัดสคริปต์กำหนดค่าสำหรับ mingw-w64 เราใช้มันเพื่อสร้าง Windows build อย่างเป็นทางการ สคริปต์นี้ถือว่าไลบรารีต่อไปนี้ถูกสร้างขึ้นสำหรับการคอมไพล์ข้าม:
ซี-อาเรส
ชาวต่างชาติ
sqlite3
ซลิบ
libssh2
cppunit
ตัวแปรสภาพแวดล้อมบางตัวสามารถปรับได้เพื่อเปลี่ยนการตั้งค่าบิลด์:
HOST
คอมไพล์ข้ามเพื่อสร้างโปรแกรมให้ทำงานบน HOST
โดยค่าเริ่มต้นจะเป็น i686-w64-mingw32
หากต้องการสร้างไบนารี 64 บิต ให้ระบุ x86_64-w64-mingw32
PREFIX
คำนำหน้าไดเร็กทอรีที่ติดตั้งไลบรารีที่ขึ้นต่อกัน โดยมีค่าเริ่มต้นเป็น /usr/local/$HOST
-I$PREFIX/include
จะถูกเพิ่มใน CPPFLAGS
-L$PREFIX/lib
จะถูกเพิ่มใน LDFLAGS
$PREFIX/lib/pkgconfig
จะถูกตั้งค่าเป็น PKG_CONFIG_LIBDIR
ตัวอย่างเช่น หากต้องการสร้างไบนารี่ 64 บิต ให้ทำดังนี้:
$ โฮสต์=x86_64-w64-mingw32 ./mingw-config
หากคุณต้องการ libaria2 dll ด้วย --enable-libaria2
อย่าใช้ ARIA2_STATIC=yes
และเตรียมไลบรารีภายนอกเวอร์ชัน DLL
ในส่วนนี้ เราจะอธิบายวิธีสร้างไบนารีของ Android โดยใช้คอมไพเลอร์ข้าม Android NDK บน Debian Linux
ในขณะที่เขียนบทความนี้ Android NDK r21e ควรคอมไพล์ aria2 โดยไม่มีข้อผิดพลาด
สคริปต์ android-config
เป็น wrapper สคริปต์กำหนดค่าสำหรับ Android build เราใช้มันเพื่อสร้างบิลด์ Android อย่างเป็นทางการ สคริปต์นี้ถือว่าไลบรารีต่อไปนี้ถูกสร้างขึ้นสำหรับการคอมไพล์ข้าม:
ซี-อาเรส
openssl
ชาวต่างชาติ
ซลิบ
libssh2
เมื่อสร้างไลบรารีข้างต้น ตรวจสอบให้แน่ใจว่าปิดใช้งานไลบรารีที่ใช้ร่วมกันและเปิดใช้งานเฉพาะไลบรารีแบบคงที่เท่านั้น เราจะเชื่อมโยงไลบรารีเหล่านั้นแบบคงที่
android-config
ถือว่ามีการกำหนดตัวแปรสภาพแวดล้อม $ANDROID_HOME
และ $NDK
ขณะนี้เราใช้ Android NDK r21e $NDK
ควรชี้ไปที่ไดเร็กทอรีไปที่ Android NDK เครื่องมือสร้างจะพบได้ภายใต้ $NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/
ไลบรารีที่ขึ้นต่อกันทั้งหมดต้องถูกติดตั้งภายใต้ $ANDROID_HOME/usr/local
หลังจาก android-config
ให้รัน make
เพื่อคอมไพล์ซอร์ส
สฟิงซ์ใช้ในการสร้างเอกสาร man page aria2 จะถูกสร้างขึ้นเมื่อคุณเรียกใช้ make
หากหน้าเหล่านั้นไม่ทันสมัย คุณยังสามารถสร้างเวอร์ชัน HTML ของ man page aria2 ได้ด้วย make html
คู่มือเวอร์ชัน HTML มีให้ทางออนไลน์ด้วย (การแปลภาษารัสเซีย การแปลภาษาโปรตุเกส)
ชื่อไฟล์ของไฟล์ที่ดาวน์โหลดถูกกำหนดดังนี้:
โหมดไฟล์เดียว
หากมีคีย์ "name" ในไฟล์ .torrent ชื่อไฟล์จะเป็นค่าของคีย์ "name" มิฉะนั้น ชื่อไฟล์จะเป็นชื่อฐานของไฟล์ .torrent ที่ต่อท้ายด้วย ".file" ตัวอย่างเช่น ไฟล์ .torrent คือ "test.torrent" จากนั้นชื่อไฟล์คือ "test.torrent.file" ไดเร็กทอรีสำหรับจัดเก็บไฟล์ที่ดาวน์โหลดสามารถระบุได้ด้วยตัวเลือก -d
โหมดหลายไฟล์
โครงสร้างไดเร็กทอรี/ไฟล์ที่สมบูรณ์ที่กล่าวถึงในไฟล์ .torrent ถูกสร้างขึ้น ไดเร็กทอรีสำหรับจัดเก็บไดเร็กทอรีระดับบนสุดของไฟล์ที่ดาวน์โหลดสามารถระบุได้ด้วยตัวเลือก -d
ก่อนที่จะเริ่มการดาวน์โหลด โครงสร้างไดเร็กทอรีที่สมบูรณ์จะถูกสร้างขึ้นหากจำเป็น ตามค่าเริ่มต้น aria2 จะเปิดไฟล์ได้มากที่สุด 100 ไฟล์ที่กล่าวถึงในไฟล์ .torrent และเขียนและอ่านจากไฟล์เหล่านี้โดยตรง จำนวนไฟล์ที่จะเปิดพร้อมกันสามารถควบคุมได้โดยตัวเลือก --bt-max-open-files
aria2 รองรับ DHT ที่เข้ากันได้กับ mainline ตามค่าเริ่มต้น ตารางเส้นทางสำหรับ IPv4 DHT จะถูกบันทึกไปที่ $XDG_CACHE_HOME/aria2/dht.dat
และตารางเส้นทางสำหรับ IPv6 DHT จะถูกบันทึกไปที่ $XDG_CACHE_HOME/aria2/dht6.dat
เว้นแต่ไฟล์จะมีอยู่ที่ $HOME/.aria2/dht.dat
หรือ $HOME/.aria2/dht6.dat
aria2 ใช้หมายเลขพอร์ตเดียวกันเพื่อฟังทั้ง IPv4 และ IPv6 DHT
การสนับสนุนตัวติดตาม UDP ถูกเปิดใช้งานเมื่อเปิดใช้งาน IPv4 DHT หมายเลขพอร์ตของตัวติดตาม UDP แชร์กับ DHT ใช้ตัวเลือก --dht-listen-port
เพื่อเปลี่ยนหมายเลขพอร์ต
ตัวเลือก -o
ใช้เพื่อเปลี่ยนชื่อไฟล์ของไฟล์ .torrent ไม่ใช่ชื่อไฟล์ของไฟล์ในไฟล์ .torrent เพื่อจุดประสงค์นี้ ให้ใช้ตัวเลือก --index-out
แทน
หมายเลขพอร์ตที่ aria2 ใช้เป็นค่าเริ่มต้นคือ 6881-6999 สำหรับ TCP และ UDP
aria2 ไม่ได้กำหนดค่าการส่งต่อพอร์ตโดยอัตโนมัติ โปรดกำหนดค่าเราเตอร์หรือไฟร์วอลล์ของคุณด้วยตนเอง
จำนวนเพียร์สูงสุดคือ 55 ขีดจำกัดนี้อาจเกินขีดจำกัดเมื่ออัตราการดาวน์โหลดต่ำ อัตราการดาวน์โหลดนี้สามารถปรับได้โดยใช้ตัวเลือก --bt-request-peer-speed-limit
ตั้งแต่รีลีส 0.10.0 aria2 จะหยุดส่งข้อความคำขอหลังจากการดาวน์โหลดแบบเลือกเสร็จสิ้น
การใช้งานปัจจุบันรองรับ HTTP(S)/FTP/SFTP/BitTorrent โปรโตคอล P2P อื่นๆ จะถูกละเว้น รองรับทั้งเอกสาร Metalink4 (RFC 5854) และ Metalink เวอร์ชัน 3.0
สำหรับการยืนยันเช็คซัม รองรับ md5, sha-1, sha-224, sha-256, sha-384 และ sha-512 หากมีอัลกอริทึมแฮชหลายตัว aria2 จะใช้อัลกอริธึมที่แรงกว่า หากการตรวจสอบความถูกต้องของไฟล์ทั้งหมดล้มเหลว aria2 จะไม่ลองดาวน์โหลดอีกครั้ง และจะออกจากการทำงานด้วยโค้ดส่งคืนที่ไม่ใช่ศูนย์
การตั้งค่าผู้ใช้ที่รองรับ ได้แก่ เวอร์ชัน ภาษา ตำแหน่ง โปรโตคอล และระบบปฏิบัติการ
หากมีการระบุเช็คซัมจำนวนมากไว้ในไฟล์ Metalink แล้ว aria2 จะตรวจสอบความถูกต้องของข้อมูลบางส่วนโดยอัตโนมัติในระหว่างการดาวน์โหลด ลักษณะการทำงานนี้สามารถปิดได้ด้วยตัวเลือกบรรทัดคำสั่ง
หากมีลายเซ็นรวมอยู่ในไฟล์ Metalink aria2 จะบันทึกเป็นไฟล์หลังจากการดาวน์โหลดเสร็จสิ้น ชื่อไฟล์คือชื่อไฟล์ดาวน์โหลด + ".sig" หากมีไฟล์เดียวกันอยู่แล้ว ไฟล์ลายเซ็นจะไม่ถูกบันทึก
ใน Metalink4 ทอร์เรนต์หลายไฟล์อาจปรากฏในองค์ประกอบ metalink:metaurl เนื่องจาก aria2 ไม่สามารถดาวน์โหลดทอร์เรนต์เดียวกัน 2 ไฟล์พร้อมกันได้ aria2 จึงจัดกลุ่มไฟล์ในองค์ประกอบ metalink:file ซึ่งมี BitTorrent metaurl เหมือนกัน และดาวน์โหลดจากกลุ่ม BitTorrent เดียว นี่คือการดาวน์โหลดทอร์เรนต์หลายไฟล์โดยพื้นฐานแล้วมีการเลือกไฟล์ ดังนั้นไฟล์ที่อยู่ติดกันซึ่งไม่ได้อยู่ในเอกสาร Metalink แต่แชร์ส่วนเดียวกันกับไฟล์ที่เลือกก็ถูกสร้างขึ้นเช่นกัน
หากระบุ URI แบบสัมพันธ์ในองค์ประกอบ metalink:url หรือ metalink:metaurl แล้ว aria2 จะใช้ URI ของไฟล์ Metalink เป็น URI พื้นฐานเพื่อแก้ไข URI แบบสัมพันธ์ หากพบ URI แบบสัมพันธ์ในไฟล์ Metalink ซึ่งอ่านจากดิสก์ในเครื่อง aria2 จะใช้ค่าของตัวเลือก --metalink-base-uri
เป็น URI พื้นฐาน หากไม่ได้ระบุตัวเลือกนี้ URI ที่เกี่ยวข้องจะถูกละเว้น
การใช้งานปัจจุบันใช้เฉพาะลิงก์ rel=duplicate เท่านั้น aria2 เข้าใจฟิลด์ส่วนหัว Digest และตรวจสอบว่าตรงกับค่าสรุปจากแหล่งอื่นหรือไม่ หากแตกต่างให้ยกเลิกการเชื่อมต่อ aria2 ยังใช้ค่าสรุปนี้เพื่อทำการตรวจสอบความถูกต้องหลังจากการดาวน์โหลดเสร็จสิ้น aria2 รับรู้มูลค่าทางภูมิศาสตร์ หากต้องการบอก aria2 ว่าคุณต้องการตำแหน่งใด คุณสามารถใช้ตัวเลือก --metalink-location
การสนับสนุน netrc ถูกเปิดใช้งานตามค่าเริ่มต้นสำหรับ HTTP(S)/FTP/SFTP หากต้องการปิดใช้งานการสนับสนุน netrc ให้ระบุตัวเลือกบรรทัดคำสั่ง -n ไฟล์ .netrc ของคุณควรมีสิทธิ์ที่ถูกต้อง (600)
เซิร์ฟเวอร์ WebSocket ที่ฝังอยู่ใน aria2 ใช้ข้อกำหนดที่กำหนดใน RFC 6455 เวอร์ชันโปรโตคอลที่รองรับคือ 13
libaria2 เป็นไลบรารี C++ ที่นำเสนอฟังก์ชัน aria2 ให้กับโค้ดไคลเอ็นต์ ปัจจุบัน libaria2 ไม่ได้ถูกสร้างขึ้นตามค่าเริ่มต้น หากต้องการเปิดใช้งาน libaria2 ให้ใช้ตัวเลือกกำหนดค่า --enable-libaria2
ตามค่าเริ่มต้น จะมีการสร้างเฉพาะไลบรารีแบบแบ่งใช้เท่านั้น หากต้องการสร้างไลบรารีแบบคงที่ ให้ใช้ตัวเลือก --enable-static
configuration เช่นกัน ดูเอกสารประกอบ libaria2 เพื่อทราบวิธีใช้ API
คู่มือออนไลน์ aria2
https://aria2.github.io/
RFC 959 โปรโตคอลการถ่ายโอนไฟล์ (FTP)
RFC 1738 ตัวระบุทรัพยากรที่เหมือนกัน (URL)
ส่วนขยาย RFC 2428 FTP สำหรับ IPv6 และ NAT
โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์ RFC 2616 -- HTTP/1.1
ส่วนขยาย RFC 3659 ไปยัง FTP
RFC 3986 Uniform Resource Identifier (URI): ไวยากรณ์ทั่วไป
ลักษณะการใช้งาน RFC 4038 ของการเปลี่ยนผ่าน IPv6
RFC 5854 รูปแบบคำอธิบายการดาวน์โหลด Metalink
RFC 6249 Metalink/HTTP: มิเรอร์และแฮช
กลไกการจัดการสถานะ HTTP RFC 6265
RFC 6266 การใช้ฟิลด์ส่วนหัวการจัดการเนื้อหาใน Hypertext Transfer Protocol (HTTP)
RFC 6455 โปรโตคอล WebSocket
RFC 6555 Happy Eyeballs: ความสำเร็จด้วยโฮสต์ Dual-Stack
ข้อกำหนดโปรโตคอล BitTorrent
BitTorrent: โปรโตคอล DHT
BitTorrent: ส่วนขยายที่รวดเร็ว
BitTorrent: ส่วนขยายตัวติดตาม IPv6
BitTorrent: ส่วนขยายสำหรับเพียร์ในการส่งไฟล์ข้อมูลเมตา
BitTorrent: โปรโตคอลส่วนขยาย
BitTorrent: ส่วนขยายข้อมูลเมตา Multitracker
BitTorrent: UDP Tracker Protocol สำหรับข้อกำหนดโปรโตคอล BitTorrent และ BitTorrent udp-tracker
BitTorrent: WebSeed - การเพาะ HTTP/FTP (สไตล์ GetRight)
BitTorrent: ทอร์เรนต์ส่วนตัว
BitTorrent: ส่วนขยาย BitTorrent DHT สำหรับ IPv6
BitTorrent: การเข้ารหัสสตรีมข้อความ
Kademlia: ระบบข้อมูลแบบเพียร์ทูเพียร์ที่ใช้ XOR Metric