CentOS7 shadowsock添加开机自启动过程

最近入手了一台国外的vps,系统是centos7,装上了ss,因为不想每次重启vps都要运行命令启动ss服务,所以研究了一下怎么将ss添加开机自启动,下面介绍一下具体的操作过程。

ss的启动命令如下:

ssserver -c /etc/shadowsocks.json --log-file=/tmp/ss.log -d start

上述命令说明:指定 /etc/shadowsocks.json 为配置文件,记录ss服务日志文件为 /tmp/ss.log,start表示启动。

shadowsocks.json配置文件如下:

{
    "server":"ip地址",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "443":"xxx_443",
        "520":"xxx_520",
        "525":"xxx_525",
        "530":"xxx_530"
    },
    "timeout":300,
    "method":"rc4-md5",
    "fast_open": false
}

首先网上查资料,编辑 /etc/rc.local中,在其中将ss的启动命令添加进去,就能开机自启动了,于是按照执行该操作,如下:


然后执行如下命令:

reboot  #重启
netstat -lntp  #查看当前的服务进程,发现并没有shadowsocks相关的服务
systemctl | grep "rc.local"  #查看rc.local  提示如下:
rc-local.service  loaded failed failed   /etc/rc.d/rc.local Compatibility

表明自启动时这个文件执行失败了,于是又查资料得知:

/etc/rc.local 是 /etc/rc.d/rc.local 的软链,意思是真正的文件是 /etc/rc.d/rc.local,而且文件中有这么一行说明:


意思是 必须给 /etc/rc.d/rc.local 赋予可执行权限,ll命令查看了下该文件权限,果然没有可执行权限,于是赋予可执行权限,为保险,同时把 /etc/rc.local 和 /etc/rc.d/rc.local都赋予了可执行权限

chmod +x /etc/rc.local
chmod +x /etc/rc.d/rc.local

保存,再次重启查看,发现还是启动失败。

有点小失落,不过还是不能放弃呀,再次百度,有人说是 /etc/shaowsocks.json这个配置文件有问题,其中的server参数不能为具体的ip地址,应该填写 0.0.0.0,于是按照要求改为 0.0.0.0,重启,发现还是不奏效。

再次百度,又发现一篇靠谱的文章,说可以在 /etc/rc.local中进行debug,具体如下:


把该文件启动失败的原因记录到 /tmp/rc.local.log中,保存,遂再重启一试,查看 /tmp/rc.local.log文件,果然发现了问题:


提示说明 ssserver命令找不到,如果用命令的全路径呢,没准可以,于是执行以下:

whereis ssserver   #查看命令路径为 /usr/local/Anaconda3/bin/ssserver

复制到文件中


保存,再次重启,发现真的可以了,成功了


shadowsocks启动后是依托python的,按照配置文件的,启动了四个端口,说明自启动成功。

在查资料的时候,网上很多都说这种添加自启动的方式在centos7中已经不推荐了,推荐的是用systemd添加自定义的自启动服务,以后可以试试这种办法,具体不再说了,可参考以下文章:

http://www.sevenfal.com/2016/08/04/784.html

https://opensiglud.blogspot.jp/2014/10/centos-7systemdshadowsocks.html

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wz947324/article/details/80347966
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