标签 shadowsocks 下的文章

需要root权限

安装

# 安装supervisor
apt-get install supervisor
# 初始化
echo_supervisord_conf > /etc/supervisord.conf
# 初始化配置文件
# 此命令会在 /etc/下创建一个示例配置文件

确定启动命令

# 原版shadowsocks启动命令
ssserver -c /home/gzm/config2.json
# shadowsocks-libev启动命令
ss-server -c /home/gzm/config2.json
# udp连接
ss-server -c /etc/shadowsocks-libev/config.json -u

脚本安装后的命令

# 启动:
/etc/init.d/shadowsocks start
# 停止:
/etc/init.d/shadowsocks stop
# 重启:
/etc/init.d/shadowsocks restart
# 查看状态:
/etc/init.d/shadowsocks status

配置
在/etc/supervisord.conf文件最后添加shadowsocks实例,代码如下
这一段配置如果配置错误,会导致supervisor的启动失败

[program:shadowsocks]
command = ss-server -c /etc/config.json -u
user = root
autostart = true
autoresart = true
#stderr_logfile = /var/log/supervisor/ss.stderr.log
#stdout_logfile = /var/log/supervisor/ss.stdout.log
#command就是ss的运行命令;
#user是执行命令的用户;
#autostart和autoresart指自动启动和自动重启;
#stdout_logfile重定向程序输出到此文件;
#stderr_logfile重定向程序错误到此文件;

运行supervisor

# 运行的时候使用-c指定配置文件
supervisord -c /etc/supervisord.conf
# 如果不指定配置文件
supervisord

# 那么配置文件会依次再下面的文件夹中寻找
# $CWD/supervisord.conf
# $CWD/etc/supervisord.conf
# /etc/supervisord.conf

更新配置文件
当我们修改配置后,为了使新的配置生效,我们需要通知supervisor是新配置文件生效,我们使用下面的命令:

# 使新的配置文件生效
supervisorctl update

其他命令

当supervisor运行后,管理他就不能用supervisord了,而是supervisorctl。下面是一些常用的运行命令

# 控制所有进程
supervisorctl start all
supervisorctl stop all
supervisorctl restart all
# 控制目标进程
supervisorctl stop shadowsocks
supervisorctl start shadowsocks
supervisorctl restart shadowsocks

开机自启动

vi /etc/rc.local
# 在exit前添加以下内容
supervisord -c /etc/supervisord.conf

web服务管理

如此配置后我们就可以在浏览器中输入127.0.0.1:9001来管理supervisor托管的任务。

如果将回环地址127.0.0.1换为服务器的IP地址,就可以可以远程管理supervisor了。

# 在配置文件后加上服务器配置信息
[inet_http_server]
port = 182.161.34.85:9001
username = user
password = ly1995

# 最后不要忘了reload使之生效!
supervisorctl reload

Shadowsocks-libev使用AEAD加密时,系统开启后首次运行Shadowsocks-libev可能会出现如下字样的提示:

This system doesn't provide enough entropy to quickly generate high-quality random numbers
Installing the rng-utils/rng-tools or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.

原因也正如提示中所说,系统没有足够的熵,这时候可以通过安装rng-tools来解决这个问题
如果不安装rng-tools,等待一定的时间后,服务也可以正常运行,至于用还是不用,请自行取舍

安装rng-tools:

apt-get update
apt-get install rng-tools

编辑配置文件:

vi /etc/default/rng-tools

添加如下内容:

HRNGDEVICE=/dev/urandom

安装完成,rng-tools会在重新启动服务器后生效
重启服务器后,Shadowsocks-libev对应的提示便会消失,Shadowsocks-libev服务也会在系统启动后立即启动,不会再浪费时间去等待系统收集熵

# 安装shadowsocks
apt-get install shadowsocks

# 安装shadowsocks-libev
apt-get install software-properties-common -y
add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
apt-get update
apt install shadowsocks-libev

# 安装shadowsocksR
wget -N --no-check-certificate https://softs.fun/Bash/ssrmu.sh && chmod +x ssrmu.sh && bash ssrmu.sh

# 新建配置文件
vi /etc/config.json

{
    "server":"servier_ip",
    "server_port":65432,
    "password":"password",
    "timeout":60,
    "method":"rc4-md5"
}

# 启用chacha20加密
apt-get install build-essential  
wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz  
tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16  
./configure && make && make install

# 修复关联
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig