• 关于国内某个软件代理商代理的CorelDRAW系列软件,如果各位需要正版请访问corel官方网站,不要访问带有china的网站!!!反正话是放在这里了,听不听随你
  • 感谢访问,请访问https://alipay.vnas.me领取支付宝红包
  • 如果遇到文章图片不显示请联系管理员处理,谢谢
  • 欢迎访问寡人的吐槽胜地,我们真的只是吐槽,不谈技术,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 感谢访问,请访问https://alipay.vnas.me领取支付宝红包
  • 版权声明:大部分文章是从网上复制的!并不表示全部都是从网上复制的!
  • 感谢访问,请访问https://alipay.vnas.me领取支付宝红包
  • 如果遇到文章图片不显示请联系管理员处理,谢谢
  • 关于国内某个软件代理商代理的CorelDRAW系列软件,如果各位需要正版请访问corel官方网站,不要访问带有china的网站!!!反正话是放在这里了,听不听随你
  • 如果遇到文章图片不显示请联系管理员处理,谢谢

CentOS:Shadowsocks Manyuser、SS-panel完整详细配置多节点手册

技术类 大变态 2年前 (2016-05-20) 55次浏览 已收录 0个评论

配置多节点多用户的 Shadowsocks 比较繁琐且需要一定技术门槛,

调试的这些天里遇到很多问题,那么就将这些整理一下都写下来吧。

新手请先参考部署完成《CentOS 部署 LNMP 环境及一些常用命令》


一、安装依赖组件

yum install wget git tar gcc gcc-c++ openssl openssl-devel pcre-devel python-devel libevent automake autoconf libtool make -y


升级 Python(新手请跳过以免操作不当无法使用)

wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz

tar zxvf Python-2.7.6.tgz

cd /root/Python-2.7.6/Modules/zlib

./configure

make && make install

cd /root/Python-2.7.6

./configure

make && make install

python -V                                                                       //查看当前 python 的版本

mv /usr/bin/python /usr/bin/python2.6.6             //这里填刚才显示的版本号

ln -s /usr/local/bin/python2.7 /usr/bin/python     //创建 2.7 版本的软连接

yum 与 python 的兼容问题还要处理下:

vi /usr/bin/yum

#!/usr/bin/python2.6.6                                //第一行修改为原始的变更后的版本文件名

python                                                              //运行下查看版本信息,Ctrl+Z 停止退出。

显示 python 版本 2.7.6 就说明成功了,请直接跳过以下这些内容直至第二大部分的安装!

如运行出错:ImportError: No module named binascii ,是由于升级版本不对导致的。

 

这部分内容是全新部署不用操作不用看的!以下这部分是:

已有以下软件才升级 Python 版本出现很多问题的解决方法:

安装 setuptools

cd /root

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate

sh setuptools-0.6c11-py2.7.egg

如果提示 zipimport.ZipImportError: can’t decompress data; zlib not available ,说明需要安装 zlib 库:

cd /root/Python-2.7.6/Modules/zlib

./configure

make && make install

重新编译一下 python

cd /root/Python-2.7.6

make && make install

安装 setuptools

cd /root

sh setuptools-0.6c11-py2.7.egg

安装 pip

wget http://pypi.python.org/packages/source/p/pip/pip-7.1.0.tar.gz --no-check-certificate

tar zxf pip-7.1.0.tar.gz

cd pip-7.1.0

python setup.py install

错误提示:in resolve pkg_resources.DistributionNotFound: pip==7.1.0 说明需要安装 pip7.1.0 版本


二、安装 setuptools、pip、cymysql、swig、M2Crypto、gevent

cd /root

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py

python ez_setup.py --insecure

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz

tar zxvf pip-7.1.2.tar.gz

cd pip-7.1.2

python setup.py install

pip install cymysql

cd /root

wget http://jaist.dl.sourceforge.net/project/swig/swig/swig-3.0.0/swig-3.0.0.tar.gz

