Shadowsocks(弃)

中国大陆对很多好用的国外网站进行了封锁,说实话对开发人员来说造成了巨大的阻碍。互联网作为连接世界的工具,把它屏蔽了更像是开倒车。而且作为一个开发人员,至少的话会用到Google搜索问题,然而你也不能使用。偶尔想去看看国外人民的水深火热,也做不到。

在这样的环境下,催生了一大波的代理工具,用于突破封锁解除限制,shadowsocks就是这么一款工具。

原理

有一台中间服务器,这台服务器(后面要做的事情就在这台服务器上,一般是在海外,离大陆越近一般情况下延迟会越低,体验也会越好)必须是能够访问那些被封锁的网站的,在本地通过代理客户端去连接中间服务器中间服务端帮你把请求发送到被封锁网站的服务器上,然后中间服务器接收到被封锁网站的响应再返回给本地客户端,如下:

本地 x> 封锁的网站

本地 -> 中间服务器 -> 封锁的网站

安装

系统需要是Ubuntu(其他Linux发行版本其实也类似,只不过install命令不同),目前用的是16.04的长期支持版本,新的长期支持版本也是可以的

  1. 更新系统的软件目录列表: apt-get update

  2. 安装pythonpip软件包管理工具: apt-get install -y python-pip

  3. 安装shadowsocks: pip install shadowsocks

  4. 配置shadowsocks

    新建并编辑(使用擅长的文本编辑工具即可[vim,vi]): /opt/shadowsocks.json

    {
        "server":"0.0.0.0",
        "server_port":11223,
        "local_address": "127.0.0.1",
        "local_port":1080,
        "password":"123456",
        "timeout":300,
        "method":"chacha20",
        "fast_open": false
    }
    
    • server是指服务器的ip,如果指定当前服务器ip出错,可以像我一样使用0.0.0.0,表示所有ip
    • server_port服务监听的端口,用于客户端连接
    • local_address本地监听地址,默认回环地址127.0.0.1就行了,服务器上默认就行了
    • local_port本地监听的端口,同上
    • password代理服务器密码
    • timeout超时时间
    • method数据传说的加密方式,如果这里用的是chacha20的话,那后面服务器需要安装chacha20的支持,不想设置可以填aes-256-cfb
  5. 设置chacha20(可跳过,具体看上方method

    • wget https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
    • tar xf libsodium-1.0.16.tar.gz
    • cd libsodium
    • ./configure
    • make -j2
    • make install
    • ldconfig

启动

ssserver -c /opt/shadowsocks.json -d start

  • -c 指定配置文件地址
  • -d 指定命令start, restart, stop

其他

  1. 开机启动代理服务器
    • 编辑 /etc/rc.local
    • 在弹出的编辑框里的"exit 0 “这句之前添加一行/usr/local/bin/ssserver -c /opt/shadowsocks.json -d start
  2. 如果安装shadowsocks的时候pip提示没有安装setuptools,安装一下就好了
  3. 如果在安装chacha20时没有c编译器,执行apt-get install build-essential

参考

  1. shadowsocks的wiki(推荐)
  2. shadowsocks github主页
  3. windows的客户端
  4. MAC的客户端
  5. 安卓客户端

记录

shadowscoks-libv: 混淆 (忽视)

  1. https://github.com/shadowsocks/simple-obfs-android/issues
  2. https://github.com/iMeiji/shadowsocks_install/wiki/shadowsocks-libev
  3. https://github.com/shadowsocks/shadowsocks-libev