windows 上运行 sslocal 提示 libcrypto(OpenSSL) not found 解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MaoshiYIHAO/article/details/84777683

系统环境:

python 版本:

按照官方步骤安装 shoadowsocks 之后,运行sslocal 会报异常,如下:

load_openssl raise Exception('libcrypto(OpenSSL) not found') Exception: libcrypto(OpenSSL) not found

我的解决办法:

安装 openssl

下载地址: http://slproweb.com/products/Win32OpenSSL.html

安装完之后,进入库文件所在系统目录

我的是,C:\Program Files\OpenSSL-Win32

将libcrypto-1_1.dll 在源目录拷贝一份,并修改名字为 libcrypto.dll,这样做的原因看了文章末尾的第二种方法就会明白

卸载 shadowsocks

目前为止,通过 pip install shadowsocks 安装的 shadowsocks 版本最高为 2.8.2。而官网已经推送了 2.9.1。并且说修复了有关与新版本 openssl 库相关的问题:

卸载,运行:pip unistall shadowsocks 。

安装 shadowsocks-2.9.1

下载 shadowsocks 最新的 python 源码,解压,在命令行模式下进入它的目录

运行 python setup.py build && python setup.py install  

安装完成

这样就解决了

另一种方法:

修改 C:\Users\Lm\Desktop\shadowsocks-2.9.1\shadowsocks\crypto\ 目录下  openssl.py

 

    libcrypto = util.find_library(('crypto', 'eay32'),
                                  'EVP_get_cipherbyname',
                                  'libcrypto')

改成:

    libcrypto = util.find_library(('crypto', 'eay32'),
                                  'EVP_get_cipherbyname',
                                  'libcrypto-1_1')

然后,再执行 python setup.py build && python setup.py install ,进行编译安装,这样也可以解决

问题的原因就是,库的名称与 shadowsocks 中不一样且shadowsocks与新版本的openssl库上也存在兼容的问题

参考链接:

python pip 的简单命令:https://pip.pypa.io/en/stable/installing/

类似问题的解决:https://github.com/shadowsocks/shadowsocks/issues/701

shadowsocks-python for windows:https://github.com/shadowsocks/shadowsocks/wiki/Install-Shadowsocks-Server-on-Windows

 

 

 

没有更多推荐了,返回首页