- 安裝ss
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip
sudo pip install setuptools
sudo pip install wheel
sudo pip install shadowsocks
- 配置json文件
sudo gedit /etc/shadowsocks.json
將下面內容添加到文件中,括號的內容可以刪除,注意格式,否則會報錯:
{
"server": "(服務器地址,比如)1.1.1.1",
"server_port": (服務器端口號,比如)8080,
"local_address": (本地地址,比如)"127.0.0.1",
"local_port": (本地端口號,比如)1080,
"password": "(服務器密碼,比如)skqhfsaoqou",
"timeout": (超時時間,比如)300,
"method": "aes-256-cfb"
}
- 啓動
本地服務端(作爲客戶端鏈接你的服務器):
sudo ssserver -c /etc/shadowsocks.json -d start
- 出錯解決辦法:
正常來說,一般會出現下面錯誤:
Traceback (most recent call last):
File "/usr/bin/ssserver", line 9, in
load_entry_point('shadowsocks==2.8.2', 'console_scripts', 'ssserver')()
File "/usr/lib/python2.7/site-packages/shadowsocks/server.py", line 34, in main
config = shell.get_config(False)
File "/usr/lib/python2.7/site-packages/shadowsocks/shell.py", line 262, in get_config
check_config(config, is_local)
File "/usr/lib/python2.7/site-packages/shadowsocks/shell.py", line 124, in check_config
encrypt.try_cipher(config['password'], config['method'])
File "/usr/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 44, in try_cipher
Encryptor(key, method)
File "/usr/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 83, in __init__
random_string(self._method_info[1]))
File "/usr/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 109, in get_cipher
return m[2](method, key, iv, op)
File "/usr/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 76, in __init__
load_openssl()
File "/usr/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 373, in __getattr__
func = self.__getitem__(name)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 378, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/local/ssl/lib/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
shadowsocks start failed
原因是在openssl1.1.0版本中,廢棄了EVP_CIPHER_CTX_cleanup函數。參考官網:https://www.openssl.org/docs/man1.1.0/crypto/EVP_EncryptInit.html#HISTORY
解決辦法:
1.打開錯誤提示中的文件:
sudo gedit /usr/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py
2.(全文件共2處)搜索(Ctrl+F)cleanup
找到libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
將其改爲libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
3.再次搜索cleanup,將libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)
改爲libcrypto.EVP_CIPHER_CTX_reset(self._ctx)
4.保存並推出(Ctrl+S)