超详细图文免费搭建VPS,VPN配置

自己搭个梯子科学上网

Posted by 一之笔 on October 24, 2018

文章首发整理个人博客,转载参考注明来源一之笔;

前言

现在,科学上网变得越来越重要了,面对国内搜索引擎的商业化,你要搜个东西,往往给你的不是你想要的结果;这时候,好的搜索引擎就很重要了;Google,因为政策原因,被和谐了,因此,想要科学的上网,怎么办?自己买个梯子,不划算,要知道,因为买了梯子,客服联系不上人的多得是,而且比较贵,并且不可靠;自己动手,丰衣足食,这篇文章旨在记录自己在搭建VPS的过程以及遇到的问题;

相关概念

  • VPS,虚拟专用服务器(Virtual private server,缩写为 VPS),是将一台服务器分割成多个虚拟专享服务器的服务。实现VPS的技术分为容器技术和虚拟化技术。简单理解VPS就是一台拥有公网IP的服务器。
  • VPN,虚拟私人网络(Virtual Private Network,缩写为VPN)是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。
  • SS,Shadowsocks,一种安全的socks5代理;

VPS的选择

搬瓦工 VS 亚马逊云(AWS)

什么是AWS?Amazon Web Services,就是亚马逊云服务;

之前写过一篇文章Mac科学搭建VPN,绿色上网,其中的VPS就是搬瓦工提供的,一年最低大概19美元,如果有优惠券的话,可能就16美元,我大概用了快2年,现在还在用,自己用的话,基本没什么问题;但是,我用了另外的亚马逊云提供的EC2服务,搭建好了,测试了一下,突然就得,搬瓦工延迟太大了,跟AWS不是一个数量级;

最上面两个都是AWS的服务,最下面是搬瓦工的服务,对比立马就知道,差距太大了;

AWS 免费试用条件

需要注册信息,并绑定一张信用卡,需要扣费认证,这个认证的钱会退给你的;

EC2套餐信息

EC2套餐,每个月750h,1G的内存,30G SSD,自己用够用了;

具体的套餐,你可以去官网看看;

账号注册

AWS进行注册,如下: 注册过程中需要绑定信用卡,会扣$1(预授权)。但需要注意的是,在没有用超的情况下,是免费的,后面可以通过设置超额提醒;另外,在注册的过程中,他们会打电话确认,听到那边说话几秒,反正说的是英语,你就输入屏幕提示的数字即可,官网验证成功; 一步一步按照提示走,就会注册成功;

创建AWS实例

进入官网,可以找到下面这个这个免费套餐;

点进去,就能看到这个套餐的具体信息了;

大概1到2h就能开通成功了;

启动虚拟机

登录进去,就能看到如下的服务了

点击启动虚拟机,开始选择虚拟机类型,包括一些配置信息,总共有以下七个步骤:

选择AMI->选择实例类型->配置实例->添加存储->添加标签->配置安全组->审核启动

选择AMI

选择Amazon 系统映像(AMI),我自己通过实践选择的是Ubuntu

选择实例类型

配置实例

默认配置即可,下一步;

添加存储

默认配置即可,下一步;

添加标签

配置安全组

设置端口流量

注意:这一步很重要,如果搞错了,SSH客户端或者终端远程登录会连接不上;,这里先设置所有流量端口开放;

生成秘钥对

这个文件是,后缀为 name.pem 形式的文件,可以用这个文件登录服务器; 秘钥对的名称一般是,账户名,注意是账户名,不要搞成登录名或者邮箱了;

点击启动实例,设置账单通知

账单提醒功能(重要)
  • 启动状态

  • 首选项

保存首选项;

审核

最后一步就是审核,审核之前配置的所有功能,确定没问题,启动;

登录服务器

定制完成后,就可以远程登录了。在实例上右击,点击连接。

点击连接,会弹出一个框,具体的信息框,如下:

cd 到 秘钥文件也就是 name.pem文件夹,然后输入以下命令,获得读写权限;

chmod 400 name.pem

然后复制,上图的示例,点击回车,就会进去;

登录权限问题

注意,你没有获得 pem秘钥对的读写权限,就会报错,如下:

成功登录服务器,终端会显示如下:

服务端安装Shadowsocks

依次在终端输入以下命令:

# 获取root权限
sudo -s
# 更新apt-get
apt-get update
# 安装python包管理工具
apt-get install python-setuptools
apt-get install python-pip
# 安装shadowsocks
pip install shadowsocks

注意:获取root权限后,光标前面的美元符号会变成#,并且最前面的账户就是Root就是下面这个样子:

服务端配置Shadowsocks

  • 查看SSServer位置
which ssserver

会得到这个

/usr/local/bin/ssserver

创建配置文件

mkdir /etc/shadowsocks
vim /etc/shadowsocks/ss.json

配置文件内容

{
"server":"0.0.0.0",
"server_port":443, //ss连接服务器的端口
"local_address":"127.0.0.1",
"local_port":1080,
"password":"111111", // 设置ss连接时的密码
"timeout":300,
"method":"aes-256-cfb",//加密方法,还有好多,这里默认这个
"fast_open":false,
"workers": 1
}
  • 加密方法:默认aes-256-cfb,更多参考;

  • workers:允许使用的人数,仅仅支持Unix,workers

服务端启动Shadowsocks

  • 启动:
    sudo /usr/local/bin/ssserver -c /etc/shadowsocks/ss.json -d start
    
  • 停止:
    sudo /usr/local/bin/ssserver -c /etc/shadowsocks/ss.json -d stop 
    
  • 重启:
    sudo /usr/local/bin/ssserver -c /etc/shadowsocks/ss.json -d restart
    
  • 设置开机启动
sudo vi /etc/rc.local

rc.local文件末尾添加以下代码:

sudo /usr/local/bin/ssserver 
-c /etc/shadowsocks/ss.json -d start

配置服务端遇到的问题

  • Shadowsocks无法启动,报错
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

主要是内置的python中的openssl文件的cleanup函数过期,需要修改;

解决办法

打开openssl文件

用vim打开文件:((以下路径可以根据自己的系统情况自行修改)) vim /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py

搜索关键字并修改

直接搜索关键字:EVP_CIPHER_CTX_cleanup,一共有2处;

进入编辑模式将 libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)

改为 libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)

其实就是把 cleanup 改为reset,就可以了; 保存并退出,重新启动就行; 完美解决;

然后,重新启动SS,就成功了; 至此,服务端基本就设置完了;

电脑配置

shadowsocks下载最新版本;就是一个绿色小飞机;

下载后,打开,然后配置账户和服务信息

密码就是刚才在服务器设置ss.json中的密码,包括加密方式;不要填错了;

配置完成后,启动客户端,访问goole,就可以了;

基本是秒开google;

手机配置

国内的APP Store VPN配置APP基本都下线了,建议某宝购买一个国外的appleID,下载一下这个哥们;

配置基本跟电脑差不多,如下:

手机配置

也可以通过扫描电脑SS配置的二维码直接保存;

最后防止AWS到期或者意外扣费

这个知友遇到信用卡被口几千刀,我们得注意一下,到期或者收到账单劲爆及时登录控制台查看信息;


☛兄dei,请我喝杯茶☚
%