tar zxvf swig-3.0.0.tar.gz

cd swig-3.0.0

./configure

make && make install

cd /root

wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz --no-check-certificate

tar zxvf M2Crypto-0.22.3.tar.gz

cd M2Crypto-0.22.3

python setup.py build

python setup.py install

cd /root

yum install -y libevent

pip install greenlet

pip install gevent

 

三、安装及配置 Shadowsocks

cd

git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

vim /root/shadowsocks/shadowsocks/Config.py

vim /root/shadowsocks/shadowsocks/config.json

编辑 config.json 只更改加密算法为:

aes-256-cfb

编辑 Config.py  文件的数据库配置信息。

重点是节点的配置文件中需要注意的是:

#Config
MYSQL_HOST = ‘‘                     #MySQL 服务器域名
MYSQL_PORT = 3306             #MySQL 服务器端口
MYSQL_USER = ‘‘                     #MySQL 用户名
MYSQL_PASS = ‘‘                      #MySQL 用户密码
MYSQL_DB = ‘‘                          #MySQL 数据库名

MANAGE_PASS = ‘‘             #这个随便填没关系的
MANAGE_BIND_IP = ‘127.0.0.1‘ #当前节点 IP 地址
MANAGE_PORT = 3306

这里再说一下,没安装 vim 的可以用 yum install vim 进行安装。

vim 编辑器下按 i 进入编辑模式就可以编辑了,编辑好了之后,

按 Esc 输入:(冒号)再输入 wq(保存退出)即可完成文本编辑。

以下 SS-panel 配置部分节点服务器不用做连接到主数据库即可。

 

四、创建数据库并开启远程连接

(1)创建数据库并开启远程连接

mysql -u root -p

提示输入 MySQL 密码,进入后创建数据库:

create database shadowsocks;

grant all privileges on shadowsocks.* to ‘root‘@‘%‘ identified by ‘password‘ ;

flush privileges;

这里的 grant all reivileges 是赋予账户所有的权限,可以只赋予 select 和 update 权限即可。

shadowsocks.*是 shadowsocks 数据库下的所有表,root 是用户名%指任意主机连接地址。

password 就是设置的账户密码,flush privileges;是重新加载权限。这样就能远程连接了。

下面是另一种方法可以更改权限,我们再来查看下确定是否已经拥有远程连接的权限了:

use mysql;

select host,user from user;

查看结果是不是 root 或你指定的那个用户登录的 host 字段是否显示为%,如不是就执行:

update user set host = ‘%‘ where user = ‘root‘; 执行完后再 select host,user from user;

查看下 root 对应的 host 是否更改成了%,更改成功就表示该用户可以任意 IP 地址登录了。

flush privileges;    记得要执行一下这个命令才能让刚才更改的权限信息重新载入生效。

exit;  或输入 quit  退出 MySQL 控制台。当然也可以在 phpmyadmin 里面进行权限更改。

我们还需要确定防火墙是否开放了数据库所需要的 3306 端口来保障我们的通信正常的。

(2)打开远程连接数据库的端口

添加规则,打开 3306 端口:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

查看规则是否生效:

iptables -L -n      或者    service iptables status

service iptables save     或者    /etc/init.d/iptables save    这样重启也可以生效了。

 

五、前端 SS-Panel 的配置

上传 SS-panel 的文件到网站目录中,lnmp 是在:/home/wwwroot/default/ 目录下。

进入 phpmyadmin,将 SS-panelsql 下所有 sql 文件全都导入 shadowsocks 数据库中。

编辑 SS-panel 的数据库配置文件 lib/config.php (config-sample.php 改为 config.php)

其中 user 表中 id=1 的用户是管理员,端口号也是起始端口号之后的端口由此而递增。

默认帐号:first@blood.com        默认密码:1993    密码为 MD5 值,可以自行更改。

命令行操作为:

cd /home/wwwroot/default

git clone https://github.com/orvice/ss-panel.git

