aria2连接网站出现handshake failure问题的分析与解决方法

  aria2是一款轻量级的,支持多协议,跨平台的命令行下载工具,是笔者目前在使用的下载工具,结合uget使用基本上能媲美window下的迅雷工具。在笔者使用过程中,遇到了aria2连接部分网站时出现handshake failure问题,通过网上搜集资料以及分析aria2执行日志后,发现aria2默认使用gnutls作为TLS,SSL以及DTLS协议的库,而笔者机器的gnutls版本比较低,不支持新的握手算法。现有两种解决方案:

  1. 将机器的gnutls库升级至较新版本。

  2. 下载aria2源码重新编译安装,使用open-ssl库而不使用gnults库

  本文采用第二种解决方案。aria2源码安装过程如下:

获取源码

从 https://github.com/aria2/aria2/releases 中下载aria2的源码包

编译安装

解压到某一目录并切换到该目录下执行以下命令

./configure --without-gnutls --with-openssl
make && make install

若编译时提示缺少openssl库,则根据对应的平台执行以下命令安装openssl库

1. RedHat Fedora 平台

yum -y install openssl-devel

2. Debian ,ubunu 平台

apt-get install libssl-dev

 

posted @ 2018-02-27 15:34  xjhfool  阅读(4364)  评论(0编辑  收藏  举报