Digitalocean + ss 搭建加密通信代理服务器
本文以 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 客户端开始访问互联网吧~~
Written with StackEdit.
Digitalocean + ss 搭建加密通信代理服务器的更多相关文章
- ZMQ示例:使用 curve 进行加密通信
1. ZMQ 官方文档 ZMQ 的官方文档中关于 curve 的介绍如下: Client and server roles A socket using CURVE can be either cli ...
- 对Elastic集群内部配置TLS加密通信及身份验证
1.介绍 官方宣布从6.8和7.1开始,免费提供多项安全功能.其中包括tls加密通信,基于角色访问控制等功能. 可以使用企业CA证书来完成这一步骤,但是一般情况下,我们可以通过elasticsearc ...
- Security基础(三):OpenSSL及证书服务、邮件TLS/SSL加密通信
一.OpenSSL及证书服务 目标: 本案例要求熟悉OpenSSL工具的基本使用,完成以下任务操作: 使用OpenSSL加密/解密文件 搭建企业自有的CA服务器,为颁发数字证书提供基础环境 方案: 使 ...
- 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解
本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...
- bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能
xmlrpc . https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...
- Crypto API加密通信流程
应用程序使用Crypto API进行加密通信的一般步骤如下: 1,include wincrypt.h 2,调用CryptAcquireContext()获得某个CSP模块中的密钥容器(key con ...
- 单片机上使用TEA加密通信(转)
源:单片机上使用TEA加密通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 单片机:STM32 说 ...
- SSL及其加密通信过程
SSL及其加密通信过程 什么是SSL SSL英文全称Secure Socket Layer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密.它主要是分为两层: ...
- Python3+ssl实现加密通信
一.说明 1. python标准库ssl可实现加密通信 2. ssl库底层使用openssl,做了面向对像化改造和简化,但还是可以明显看出openssl的痕迹 3. 本文先给出python实现的soc ...
随机推荐
- hive使用derby的服务模式(可以远程模式)
hive默认使用的derby的嵌入模式.这个就面临着,无法多个并发hive shell共享的问题. 使用MySQL服务器也可以解决问题,但安装.配置太麻烦了. 可以使用轻量级的derby的c/s服务模 ...
- UITextView 和 UITextField限制字符数和表情符号
UITextField限制字符数 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)r ...
- P1569 [USACO11FEB]属牛的抗议
题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. The cow ...
- 在Linux环境下设置ArcGIS Server 服务开机自启
在 VMware 11.0 中安装了CentOS 6.5的Linux系统中部署ArcGIS Server,安装完后默认开机不自动启动此服务,每次开机都要手动启动(如下图所示),这样太麻烦.本文记录了设 ...
- C语言学习记录_2019.02.09
打印字符串:%s--------printf("%s","abcd"); 打印字符串数组中某一位:%c--------printf("%c" ...
- Scala_运算符
Scala运算符与操作数的位置关系,可分为 前缀运算符.中缀运算符.后缀运算符 算术运算符 + - * / % ++ -- 关系运算符 == != < > >= <= 逻辑运 ...
- python 集合总结
''' 集合:1:他是无序的,他是不重复的. 2,他里面的元素必须是可哈希的. int str bool ()但是它本身是不可哈希的. 3,集合不能更改里面的元素. 4,集合可以求交集,并集,差集,反 ...
- [shell]关闭超时的进程
应同事要求,写了个shell, 主要功能为查找超时的进程,并关闭! 调用方式: shell_sheep : 为进程名 30 : 为30分钟 从打印的日志能看出会多两个PID,不要惊慌,由于你执行时会 ...
- Ruby 装pg的坑
sudo apt-get install libpq-devsudo gem install pg -v '0.21.0'
- switch...case 语句
var a = 6;switch(a){ case 1: alert("1111"); break; case 2: alert("2222"); ...