Machine World | Math World

记录实验过程

【实验室运维】搭建SSServer实现科学上网

【背景】

在学习需求中,时常需要翻阅Google查找资料。奈何GFW阻隔。且教育网IPv6速度感人。故另寻他径,自搭梯子科学上网。

【实验运行环境】

  • 硬件设施:国外VPS一台
  • 操作系统:Ubuntu 14.04
  • 依赖环境:Python3/Python2

【大体步骤】

  1. 安装Python,pip工具
  2. 安装Shadowsocks
  3. 配置Shadowsocks.json文件
  4. 设置SServer开机自启动

【详细步骤】

1、安装Python, pip工具

Shell 命令如下(如果操作系统自带这两个工具,本步跳过):

Ubuntu Linux安装指令:

sudo apt-get install python python-pip -y

CentOS Linux安装指令:

sudo yum install python python-pip -y

2、安装Shadowsocks

Shell 指令如下:

pip install shadowsocks

3、配置shadowsocks.json

Shell 指令如下:

vim /home/shadowsocks.json   #编辑shadowsocks.json文件,路径根据自己的需求任意改动。

3.1 在Shadowsocks.json中输入以下文本内容(JSON数据)并保存

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

3.2 测试ssserver是否正常

使用Sell指令:

sudo ssserver -c /home/shadowsocks.json #此处代表刚刚创建的shadowsocks.json的路径

3.3 出现问题:

 libsodium not found (本次使用的加密函数为:chacha20 而libsodium是提供chacha20的依赖库,故安装相关依赖)

3.4 错误提示如下:

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

3.5 解决方法:

3.6 输入命令:

sudo apt-get install m2crypto #安装加密依赖包
wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxf LATEST.tar.gz
cd libsodium*
#编译libsodium开始
./configure
make && make install
#编译libsodium结束
# 修复关联
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

3.7 测试:

ssserver -c /home/shadowsocks.json
INFO: loading config from ss.json
2019-04-28 09:36:31 INFO     loading libsodium from libsodium.so.23
2019-04-28 09:36:31 INFO     starting server at 0.0.0.0:8388

出现上述提示,则证明配置文件有效。并按照配置文件中的相关内容(密码,加密方式)进行了ss端口监听。

 

4、设置ssserver开机启动

输入Shell指令:

echo '/usr/bin/ssserver -c /home/ss.json -d start' >> /etc/rc.local

 

【参考文献】

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注