ss 服務器端 Ubuntu 16 安裝過程

  1. 安裝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
  1. 配置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"
}
  1. 啓動
    本地服務端(作爲客戶端鏈接你的服務器):
sudo ssserver -c /etc/shadowsocks.json -d start
  1. 出錯解決辦法:
    正常來說,一般會出現下面錯誤:
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章