mv -f ss-panel/* .

cat /home/wwwroot/default/sql/*.sql > shadowsocks.sql 

mysql -u root -p

use shadowsocks;

source /home/wwwroot/default/shadowsocks.sql;

exit

 

六、运行测试并设置开机自动后台运行

(1)运行测试

cd /root/shadowsocks/shadowsocks

python  server.py

看输出信息来确定是否正常运行连接到数据库和监听端口。

按 ctrl+c 可以中断,根据反馈的信息去找问题所在去解决。

(2)后台运行

下面我们来介绍几种用法,选其一即可:

<1>nohup

cd /root/shadowsocks/shadowsocks

nohup python  server.py &

& 是后台运行意思。nohup 命令> log.file 2>&1 & 可将日志文件重定向到 log.file 中。

运行后如果不重定向则会在目录下生成 nohup.out 日志文件可用 cat nohup.out 查看。

用这个命令需要注意的是要使用 exit 退出才能关闭终端会话否则程序也会一起关闭。

如果需要查看可以使用 jobs -l 命令,关闭可以使用 kill PID 号即可关闭所指定的任务。

<2>screen

screen -dmS Shadowsocks python server.py

screen -dmS 用来创建一个处于断开模式的会话,Shadowsocks 为 session name。

screen -r Shadowsocks  可以恢复指定的会话,忘记了可以用 screen -list 来查看。

(3)配置开机自动启动并在后台运行

vim /etc/rc.local

编辑添加以下内容:

cd /root/shadowsocks/shadowsocks

python server.py &

screen 实现的方法就添加以下内容:

cd /root/shadowsocks/shadowsocks

screen -dmS Shadowsocks python server.py

(4)supervisor 值守进程方法:

cd /root

pip install --upgrade pip

pip install supervisor

echo_supervisord_conf > /etc/supervisord.conf

vim /etc/supervisord.conf

[include]                                 //在底部编辑去注释

files = /etc/supervisord.conf.d/*.conf       //存退

mkdir /etc/supervisord.conf.d

cd /etc/supervisord.conf.d

vim shadowsocks.conf

[program:shadowsocks]

command=python /root/shadowsocks/shadowsocks/server.py -c /root/shadowsocks/shadowsocks/config.json

autostart=true

autorestart=true

stderr_logfile = /root/shadowsocks.err.<span class="hljs-built_in">log</span>

stdout_logfile = /root/shadowsocks.out.<span class="hljs-built_in">log</span>

运行 supervisor

supervisord -c /etc/supervisord.conf

supervisor 运行后就交由 supervisorctl 来管理了

使修改的配置立即生效:supervisorctl update

设置开机启动 supervisor

vi /etc/rc.local           //添加以下内容

supervisord -c /etc/supervisord.conf

supervisor 控制台命令

supervisorctl                                               打开命令行

supervisorctl status                                   获得所有程序状态

supervisorctl start all                                运行所有进程

supervisorctl stop all                                 停止所有进程

supervisorctl restart all                            重启所有进程

supervisorctl shutdown                            关闭所有程序

supervisorctl start shadowsocks             运行目标进程

supervisorctl stop shadowsocks              停止所有进程

supervisorctl restart shadowsocks          重启目标程序

supervisorctl tail -f shadowsocks stderr 查看此进程的日志文件

Web 管理 supervisor

supervisor 自带 Web Server 可以通过页面来管理进程,

前提是需要开启配置文件中的 [inet_http_server] 项。

vim /etc/supervisord.conf

[inet_http_server]

port = 127.0.0.1:9001

;username = admin

;password = yourpassword

即可在浏览器中输入地址和端口号进行网页化的管理。


本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费内容,请在下载后 24 小时之内自觉删除,若作商业用途请购买正版;如果有版权争议,请发送邮件至 master@digac.cc(请留下写明原因和文章链接),我们将及时处理,谢谢!

喜欢 (0)
大变态
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址