debian 8 (systemd) 上 Shadowsocks-libev 的安装与多端口配置

来源:互联网 发布:数据仓库 数据存储 编辑:程序博客网 时间:2024/05/23 13:16

安装步骤很简单,直接上代码

sudo sh -c 'printf "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list'sudo apt updatesudo apt -t jessie-backports install shadowsocks-libev

以上安装过程只适合debian 8,如果是debian 9及ubuntu 16.10或更新的系统,请使用:

sudo apt updatesudo apt install shadowsocks-libev

配置:

单一端口:

修改/etc/shadowsocks-libev/config.json;配置成你的设置: ip地址,端口,密码都需要你自己调整下,下面的内容仅供参考格式

{    "server":"111.111.111.111",    "server_port":8399,    "local_port":1080,    "password":"yourpassword",    "timeout":60,    "method":"aes-256-cfb"}

启动:

sudo systemctl start shadowsocks-libev

以上的配置过程很简单,如果你需要在这个服务器上开通多端口的设置,则需要下面的步骤:

注意: 下面的操作不仅仅适用于debian8,适用于所有systemd的系统

原理: systemd不直接执行ss-server,而是执行一个shell脚本,shell脚本再启动多个ss-server;systemd配置成forking方式

如果你想拿来主义,请按照下面的步骤操作:

1:将/etc/shadowsocks-libev/config.json复制多份,放到 /opt/shadowsocks-libev 目录下,取名如下:

ss_0_cfg.json
ss_1_cfg.json
ss_2_cfg.json

我这里复制了3份,支持同时开3个端口,当然这些文件里面的内容,尤其是端口部分,一定要是不同的,即你需要改成你想要设置的端口

如果你想支持10个端口,则需要准备10个端口的 .json文件,还需要修改下面步骤3中的shell script,聪明的你一定知道怎么修改的!

2:修改 /lib/systemd/system/shadowsocks-libev.service 的 [Service]节中的内容如下:

[Service]Type=forkingEnvironmentFile=/etc/default/shadowsocks-libevUser=rootLimitNOFILE=32768PIDFile=/var/run/shadowsocks-libev/ss_0.pidExecStart=/opt/shadowsocks-libev/ss_multi_port.sh $USER $CONFFILE $DAEMON_ARGS

其中需要注意的是 Type=forking; 而PIDFile是新加的
3:关键的东西来了: /opt/shadowsocks-libev/ss_multi_port.sh; 这个文件的内容如下:

#!/bin/bash# Program:#     this program used for multi-port service for shadowsocks-libev#     shaddowsockes-libev do not support multi port configuration, use multiple instances instead.#     visit https://github.com/shadowsocks/shadowsocks-libev/issues/5  for more information##     Usage: ss_multi_port.sh user_as default_cfg daemon_opt##     In general, this script need start as a daemon from sysV init or systemd#     for systemd: it is run from /etc/systemd/system/multi-user.target.wants/shadowsocks-libev.service## History:# 2017-01-01    deeve.ma@gmail.com    first release# check argument numberif [ $# != 3 ]then        echo "Usage: `basename $0` user_as default_cfg daemon_opt"        exit 1fipid_file_dir=/var/run/shadowsocks-libevuser_as=$1default_cfg=$2daemon_opt=$3# create pid file folder[ -d $pid_file_dir ] || mkdir $pid_file_dir# pid file namepid_0_file=$pid_file_dir/ss_0.pidpid_1_file=$pid_file_dir/ss_1.pidpid_2_file=$pid_file_dir/ss_2.pidpid_3_file=$pid_file_dir/ss_3.pid# config file namedefault_cfg_dir=/opt/shadowsocks-libev#cfg_0_file=$default_cfgcfg_0_file=$default_cfg_dir/ss_0_cfg.jsoncfg_1_file=$default_cfg_dir/ss_1_cfg.jsoncfg_2_file=$default_cfg_dir/ss_2_cfg.jsoncfg_3_file=$default_cfg_dir/ss_3_cfg.json# start serviceecho "start multi-port service:"/usr/bin/ss-server -a $user_as -c $cfg_0_file -f $pid_0_file $daemon_opt/usr/bin/ss-server -a $user_as -c $cfg_1_file -f $pid_1_file $daemon_opt/usr/bin/ss-server -a $user_as -c $cfg_2_file -f $pid_2_file $daemon_opt#/usr/bin/ss-server -a $user_as -c $cfg_3_file -f $pid_3_file $daemon_optecho "start multi-port sevice done!"exit 0

启动:

sudo systemctl start shadowsocks-libev


如果判断启动多端口成功了呢:

ps -ef                 # 查看输出是否有你配置的那么多个 /usr/bin/ss-server 进程netstat -tuap          # 查看输出的端口是否有你配置的多个端口在监听


如果有需要交流的可以留言,最好是mail (不知道,再认真看看上面的shell script),会回复比较及时。


1 0
原创粉丝点击