本文以 DigitalOcean + ss/ssr 配置加密通道***为例,记录了手动搭梯子的过程。
启动一个服务器实例的操作可以参考我的这篇博文,这里主要介绍 ss/ssr 的服务搭建过程。

首先 SSH 登陆到 VPS:

ssh <username>@<server>

这里用户名推荐用 root,因为配置过程中有很多操作需要管理员权限。
登陆成功后,良好的习惯是更新 apt 代码仓库和升级应用:

apt update && apt upgrade

然后就可以开始安装 ShadowSocks 的过程了(以 Python 版为例)

apt install python-pip
pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip -U

注意:这里一定要使用管理员权限安装,不然后面在输入命令 ssserver 的时候会报错:

-bash: ssserver: command not found

ssserver 安装完成后,我们需要几个加密工具:

apt install python-m2crypto

wget https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
tar xvf libsodium-1.0.17.tar.gz && cd libsodium-1.0.17/
./configure
make && make check
make install

安装部分到这里就结束了。接下来是一些 ss 服务的配置操作。
新建一个 json 文件 ss.json

{
  "server": "xxx.xxx.xxx.xxx",
  "server_port": 1234,
  "local_port": 56789,
  "password": "your password",
  "timeout": 600,
  "method": "aes-256-gcm",
  "remarks": "name of this configuration"
}

并将该文件拷贝到 /etc/ss.json

大功告成!现在我们可以启动 ss 服务了:

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

注:OpenSSL 1.1.0 以上版本环境中会遇到报错

AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

解决方法参考自这里,简单来说,我们只需要将文件 /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py 中的 libcrypto.EVP_CIPHER_CTX_cleanup 替换为 libcrypto.EVP_CIPHER_CTX_reset

如果一切正常,ssserver 将显示信息:

INFO: loading config from /etc/ss.json
yyyy-mm-dd h:min:s INFO     loading libcrypto from libcrypto.so.1.1
started

另外两个常用 ssserver 命令:

ssserver -c /etc/ss.json -d stop
ssserver -c /etc/ss.json -d restart

VPS + ssserver 的部署过程到此就完成了,选个喜欢的 ss 客户端开始访问互联网吧~~

Reference


Written with StackEdit.

Digitalocean + ss 搭建加密通信代理服务器的更多相关文章

  1. ZMQ示例:使用 curve 进行加密通信

    1. ZMQ 官方文档 ZMQ 的官方文档中关于 curve 的介绍如下: Client and server roles A socket using CURVE can be either cli ...

  2. 对Elastic集群内部配置TLS加密通信及身份验证

    1.介绍 官方宣布从6.8和7.1开始,免费提供多项安全功能.其中包括tls加密通信,基于角色访问控制等功能. 可以使用企业CA证书来完成这一步骤,但是一般情况下,我们可以通过elasticsearc ...

  3. Security基础(三):OpenSSL及证书服务、邮件TLS/SSL加密通信

    一.OpenSSL及证书服务 目标: 本案例要求熟悉OpenSSL工具的基本使用,完成以下任务操作: 使用OpenSSL加密/解密文件 搭建企业自有的CA服务器,为颁发数字证书提供基础环境 方案: 使 ...

  4. 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解

    本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...

  5. bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

    xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...

  6. Crypto API加密通信流程

    应用程序使用Crypto API进行加密通信的一般步骤如下: 1,include wincrypt.h 2,调用CryptAcquireContext()获得某个CSP模块中的密钥容器(key con ...

  7. 单片机上使用TEA加密通信(转)

    源:单片机上使用TEA加密通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 单片机:STM32 说 ...

  8. SSL及其加密通信过程

    SSL及其加密通信过程 什么是SSL SSL英文全称Secure Socket Layer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密.它主要是分为两层: ...

  9. Python3+ssl实现加密通信

    一.说明 1. python标准库ssl可实现加密通信 2. ssl库底层使用openssl,做了面向对像化改造和简化,但还是可以明显看出openssl的痕迹 3. 本文先给出python实现的soc ...

随机推荐

  1. P2607 [ZJOI2008]骑士

    题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...

  2. Java并发编程--2.synchronized

    前言 synchronized关键字是互斥锁,也称为内部锁 每个对象都有自己的monitor(锁标记),它是为了分配给线程,最多一个线程可以拥有对象的锁 使用 synchronized修饰成员方法,锁 ...

  3. Odoo的@api.装饰器

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281437.html Odoo自带的api装饰器主要有:model,multi,one,constrains, ...

  4. ethers.js-2-wallets and signers

    Application Programming Interface (API) Wallets and Signers A Wallet manages a private/public key pa ...

  5. Android利用fidller进行网络抓包

    http://www.oschina.net/question/221817_129716?fromerr=z7ZX9oZR http://www.trinea.cn/android/android- ...

  6. Metronic前端模板

    Metronic前端模板是我现在公司正在使用的,觉得还是蛮强大,最重要的是只要有Bootstrap的使用经验或者HTML.CSS.JS基础足够好,完全可以玩转它. 当然了,就算不好也没有关系,对于使用 ...

  7. (转)MyEclipse快捷键大全

    -------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 ...

  8. Selenium2+python-unittest之装饰器(@classmethod)

    原文地址:http://www.cnblogs.com/yoyoketang/p/6685416.html 前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量 ...

  9. 《You dont know JS》强制类型转换

    强制类型转换 将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况.隐式的情况被称为强制类型转换 在书中,作者还提出一种区分方式: 类型转换发生在静态类型语言的编译阶段,强制类型转换发生在动 ...

  10. 解决IOS9 下在App中无法打开其他应用的问题

    打开 info.plist 文件 ,在根节点下添加下面代码即可,这是由于IOS9新的权限管理机制的问题 <key>LSApplicationQueriesSchemes</key&g ...