ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

「Shadowsocks」- 安装配置(Python) @20210129

2021-01-29 17:00:15  阅读:1826  来源: 互联网

标签:bin 安装 libcrypto Python Shadowsocks ssserver shadowsocks 20210129


问题描述

本文将介绍如何安装并设置Shadowsocks服务,以实现科学上网,访问Google、Twitter、Facebook等等站点。

有关Shadowsocks原理,本文不再赘述。

注意事项

因某些原因,自「shadowsocks 2.8.2」后,该项目就已经不再维护了。但是出现许多“衍生版本”(基于原版本进行问题修复和扩展的版本)。推荐安装「shadowsocks-py」软件包,该软件包也是在原有的基础上进行代码维护。但是本文内容依旧基于「shadowsocks 2.8.2」版本。

目前Shadowsocks流量已经能够被识别,这与使用默认端口、数据加密类型都有关系。现在是时候挖条加密隧道保护流量。比如你可以使用SSH创建加密隧道,通过该隧道SOCKS流量。

环境概述

本地台式机,扮演客户端,壹台想要科学上网的主机。

远程服务器,扮演服务端,壹台能够访问任何站点的主机。

第一步、安装服务(在两台主机上执行)

#!/bin/sh

#(搜索)执行如下命令,搜索出Shadowsocks软件包名:
pip search shadowsocks

#(安装)使用pip安装Shadowsocks包
pip install shadowsocks
pip install shadowsocks==2.8.2 # (其他可选安装方法)安装特定的版本

# (其他可选安装方法)直接从Git安装
pip install git+https://github.com/shadowsocks/shadowsocks.git@master

安装的可执行程序:

命令功能
sslocal实现SOCKS5协议的客户端,运行在本地主机中。
ssserver实现SOCKS5协议的服务端,运行在远程服务器中。

第二步、服务端配置(在远程服务器上执行)

# 方式一、直接命令行启动

执行如下命令启动服务:

#!/bin/sh

# 直接启动
ssserver -p 8388 -k "your password" -m aes-256-cfb

# 后台运行(以nobody用户运行)
ssserver -p 8388 -k "your password" -m aes-256-cfb --user nobody -d start

查看服务日志:

#!/bin/sh

tail -f /var/log/shadowsocks.log

停止正在运行的服务:

#!/bin/sh

ssserver -d stop

# 方式二、使用配置文件

每次都在命令行中指定选项、密码等参数,不仅不安全,而来不方便。可以通过配置文件:

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

然后使用该配置文件来启动服务:

#!/bin/sh

ssserver -c /etc/shadowsocks.json

# 启动和停止服务
ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

# 启动管理地址
ssserver -c /etc/shadowsocks.json --manager-address 127.0.0.1:6001 -d start

配置文件的配置方法参考「Create configuration file and run」文档

第三步、客户端配置(在本地台式机上执行)

客户端有两种选择:使用sslocal命令;使用图形化客户端;

# 方式一、使用sslocal命令

# 方式二、使用图形化客户端

可以到官网下载GUI客户端。支持Windows、Mac OS X、Linux、Android、IOS、OpenWRT。使用方法可以「查看官方的Quick Guide」。

或者安装客户端程序:shadowsocks-qt5

常见错误列表

#1 libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

问题描述:

2016-12-02 20:16:46 INFO     loading libcrypto from libcrypto.so.1.1
Traceback (most recent call last):
File "/usr/local/bin/sslocal", line 9, in <module>
load_entry_point('shadowsocks==2.8.2', 'console_scripts', 'sslocal')()
......
File "/usr/lib/python2.7/ctypes/init.py", line 380, in getitem
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

解决办法:
according to this link you can find any string like:

libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)

and replace with:

libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)

also, replace this part:

libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)

with

libcrypto.EVP_CIPHER_CTX_reset(self._ctx)

in the file openssl.py , which is located somewhere like /usr/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py , you could find it.
... and the problem would be solved.

#2 ImportError: No module named pkg_resources

问题描述:

Traceback (most recent call last):
File "/usr/local/bin/sslocal", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

解决办法:
在Ubuntu 16.04中,执行apt-get install python-pip命令安装pip包(其他的GNU/Linux发行版是类似的)

相关链接

Is there a way to disable encryption? #762

参考文献

WikiNotes/安装配置(Python)
ShadowSocks Homepage
ShadowSocks Client
shoadowsocks Github Wiki
近期Shadowsocks屏蔽,更换SSR,以及BBR部署的一些经历
SS是不是又因为敏感因素瘫痪了?#2553

标签:bin,安装,libcrypto,Python,Shadowsocks,ssserver,shadowsocks,20210129
来源: https://blog.csdn.net/u013670453/article/details/113396627

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有