这是我第一篇关于VPS的博客,第一次写“教程”,可能有点低。严格来说实际上并不能称做教程,只是自己一点点的实操经验,或者称为“实践总结”比较正确!毕竟我不是专业程序员,只是一个业余爱好者,客观而言实际上我所知道的也足以这个专业的冰山一角而已。不过只要认真按着一步一步走实践,相信你马上也能拥有一台属于自己的VPN服务器!如果担心自己是小白,没有编程基础怕弄砸,木有关系,只要会打字,勇于尝试,勇于实践,你就可以!虽然此文看似很长,只想做到说的通俗全面点,然鹅实际上却很啰嗦(苦笑〜),熟练后建造起来其实只要十分钟!OK,直入主题!

第1部分:关键名词(有一定基础和实践者请跳过这部分)

开始之前先了解一些基本的名词,对后续的操作和兴趣培养有很大的帮助,最起码得知道每一步操作是在干什么?要实现某些功能?

1,VPS: VPS (虚拟专用服务器虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。易于理解你可以把它想象成一台由服务商托管运营的电脑,虽然实际关于VPS还有很多有趣的“黑话”,某种杜甫,母鸡,小鸡,石头盘,上面的是一台标准服务器分区虚拟出来的。之后文说的“ Vultr”就是VPS的服务商之一。 ,钻石盘等,有兴趣的可以自行了解下。

2,CentOS7:基于Linux的的操作系统之一,就像我们熟知的是Windows XP,Windows 7中的Windows 10一样。此教程正是基于CentOS7!

3,Shadowsocks:说到这个就要介绍一位牛X人” clowwindy “此处致敬先。原先计算机访问互联网也就是访问不同服务器属于直接连接,终端计算机把请求发给服务器,服务器处理后反馈给计算机。直到某个时间出于某种原因,有一个GFW〜这样的服务器和终端的通信都要被GFW监听,过滤掉一些它不喜欢的内容,一旦有一些“你懂的通信”在过滤规则内,因此自然无法访问了。So〜人们就想到了一种方法来规避GFW的过滤,就是基于SSH建造一条加密线路进行数据通信,虽然通信内容由于加密无法识别,但是这样仍然会被GFW通过分析连接的即采用客户端和服务端分别进行伪装加密和解密,再通过加密线路进行通信的方式,首先客户端把通信数据进行伪装加密成TCP包,顺利通过 GFW,服务端收到数据解密处理后,再原路返回。四个字总结就是:穿墙工具。明白了大概原理后,我们得到一个信息,就是Shadowsocks需要在你的VPS上和你的终端(如个人电脑,手机)上分别安装。另外 Shadowsocks的简称是SS,下面均采用SS缩写。可能有些同学会听过或者在用SSR (又名酸酸乳,嗯〜很有营养的名字),也有很多人在这两方面的优劣,实际上本质上是一样,无非是戴一个套和戴多个套的区别。那为什么会有两个版本?啊〜那就要说到几年前那场clowwindy和另一人的大战了,此处就不多说了,再絮絮叨叨下去感觉就要跑题了。好奇心旺盛的请自行了解并实践测试,欢迎将你的使用感受与我分享。OK,下一个!

4,Serverspeeder:TCP加速引擎,顾名思义,没什么好说的,非必须项,如果觉得麻烦可不装。

5,CentOS7命令:服务器端的使用界面不像我们使用的Windows一样是可视化的,虽然也可以安装可视化环境,不过那样会占用本就不高的服务器资源,所以一般情况下大多数使用者都不会去安装。辣么怎么去使用呢?最原始的方法,敲出一个指令指令,让服务器去执行(多说一句,其实我们使用的Windows可视化系统,我们每个一个操作的本质其实就是一个个指令,,不过不过用可视化的方式呈现了,才会让计算机走进千家万户)

本教程涉及到的指令(了解即可)

5.1:wget:wget是一个从网络上自动下载文件的自由工具,支持通过HTTP,HTTPS,FTP三个最常见的TCP / IP协议下载,并可以使用HTTP代理。简单理解就是告诉系统,从某某地方获得某某东东到本地,此指令后面还有一些参数,此处不表。

5.2:yum:Yum(全称Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell 前端管理器。基于RPM 包管理,能够从指定的服务器自动下载RPM包和安装,可以自动处理RPM包的临时关系,并且一次安装所有依赖的副本,无须繁琐地一次次下载,安装。

是不是觉得两个功能一样?NO〜wget就好比下载工具迅雷,仅下载;而yum具有基于RPM的安装功能,能够从指定的服务器自动下载RPM包并安装,可以自动处理伴随关系,并且一次安装所有依赖的坐标。绕不过来没关系,反正以后还有更绕的,刚开始知道有这么个东东就成。

5.3:pip:pip是一个现代的,通用的Python包管理工具。提供了对Python包的查找,下载,安装,卸载的功能。即是对Python包的一种管理指令。

5.4:vi / vim:Vi是Unix及Linux系统下标准的编辑器,基本上vi可以分为两种状态,分别是命令模式,插入模式,和底行模式; vim:Vi改进,vi的升级版,比vi更易使用。

OK,基础文章介绍完毕,下面就是实操了!为防止操作阶段的中断导致迷茫慌乱,针对新手友情建议:1,锁好门。2,、安抚好另一半后手机关机。3,确保网络通畅。4,确认银行卡或支付宝有100元左右余额。5,确保备用发电机已就位!(哈哈,开个玩笑……)

另外,如果可以安装360及国产的一些安全软件,真心建议关闭或干脆卸载,替换国际上知名度的一些产品,如卡巴斯基,迈克菲等等。
第二部分:VPS选购

因为国内的VPS还是在墙内,所以国内的服务商暂时不考虑。市面上选择的国外VPS服务商很多,如此教程使用的Vultr,其他的还有BandandagonHost (又名搬瓦工,较常见),SugarHosts,RAKSmart,DigitalOcean等,排名不分先后,价格也都差不多,稳定性和安全性未逐个测试,不发表评论。刚开始接触练手为主,选择上不用太纠结,等熟练VPS的相关操作后再去慢慢了解,选择一家长期使用。

以下为Vultr的VPS购买流程:

官方网址:发送门 (注册即送50美金,心动不如行动!)

用自己的电子邮件注册账号,输入电子邮件账号和想要设置的密码后点击“创建帐户”即可。(注意设置的密码强度Vultr有要求:必须在10个字符以上,必须包含1个大写字母,1一个小写字母和1个数字))

帐户创建好之后自动取消至充值页面,依次选择“支付宝”支付宝支付,最小充值金额10刀(约67软妹币)点击“用支付宝支付”支付。充值成功后你的账户立就有了10刀的余额。

OK,下面就可以开始创建服务器了,点击右上角的蓝色” +“号按钮。

可以看到有很多地区可供选择,这些都是服务商部署在不同地方的机房,每个地区的机房访问和下载速度或许会有差异,不过影响不大,练手时此因素可以忽略,如果你是处女座,好的,你可以在Vultr的支持选项卡里找到他们提供的下载地址和IP地址进行测试。(IP地址在“ Looking Glass”那一栏里,不同地区都可以点击查看)点我直达- 传送门。

确定好机房后,下面就是选择系统和配置了,服务器类型在这里我们选择替换的64位CentOS7,服务器大小在这里选择第二个,5刀/月的,第一个注意观看提示仅IPv6!虽然便宜,只要2.5刀/月,但是是没有IPv4地址的!

坑一:如果这里选错也不用担心,因为Vultr的VPS是按小时扣费的,则,开机才扣费,不想要了或者想换配置,换地区,直接把主机停止后摧毁就不扣费了(提示:刚创建的,需要5分钟后才可摧毁),更换起来非常方便,同时后面确定创建主机时会写5刀/月,不用担心,不会直接替换5刀的余额的。想到刚开始小白一只,没看清要了日本的机房,以为直接扣了我5刀余额,破坏后还傻兮兮的给客服写表单追着要5刀的替换……把客服都整蒙圈了,往事不堪回首!

选好配置后应该是上面图示的:服务器基本情况:64位CentOS7,25G SSD存储,1CPU,1G内存,1000G流量,完全够用!至于第四点的附加功能,一个想法:不要钱的都勾上!!(渣英语顺便翻译下重置的功能,1,开启IPv6; 2,自动备份(收费); 3,DDOS防御(收费); 4,开启专用网络; 5,兼容块存储)

再下面的5,6,7项请暂时忽略(5,启动脚本; 6,SSH密钥; 7,自定义主机名和标签)。

确认无误后点击“立即部署”,确认订单无误后创建!

等服务器初始化之后,您就拥有了一台属于自己的服务器了!单击后面的三个点,单击服务器详细信息进入控制台。

服务器密码那里点击后面的眼睛可以看到密码,初始的密码一般是字母数字符合组合,我们连接服务器时输入起来比较复杂,可以点击此处查看如何修改服务器密码。服务器密码是你连接服务器的唯一凭证,好比你家的门钥匙,请妥善保管!IP地址就好比你家的地址,请牢记,如果可以尝试把密码,IP地址等敏感信息记在自己的笔记本上,好记性不如烂笔头。用户名默认都是root,如果你平时没有在网上公布自家地址的习惯,那么IP地址建议也不要这么去做,如果让不怀好心的人认识你家地址,又通过某种方式得到你家的房门钥匙,那就自求多福吧。

重要:从2019年6月初,GFW开始大面积封禁IP,也陆陆续续收到很多小伙伴的来信反馈此问题,所以在开始以下操作之前,请先用ping命令测试一下服务器IP是否可用,省的白费力气。
窗口系统下按组合键赢+ R呼出运行窗口,输入CMD打开终端,输入下面命令:(请将下方XXX更改为你的服务器IP地址)

ping xxx.xxx.xxx.xxx -t

如果提示连接超时,建议更换一台服务器,如果可以连接,则继续下面操作。

第3部分:安装/配置Shadowsocks

点击查看控制台开始连接服务器,输入用户名root,回车;

然后按提示输入密码,注意输入密码时屏幕是不显示的,确认输入无误后,回车。

步骤1,安装ShadowSocks

输入第一个命令后,回车:

yum install python-setuptools && easy_install pip

中途会提示是或否,输入y,回车继续。

安装完成后,输入第二条命令,回车;

pip install shadowsocks

第二步,配置ShadowSocks

下面开始编写ShadowSocks的配置文件:(以vi为例​​)

输入如下命令,回车;

vi /etc/shadowsocks.json

输入如下内容:有单用户和多用户两种方式,替代其一。(//后为说明内容,不必输入)

不出意外你发现输入不进去,因为刚进入vi是处于“命令行模式(command mode) ”,您要切换到“插入模式(Insert mode) ”才能够输入文字。按“ I”键开启插入模式(插入模式)后输入:

(切记!一个标点符号都不能少!!!!)


/****** 单用户 ******/ 

{
 "server":"xxx.xxx.xxx.xxx",
// 这里填写你的服务器的IP地址
"server_port":8234,
// 这是填自定义的shadowsocks的端口,如 7777 或 8234等等,但要避免使用常用端口如:80,3306,3389,21,20等。
"local_address":"120.0.0.1",
// 默认填写120.0.0.1即可
"local_port":1080,
// 默认填写1080即可
"password":"********",
// ***为自定义的密码
"timeout":300,
// 超时300秒
"method":"aes-256-cfb",
// 加密方式 aes-256-cfb
"fast_open":false
 }

/****** 多用户 ******/

{
"server":"xxx.xxx.xxx.xxx",
// 这里填写你的服务器的IP地址
"port_password":
{
"8234":"*********",
// 为8234端口设定自定义的密码
"8235":"*********",
// 为8235端口设定自定义的密码
"8236":"*********"
// 为8236端口设定自定义的密码,如果还需要多个账号,按此格式往下添加即可,
// 但要保证最后一个账户的密码后面没","切记!
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false
}

我知道你在想什么,下面以多用户为例:(IP地址是我乱写的,请更改为你自己的服务器IP)

输入完成后检查无误,按“ ESC”键转到“命令行模式(command mode) ”,会看到下面的INSERT标识消失;

再按组合键“ Shift +:” (也就是冒号:),转到“底行模式(last line mode) ”,此时可以看到最下面出现了“:”符号和光标开始闪动,表示可以输入指令了;

最后一步输入保存退出命令,回车,。

wq

第三步,设置ShadowSocks开机启动

把shadowsocks服务设置为开机自动启动,省的每次重启后都要开启。

输入命令后,回车;

vi /etc/rc.local

在rc.local文件里写入如下内容,wq保存退出,vi使用方法同上,此处就不重复述了。

ssserver -c /etc/shadowsocks.json

根据rc.local的提示,还需要执行如下命令确保重启后脚本会执行:

chmod +x /etc/rc.d/rc.local

步骤4,开启设定的端口

ShadowSocks部署好之后,还需开启已设定的防火墙端口,要不然防火墙不予放行,也是白瞎。

输入以下命令,回车,查看防火墙状态;

firewall-cmd --state

如果返回信息是:running,表示防火墙已开启,如果没有的话,需要打开防火墙,命令如下:

systemctl start firewalld

下面开始给指定端口放行,以8234为例,输入命令:

firewall-cmd --zone=public --add-port=8234/tcp --permanent

返回信息为:success 即表示添加成功。

如果是多用户配置,则需多次开启,但不必重复输入,使用键盘方向键“↑” 即可快速调用已输入命令,更改端口号,回车即可。如图例:

重启防火墙以更新配置的端口规则,输入如下命令,回车:

firewall-cmd --reload

查看下已开启的端口,输入如下命令,回车:

firewall-cmd --list-ports

最后一步,启用ShadowSocks服务,输入命令,回车:

ssserver -c /etc/shadowsocks.json -d start

Well~到此为止,服务器端的ShadowSocks已经部署完毕,通过第一部分的基础部分解释,我们知道还需在终端安装ShadowSocks,下面附上ShadowSocks官方文档以及PC和安卓客户端。

ShadowSocks官方文档

ShadowSocks for Windows

ShadowSocks for android

ShadowSocks for IOS

ShadowSocks for Mac OS

ShadowSocks其他相关命令,视情况使用。:

要在前台运行:

ssserver -c /etc/shadowsocks.json

要在后台运行:

ssserver -c /etc/shadowsocks.json -d start

停止后台运行:

ssserver -c /etc/shadowsocks.json -d stop

此时已经可以翻墙了,也就是“梯子”已经架好了,But~为了物尽其用,建议安装~~【serverspeeder加速~~】BBR加速,享受更快的网速和更低的延迟。

Part 4:安装serverspeeder加速(不推荐,推荐BBR加速)

[collapse title=”安装Serverspeeder”]

Step 1,安装Serverspeeder

输入如下命令后,回车:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh

上面介绍过wget的意思,中间的“&&”为赋值和顺序执行指令,上面的命令简而言之就是:先下载某某地址的文件,然后执行安装,此命令可以分解为两段,如先下载:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh

下载完成后,再手动执行:

bash serverspeeder.sh

如果提示:Serverspeeder is not supported on this kernel! View all supported systems and kernels here: balabala……表示内核不支持,辣么就要更改内核了。如果没有报错,显示安装成功,则跳过这部分。

但是!!!再更换内核前,请确定自己的VPS的类型,是KVM还是OpenVZ,如果是OpenVZ,很遗憾,serverspeeder的教程就到此为止了。因为OpenVZ是无法更换内核的。据笔者所知,Vultr和搬瓦工目前均为KVM,Vultr和搬瓦工的用户应该不必担心,其他服务商的童鞋请自行辨别,此处有个简易检查方法——传送门,如果链接无法打开,请把“梯子”架好再试。

Step 2,更换内核

输入如下命令,回车:(版本号那里是字母el7,而不是数字e17,此处需留意!)

rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

检查内核是否安装成功,输入命令,回车:

rpm -qa | grep kernel
坑二:这里问题又来了,是不是发现“|”这个符号死活打不出来,哈哈,打不出来就对了,Vultr默认的为US模式,我们需要更改下键盘布局为gb:

1:查看自己的键盘布局,输入命令:

localectl status



显示现在用的为us,我们把它改成gb模式。

2:修改键盘布局为gb,输入命令:

 localectl set-keymap gb

回车后再查看下布局:

此时重新输入查看内核命令,竖线符号可正常输入了,输入完毕,回车;

显示包含如上的内核版本即成功。重启服务器,输入命令,回车:

reboot

此时在引导界面会看到自己的内核已经变成了3.10.0-229.1.2.el7.x86_64:

重新执行Step1,安装Serverspeeder:

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh

坑三:好事多磨,问题依旧来了,此时如果报错提示:The name of network interface is not eth0, please retry after changing the name。 则输入下面命令,回车:

yum install net-tools -y

提示Complete,表示完成,重新再执行一次安装Serverspeeder命令,记得用键盘”↑“,省的再次输入了,如果上面的内容已经了解透彻,且ServerSpeeder已经下载过,只是安装过程中报错,所以也可以单独执行安装命令:

bash serverspeeder.sh

OK,到此为止,Shadowsocks+Serverspeeder加速都已经部署完毕了。

老规矩,附上Serverspeeder文档链接

锐速ServerSpeeder常用命令:

service serverSpeeder start #启动
service serverSpeeder stop #停止
service serverSpeeder reload #重新加载配置
service serverSpeeder restart #重启
service serverSpeeder status #状态
service serverSpeeder stats #统计
service serverSpeeder renewLic #更新许可文件
service serverSpeeder update #更新
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f #卸载

[/collapse]

上面折叠部分为原先安装方法,较为繁琐,现建议采用秋水逸冰的一键BBR安装包,可见此篇:传送门 操作完成后紧接下文即可。

重启服务器:

reboot

最后检查一下部署情况:

防火墙是否开启: firewall-cmd --state 回车;
防火墙端口是否开放:firewall-cmd --list-portsf回车;
开启Shadowsocks:ssserver -c /etc/shadowsocks.json -d start 回车;
(如果安装了BBR加速,此步骤跳过!)Serverspeeder服务是否开启: service serverSpeeder start 回车;(注意这里serverSpeeder中的”S“是大写,需留意!)

确保一切OK后,输入退出命令”exit“关闭控制台,终于可以和该死的指令说拜拜了!!可以给自己鼓鼓掌,喝点水放松下。

Part 5:配置SS客户端

下面稍微介绍下终端的配置方法,选择自己对应的客户端,下载安装后启动,安卓和IOS大同小异,下面以Windows为例:

填入你的服务器IP地址,端口以及设定的密码,插件那里留空即可:

点击确定;

右键状态栏SS图标,系统代理模式可选择全局或者PAC;

全局模式意思所以流量均通过SS,这样访问国内网站就稍微有些延迟。

个人建议可以常驻PAC模式,这样访问国内网址,会用自己IP,访问被墙网站自动切换到SS。

SS不怎么占内存,平时保持开机启动即可;

最后启用系统代理,搞定!

现在打开www.google.com 试试吧。

如果有任何问题,可以再下面留言或者给我写信:[email protected]

VPN篇到此为止,下一篇将介绍如何在VPS上部署LNMP环境和搭建自己的Blog,就像你现在看到的这个网站一样,建议在右边的订阅栏邮件订阅我的博客,这样能第一时间收到更新啦!Enjoy It! Au revoir~

写在最后的话:

虽然墙外的世界非常精彩,能获得许多原先不知道的信息。但,请保持一颗稳定成熟的心态。如您的世界观和价值观尚未成熟,还未具备独立的人格和思考能力,相信我这对你来说不是件好事,建议您直接右上角关掉这个页面。另外请低调地科学上网,偶尔借亲友使用无妨大碍,但忌讳四处宣扬,更不要用于商业用途,SS为开源工具,请自觉尊重别人的劳动成果!

另外,在标明出处的前提下,此文欢迎转载引用。


更新记录: 
2019年5月8日    增加代码高亮、更新一键BBR加速以及修改几处错误。
2019年6月23日增加验证服务器IP地址可用提醒。
最后修改日期:十一月 3, 2019

作者

留言

Envy0729 

你好,我按照那个新版的脚本安装新内核和bbr之后,重启后一直卡在引导那里T-T,怎么解决呢?

教程太棒了,完美解决了问题!!!

[[email protected] ~]# service serverSpeeder start
Redirecting to /bin/systemctl start serverSpeeder.service
Failed to start serverSpeeder.service: Unit not found.

请问,这个问题咋整?

    如果安装的是BBR加速,那么最后一步检查Serverspeeder服务是否开启: service serverSpeeder start 就无需操作。

站长你好,昨天连vpn的时候,突然发现上不去了,今天进去系统里面查看,发现里面的配置文件有些字符被更改了,导致shadowsocks不能启动,请问这是为啥呀,我又从来没有更改过配置文件,难道是系统被别人更改了???

博主在吗?为啥我买了还几次vultr的vps都是被墙的,全都ping不了····博主换过几次主机?一直都是这个吗?

ice_criminal 

你好我按照您说的方式配置到最后一步了然后就是输入ssserver -c /etc/shadowsocks.json -d start,提示
Error:Found an error in config.json :no JSON object could be decoded,您有遇到多这个错误嘛,shadowsocks.json有按照您说的正确填写的。

    提示没有发现JSON文件,请检查命令路径和文件名是否输入错了。

kaichuang 

您好,shadowsocks已经部署完毕显示starded,但是电脑/手机依旧无法连接goo,试图reboot重启服务器,但好想一直处于自检过程中无法再进行登陆,有什么办法解决吗?小白求助,谢谢

    建议通过Putty连接服务器操作,putty可右键复制粘贴哦!详见:http://www.ailophy.com/2018/07/24/lnmp/

按照操作成功了,膜拜一下大佬

小威的天 

博主真乃大神。我有问题想要问下,就是选择服务器选择哪个地区的好?看到博主说之前不小心选了日本的destroy了,为什么呢?这个不懂,我也是选了日本的,之前没留意细看博主的标注,发觉网络不是很通畅,我晚上直接就上不了。请博主解答一下,感谢!

    日本距离近延迟比较低,但是最大的问题是国内用户太多,而且据我使用的情况来看,貌似日本是GFW重点关注对象,丢包问题严重,一般寿命24小时左右。建议选择非亚洲地区,如灯塔国的,牺牲点延迟换安稳。😅

    kenny桑 

    恭喜你…你的ip被牆了!~

      墙内IP经测试可以正常访问,能提供下你的访问区域吗?方便排查原因,😊

最近vultr疯狂被封,刚建好的使用几分钟就被墙了

问个问题,我又新建了一个服务器,是要再把哪些东西再安装一遍吗?如果这个服务器被封了咋整?再把安装步骤在新建的服务器上走一遍?

    一般VPS服务商都会提供快照机制,先在服务商后台备份快照,然后新建一台,从快照恢复即可,但记得改一下梯子配置里的IP。

运行ssserver -c /etc/shadowsocks.json
出现下列问题:
INFO: loading config from /etc/shadowsocks.json
2019-11-03 04:26:41 INFO loading libcrypto from libcrypto.so.1.1
Traceback (most recent call last):
File “/usr/local/bin/ssserver”, line 8, in
sys.exit(main())
File “/usr/local/lib/python3.6/site-packages/shadowsocks/server.py”, line 34, in main
config = shell.get_config(False)
File “/usr/local/lib/python3.6/site-packages/shadowsocks/shell.py”, line 262, in get_config
check_config(config, is_local)
File “/usr/local/lib/python3.6/site-packages/shadowsocks/shell.py”, line 124, in check_config
encrypt.try_cipher(config[‘password’], config[‘method’])
File “/usr/local/lib/python3.6/site-packages/shadowsocks/encrypt.py”, line 44, in try_cipher
Encryptor(key, method)
File “/usr/local/lib/python3.6/site-packages/shadowsocks/encrypt.py”, line 83, in __init__
random_string(self._method_info[1]))
File “/usr/local/lib/python3.6/site-packages/shadowsocks/encrypt.py”, line 109, in get_cipher
return m[2](method, key, iv, op)
File “/usr/local/lib/python3.6/site-packages/shadowsocks/crypto/openssl.py”, line 76, in __init__
load_openssl()
File “/usr/local/lib/python3.6/site-packages/shadowsocks/crypto/openssl.py”, line 52, in load_openssl
libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
File “/usr/lib64/python3.6/ctypes/__init__.py”, line 356, in __getattr__
func = self.__getitem__(name)
File “/usr/lib64/python3.6/ctypes/__init__.py”, line 361, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /lib64/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

应该是:
AttributeError: /lib64/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

查询了下,EVP_CIPHER_CTX_cleanup函数应该在这个版本没有了,如何替换成EVP_CIPHER_CTX_reset呢?

站长你好!感谢你的指南,之前可以用,最近重新建的时候 输第一个命令就提示
Last metadata expiration check: 0:44:52 ago on Wed 20 Nov 2019 01:36:50 PM UTC.
No match for argument: python-setuptools
Error: Unable to find a match
是不是存储程序的页面也被墙了?感谢

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。