Centos搭建Shadowsocks libev

ZephyrXT 发布于 阅读:133

—————— 安装必备程序 ——————

yum install epel-release -y
yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y
yum install git build-essential  openssl-devel gcc -y
yum install udns-devel 


—————— 下载源码并编译安装 ——————

#git clone https://github.com/madeye/shadowsocks-libev.git

git clone https://github.com/shadowsocks/shadowsocks-libev.git

cd shadowsocks-libev

./configure

#make && make install

git submodule init && git submodule update
./autogen.sh && ./configure && make

make install

cd ..

rm -rf shadowsocks-libev


编译时候默认是编译帮助文档的,由于依赖包体积过大可以选择不编译手册(documentation)
./autogen.sh
./configure --disable-documentation
# 四线程编译并安装
make -j4 install


—————— 启动 ——————

nohup /usr/local/bin/ss-server -s IP地址 -p 端口 -k 密码 -m 加密方式 &


—————— 后台启动 ——————

nohup /usr/local/bin/ss-server -s 11.22.33.44 -p 12345 -k 12345678 -m aes-256-cfb -u &


—————— 如何在使用nohup的时候不让它生成nohup.out ——————

刚才又试了一下,这样也可以:
nohup  yourprog  >/dev/null  2>/dev/null &
或者
nohup  yourprog  &>/dev/null


—————— 综合后台启动 —————— 

nohup /usr/local/bin/ss-server -s 11.22.33.44 -p 12345 -k 12345678 -m aes-256-cfb -u > /dev/null 2>&1 &


—————— 杀死进程 ——————

ps -ef | grep "ss-server" 会看到“/usr/local/bin/ss-server .......”的进

kill掉即可,比如: kill 29899

or 

killall ss-server


—————— 开机启动 ——————

echo "nohup /usr/local/bin/ss-server -s 11.22.33.44 -p 12345 -k 12345678 -m aes-256-cfb -u > /dev/null 2>&1 &" >> /etc/rc.local


—————— 保护进程 ——————

如果 ShadowSocks 经常掉线就在 /root/shadowsocks-libuv/ 下新建一个 check.sh 文件,加入以下脚本

#!/bin/bash
if
ps -ef|grep "ss-server" | grep -v "grep"
then
echo "Running!"
else
echo "Stopped!"
nohup /usr/local/bin/ss-server -s 11.22.33.44 -p 12345 -k 12345678 -m aes-256-cfb -u > /dev/null 2>&1 &
fi

chmod +x /root/shadowsocks-libuv/check.sh
crontab -e
*/5 * * * * /root/shadowsocks-libuv/check.sh
即每 5 分钟执行一次监控脚本,如果 ShadowSocks 的服务不在运行就自动启动。


参考:

1.Centos搭建Shadowsocks的教程
https://bbs.zephyrxt.com/thread-16637-1-1.html

2.DigitalOcean + CentOS 下 ShadowSocks 搭梯教程

https://bbs.zephyrxt.com/thread-17350-1-1.html

3.shadowsocks-libev管理脚本的使用(Linux系统)

https://bbs.zephyrxt.com/thread-17353-1-1.html

4.用 Supervisor 运行 Shadowsocks

https://bbs.zephyrxt.com/thread-17351-1-1.html

5.linux命令之nohup

https://bbs.zephyrxt.com/thread-17352-1-1.html

6.不编译shadowsocks的文档
https://bbs.zephyrxt.com/thread-18558-1-1.html

7.【已解决】连接不上服务器,Error: connect ETIMEDOUT
https://bbs.zephyrxt.com/thread-18597-1-1.html

8.让CentOS 7 开机执行/etc/rc.local 中的脚本
https://bbs.zephyrxt.com/thread-18598-1-1.html


收到4条评论
avatar
ZephyrXT 2018-05-31 23:39
https://teddysun.com/357.html/comment-page-36#comments

此问题已解决,默认OP的patch会关闭cfb
当运行一键脚本升级原有服务器出错后,重新编译模块,具体如下:
-------------------------------
wget https://tls.mbed.org/download/mbedtls-2.8.0-gpl.tgz
tar -zxvf mbedtls-2.8.0-gpl.tgz
cd mbedtls-2.8.0
make
make install
cd..
重新运行博主的一键脚本,ok。
avatar
ZephyrXT 2017-02-03 22:18
在 CentOS 7 下安装配置 shadowsocks
https://zephyrxt.com/bbs/thread-18608-1-1.html

配置自启动

新建启动脚本文件/etc/systemd/system/shadowsocks.service,内容如下:

[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target
执行以下命令启动 shadowsocks 服务:

$ systemctl enable shadowsocks
$ systemctl start shadowsocks
为了检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:

$ systemctl status shadowsocks -l
如果服务启动成功,则控制台显示的信息可能类似这样:

● shadowsocks.service - Shadowsocks
   Loaded: loaded (/etc/systemd/system/shadowsocks.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2015-12-21 23:51:48 CST; 11min ago
Main PID: 19334 (ssserver)
   CGroup: /system.slice/shadowsocks.service
           └─19334 /usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json
avatar
ZephyrXT 2017-02-02 12:41
yum install gettext gcc autoconf libtool automake make libmbedtls-devel asciidoc xmlto udns-devel libev-devel
yum install epel-release -y
yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto udns-devel libev-devel libmbedtls-devel -y

wget https://tls.mbed.org/download/mbedtls-2.4.0-apache.tgz
tar xzvf mbedtls-2.4.0-apache.tgz
cd mbedtls-2.4.0
make
make install

git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init --recursive
avatar
ZephyrXT 2017-01-21 14:52
rpm -e --nodeps autoconf-2.63



yum install gcc libtool automake make zlib-devel openssl-devel asciidoc xmlto udns-devel libev-devel


yum install epel-release
yum install gcc libtool automake make zlib-devel openssl-devel asciidoc xmlto udns-devel libev-develyum install gcc libtool automake make zlib-devel openssl-devel asciidoc xmlto udns-devel libev-devel

yum install libsodium-devel
yum install udns-devel libev-devel

git submodule init && git submodule update

wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar -xzf autoconf-latest.tar.gz
cd autoconf-2.69
./configure --prefix=/usr
make && make install

libev-devel libudns-devel libsodium-devel

cp /usr/local/lib/libsodium.so.18 /usr/lib/

git clone https://github.com/jedisct1/libsodium
cd libsodium
./autogen.sh
./configure && make
make install

ls /usr/local/lib/libsodium.*

通过源码编译libsodium,并且顺利编译出ss,但无法运行出现下面报错的话,运行下ldconfig就行。

error while loading shared libraries: libsodium.so.18: cannot open shared object file: No such file or directory

http://stackoverflow.com/questions/9501196/ev-h-c-header-missing