搭建科学上网和进程管理

如果你还在为无法访问国外网站而苦恼,如果你还在为寻找免费、高速的VPN而苦恼,如果你还在为怎么自己折腾Shadowsocks而苦恼,那么恭喜你,当你看到这篇文章,以上问题,将不再是问题,下面将教你,如何从零开始搭建属于自己的VPN,如何像访问国内网站那样迅速打开国外网站,这篇文章,就是大家的福音。

Shadowsocks特点

省电,在电量查看里几乎看不到它的身影;
支持开机自启动,且断网无影响,无需手动重连,方便网络不稳定或者3G&Wi-Fi频繁切换的小伙伴;
可使用自己的服务器,安全和速度的保证;
支持区分国内外流量,传统VPN在翻出墙外后访问国内站点会变慢;
可对应用设置单独代理,5.0之后的系统无需root。
我自己的感受:随机启动24小时后台运行,占内存10MB以内,基本不怎么耗电,跟人直接置身墙外使用手机的感受差不多。

Shadowsocks服务端搭建

服务端搭建的前提是你已经成功使用SecureCRT或putty或者xshell连接服务器,接下来的工作就是按照下面的步骤依次执行:

1.环境安装与更新

  • 这一步,你需要做的是依次执行下面的每条命令:
    1
    2
    3
    4
    5
    yum install epel-release
    yum update
    yum install python-setuptools m2crypto supervisor
    easy_install pip
    pip install shadowsocks

2.文件配置

  • 接下来需要编辑一下/etc/shadowsocks.json文件,命令如下:

    1
    vi /etc/shadowsocks.json
  • 执行上述命令后,此时的你已经进入文件编辑模式,这是你创建的一个新的空白文件,你需要做的事情就是将下面的内容粘贴后复制到shadowsocks.json文件里:

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "server":"0.0.0.0",
    "server_port":8388,
    "local_port":1080,
    "password":"yourpassword",
    "timeout":600,
    "method":"aes-256-cfb"
    }
  • 接下来需要编辑一下/etc/supervisord.conf文件,命令如下:

  • SUPERVISORD配置

    1
    echo_supervisord_conf > /etc/supervisord.conf
1
vi /etc/supervisord.conf
  • 此时,你已进入supervisord.conf文件的编辑模式,这不是一个空白文件,里面有很多英文,请把下面的内容粘贴到文件尾部的空行处,然后保存:

    1
    2
    3
    4
    5
    6
    7
    [program:shadowsocks]
    command=ssserver -c /etc/shadowsocks.json
    autostart=true
    autorestart=true
    user=root
    log_stderr=true
    logfile=/var/log/shadowsocks.log
  • 接下来需要编辑一下/etc/rc.local文件,请执行以下命令:

    1
    vi /etc/rc.local
  • 此时,你进入了rc.local文件的编辑模式,这也不是一个空白文件,请把以下内容粘贴到文件中部的空白处,然后保存

    1
    service supervisord start (没执行)   //或者  /usr/bin/supervisord start (执行了)
  • 最后执行reboot命令或者vps的重启按钮,重启服务器。

SUPERVISORD管理

1
/usr/bin/supervisord -c /etc/supervisord.conf

Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:

  • supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:blogdemon]里配置的值,这个示例就是blogdemon。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
  • supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。