bypass the fucking wall

 122.112.242.165:8001

DO使用SS

sudo apt-get update                    更新源
sudo apt-get install -y docker.io      安装docker
systemctl start docker                 安装完成后,启动Docker守护进程
docker pull oddrationale/docker-shadowsocks  从dockerHub获取ss
sudo docker run -dt --name ss -p 80:80 -p 6500:6500/udp -p 80:80/udp -e SS_CONFIG="-s 0.0.0.0 -p 80 -m aes-128-gcm -k 965467 -u --fast-open" -e KCP_MODULE="kcpserver" -e KCP_CONFIG="-t 127.0.0.1:80 -1 :6500 -mode fast2" -e KCP_FLAG="true" mritd/shadowsocks
其中端口是80,加密方式是:aes-128-gcm,密码是965467
最后使用下面这句命令行在服务器启动ss
docker start ss

 

 在CentOS上安装

安装pip

yum install python-setuptools & easy_install pip

使用pip安装ss

pip install shadowsocks

创建ss的配置文件,位置和名字随意,这里使用/etc/shadowsocks.json

编辑内容,6443可以修改。

{
"server":"0.0.0.0",
"port_password":{"6443":"你的密码"},
"timeout":300,
"method":"aes-256-cfb",
"fast_open":true,
"workers":1
}

ssserver的启动,停止和重启

# 启动
ssserver -c /etc/shadowsocks.json -d start
# 停止
ssserver -c /etc/shadowsocks.json -d stop
# 重新启动
ssserver -c /etc/shadowsocks.json -d restart

设置防火墙

#安装firewalld
yum install firewalld
#启动firewalld服务
service firewalld start
#显示那些端口可用
firewall-cmd --zone=public --list-ports
#开放udp 7999端口号
firewall-cmd --zone=public --add-port=7999/udp --permanent
#开放tcp 7999端口号
firewall-cmd --zone=public --add-port=7999/tcp --permanent
#重启生效
firewall-cmd --reload

 

其他高级功能

{
    "server":"my-ssserver",
    "local_address":"127.0.0.1",
    "local_port":8888,
    "port_password":{
         "9999":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":600,
    "method":"aes-256-cfb",
    "fast_open": false
}
多用户设置

作为服务

启动Shadowsocks服务


vim /usr/lib/systemd/system/ss.service
[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /run/shadowsocks
ExecStartPre=/bin/chown nobody:nobody /run/shadowsocks
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json
Restart=on-abort
User=nobody
Group=nobody
UMask=0027

[Install]
WantedBy=multi-user.target


参数说明:

systemd的所有可用的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目录,后者优先级更高。

ExecStart 中 ssserver 如果加了-d 参数,用nobody执行就会有权限问题。

UMask 0027 和 umask 027 一样,最后一位7代表对 Others 的 File permission
 为 0

这里没有用 Type=forking 参数,因为本身没加 -d 参数,ssserver 不会fork自己作为守护进程。默认 Simple,即把守护进程化、重启、结束等工作交给systemd处理。

WantedBy=multi-user.target 对应原来的 runlevel 3。

运行服务并设置开机自启:

systemctl start ss

systemctl enable ss
设置为服务

 

posted on 2017-02-13 19:12  legion  阅读(327)  评论(0编辑  收藏  举报

导航