Ubuntu 下配置 shadowsocks以及开机自启

安装

apt-get install python-pip
pip install shadowsocks

配置

新建一个配置文件config.json
/etc/shadowsocks/config.json (文件内容如下)

1
2
3
4
5
6
7
8
9
10
11
{
"server":"remote-shadowsocks-server-ip-addr",
"server_port":443,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"your-passwd",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false,
"workers":1
}

参数说明
server 服务端监听地址(IPv4或IPv6)
server_port 服务端端口,一般为443
local_address 本地监听地址,缺省为127.0.0.1
local_port 本地监听端口,一般为1080
password 用以加密的密匙
timeout 超时时间(秒)
method 加密方法,默认的table是一种不安全的加密,此处首推aes-256-cfb
fast_open 是否启用TCP-Fast-Open
wokers worker数量,如果不理解含义请不要改

启动

nohup ssserver -c /etc/shadowsocks/config.json > /etc/shadowsocks/log &
-c 参数指定shadowsocks的配置文件位置,/etc/shadowsocks/log为日志文件路径(可自定义)

开机自启

每次开启都写这么长的命令很麻烦,可编写脚本,需要开启时执行脚本即可,但是还是有点麻烦
解决:设置开机自启,有如下两种方案:
1.在/etc/rc.local文件中添加需执行的脚本语言
2.先编写需开机启动执行的脚本文件,并将脚本文件复制到/etc/init.d目录下
然后执行:sudo update-rc.d xxx defaults (xxx是脚本文件名)
如假设脚本文件名为test,记得要给脚本文件执行权(chmod)
sudo update-rc.d test defaults
若要卸载启动脚本 sudo update-rc.d -f test remove
shadowsocks开机自启 创建并编写/etc/init.d/shadowsocks

1
nohup ssserver -c /etc/shadowsocks/config.json > /etc/shadowsocks/log &

1
2
$ sudo chmod 755 shadowsocks
$ sudo update-rc.d shadowsocks defaults

结果shadowsocks并没有开机启动,对其脚本文件中nohup前加上sudo权限后成功了

1
sudo nohup ssserver -c /etc/shadowsocks/config.json > /etc/shadowsocks/log &

但是系统开机时是以root用户执行各种服务,不明白为什么还要sudo授权