nodejh/nodejh.github.io

在 VPS 上安装 Shadowsocks Server

Opened this issue · 4 comments

首先关于 Shadowsocks 的使用说明在这里:Shadowsocks 使用说明

使用说明中描述的也非常详细。我主要是记录 在 Vultr 的 VPS 上安装 shadowsocks 安装使用过程中遇到的错误,以及错误解决办法。

我的 VPS 系统版本是 Ubuntu 16.10:

$ cat /etc/issue
Ubuntu 16.10 \n \l

# 或
$ sudo lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.10
Release:	16.10
Codename:	yakkety

首先安装 pip:

$ sudo apt-get install python-pip

然后通过 pip 安装 shadowsocks,结果就报错了:

$ sudo pip install shadowsocks
Could not import setuptools which is required to install from a source distribution.
Please install setuptools.

这是因为没有安装 setuptools,所以安装一下:

$ sudo pip install -U setuptools
# 然后再安装 shadowsocks
$ sudo pip install shadowsocks

更具体的内容可在 Github Issues 查看:ImportError: No module named setuptools (add details to docs)

接下来配置 shadowsocks:

$ sudo vim /etc/shadowsocks.json

写入下面的配置:

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

Shadowsocks 的配置文件描述在 Configuration via Config File

我的加密算法设置的是 chacha20。之前主流的SS有两种加密算法:RC4-MD5aes-256-cfb

aes-256-cfb 是各种一键包默认的加密方法,但是由于路由器和手机性能的问题,这种算法还是多少会影响到一些速度的。RC4-MD5 主要是加密太简单了,在 GFW 面前加密不加密已经没有什么区别...所以我们需要密码强度比 RC4-MD5 高,但是速度比 aes-256-cfb 快的加密算法,那就是 chacha20 了。可以说是目前性价比比较高的加密算法。

然后后台启动 shadowsocks:

$ sudo ssserver -c /etc/shadowsocks.json -d start

又报错了:

INFO: loading config from /etc/shadowsocks.json
Traceback (most recent call last):
  File "/usr/local/bin/ssserver", line 11, in <module>
    load_entry_point('shadowsocks==2.8.2', 'console_scripts', 'ssserver')()
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py", line 34, in main
    config = shell.get_config(False)
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 262, in get_config
    check_config(config, is_local)
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 124, in check_config
    encrypt.try_cipher(config['password'], config['method'])
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 44, in try_cipher
    Encryptor(key, method)
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 83, in __init__
    random_string(self._method_info[1]))
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 109, in get_cipher
    return m[2](method, key, iv, op)
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/sodium.py", line 62, in __init__
    load_libsodium()
  File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/sodium.py", line 42, in load_libsodium
    raise Exception('libsodium not found')
Exception: libsodium not found

因为没有 libsodiumlibsodiumchacha20 加密算法所需要的一个包。所以接下来就安装它:

$ wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxf LATEST.tar.gz
cd libsodium*
./configure
sudo make && sudo make install

编译的时候又报错了:

configure: error: no acceptable C compiler found in $PATH

这是因为没有 C 编译器。所以继续安装:

$ sudo apt-get install build-essential
# 安装成功之后再编译
$ sudo make && sudo make install

然后将下面的代码加入到 /etc/ld.so.conf

include ld.so.conf.d/*.conf"
/lib
/usr/lib64
/usr/local/lib

再重新载入配置:

$ sudo ldconfig

接下来再启动 shadowsocks:

$ sudo ssserver -c /etc/shadowsocks.json -d start

查看 shadowsocks 日志:

$ tail -f /var/log/shadowsocks.log

然后只需要配置好客户端,就可以愉快地番茄了。

最后分享一下我的 vultr 邀请链接,通过该链接注册您将获得 $20vultr

qifei commented

感谢你的分享,我刚刚也在 vultr 购买了服务,恨不能早看到你的邀请。
安装好,也运行了,可是客户端就是无法连到 google
我看网上好多教程,在 config.json 里填写 0.0.0.0 ,也有填真实 server IP 的,都没用。你有遇到类似问题吗?

感谢分享,非常有帮助

如果是centos的话建议$ sudo apt-get install build-essential# 安装成功之后再编译$ sudo make &&sudo make install
换成yum groupinstall "Development tools"

十分感谢(PS. 一样的步骤,使用CentOS 7失败了,但是Ubuntu 18可以,不知道为什么mmm毕竟是个小菜鸡