买一个国外的云服务器

添加epel源,确保可以正确安装shadowsocks的各项依赖

yum install epel-release -y #安装epel-release扩展软件包
yum clean all #安装完epel后清理配置并重建缓存
yum makecache #刷新缓存
yum update #更新yum
```plain
yum install git -y 
git clone https://github.com/shadowsocks/shadowsocks-libev.git  #克隆shadowsocks
cd shadowsocks-libev # 进入刚下载的源码目录
git submodule update --init --recursive # 更新子模块
```plain
#接下来安装shadowsocks需要的各种依赖
yum install vim gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y

依赖全部成功安装后,用源码编译安装shadowsocks

./autogen.sh && ./configure && make

make完成后进行安装

make install

用户配置

在任意目录下建立一个配置文件,例如在root目录下建立ss_serverConfig

vim /root/ss_serverConfig
```plain
{
    "server": "0.0.0.0", 
    "server_port": 8400, 
    "local_port": 1080, 
    "password": "111111", 
    "timeout": 1000, 
    "method": "chacha20-ietf-poly1305" 
}

这里server直接填0.0.0.0就行,

server_port端口8400,

local_port 本地端口

password密码自己改

method 加密方式,优先选chacha20-ietf-poly1305

配置完保存好之后运行命令

ss-server -c /root/ss_serverConfig

如下图所示,表示成功运行。

所以我们可以使用nohup使程序与登陆账户无关,不再接收账户退出时的退出信号。这样我们登出服务器后服务仍然继续运行着。

nohup ss-server -c /root/ss_serverConfig &

多用户配置(可选)

如果你要设置几个帐号登陆,可以创建多个配置文件

多用户配置文件与单用户不同,我们还是在root下创建一个ss_managerConfig

vi /root/ss_managerConfig

然后复制下面的配置内容并保存。这里请把#后面的注释删掉再使用,注释只是为了提示你要怎么配置。

多用户配置时,应用ss-manager而不是ss-server

{
    "server": "111.111.111.111", # 你vps的ip地址
    "local_port": 1080, # 本地端口,自行设定
    "timeout": 600, # 超时毫秒数
    "method": "chacha20-ietf-poly1305", # 加密方式,建议优先选chacha20-ietf-poly1305,若客户端不支持,可选aes-256-cfb
    "port_password": {
        "8388": "barfoo1", # 端口号与密码
        "8389": "barfoo2" 
    }
}

运行下面的命令启动

ss-manager -c /root/ss_managerConfig
nohup ss-manager -c /root/ss_managerConfig &

设置shadowsocks开机自启动(可选)

根据,我们已经可以使shadowsocks服务良好地运行了,但是每次服务器重启了的话要重新运行一下

vim /usr/lib/systemd/system/vpn.service

将配置内容复制进去并保存,#后面的注释去掉

[Unit]
Description=shadowsocks manager
After=network.target

[Service]
Type=forking
ExecStart=/root/startVPN
PrivateTmp=true

[Install]
WantedBy=multi-user.target

将以上命令写在一个bash可执行文件中,例如startVPN。

vim /root/startVPN

复制一下脚本内容,这里第一行#!/bin/bash必须保留,否则后面执行会报错。

#!/bin/bash
cd shadowsocks-libev
nohup ss-server -c /root/ss_serverConfig &

保存文件后增加执行权限

chmod +777 startVPN

所有配置文件与脚本都设置完毕,使用systemctl开启服务。 更改.service文件后,都要重载守护进程更新systemctl

systemctl daemon-reload

启动服务

cd /usr/lib/systemd/system
systemctl start vpn.service

查看服务状态,若为绿色active(running)则说明服务成功启动

systemctl status vpn

设置服务开机自启动

systemctl enable vpn.service

可以使用 systemctl restart vpn 重启服务

使用 systemctl stop vpn 停止服务

安装shadowsocks客户端

Windows

https://github.com/shadowsocks/shadowsocks-windows/releases

安卓版

https://github.com/shadowsocks/shadowsocks-android/releases