分类 我爱编程 下的文章

Shadowsocks多用户管理面板——SS-Panel教程

准备工作

本教程需要VPS(虚拟主机也行,不过建议使用VPS)、域名(没有的看这个:教你申请.tk/.ml/.cf/.gq/.ga等免费域名)、SS-Panel、一个逗比、还有一点建站经验(至少建过站的,务必懂一些html!)!

安装环境

PHP版本>5.4,而且需要PDO扩展。

注意:Lnmp一键包是满足所需条件的,如果是用的其他一键包或者面板请注意这两个要求!如果安装完毕,访问页面出现白屏,那就是php或者pdo版本问题。

Web环境我选的是LNMP,用的是lnmp.org军哥的一键安装包!

LNMP

因为军哥自己写的已经很详细了,所以我具体安装教程看这个吧!——传送门(注意:输入的MySQL的root密码一定要记住)

安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。安装完成之后就创建虚拟主机——传送门

安装并创建完虚拟主机后,直接下一步 数据库配置

数据库配置

先下载SS-Panel面板文件:百度网盘Github(我网盘里不一定是最新版的,可以去这个网站下载最新偶!点击Download ZIP即可下载)

然后解压并打开sql文件夹,这时候会看到五个sql文件。

然后打开网站:你的IP/phpmyadmin这时候你就在phpmyadmin上输入用户名root密码你安装LNMP时候设置的数据库root密码

进去之后点击数据库——新建数据库——创建。

然后点击左边新建的数据库,点导入,然后选择sql文件夹下的sql文件,点执行。重复五次,把五个文件都导入进去。

导入完成后就是这个样子!

网站配置

打开lib文件夹找到config-simple.php文件,打开它。

注意:用系统自带的记事本软件会出现编码问题,我推荐使用Notepad++,在编辑代码的时候很方便!)

下图中红框圈中的是必须修改的,至于初始化流量和签到流量,请自己调节!

DB_USER是数据库用户名,DB_PWD是数据库密码,DB_DBNAME是数据库名称(别写错了!),这里可以使用默认的root账户也可以自己创建一个新的数据库用户

下面的自然就是网站名字网站域名了(必须加上http://或者https://和最后的“/”,这里请根据自己的网站是否加了ssl来选择http和https,不止一个人问我什么是https,很多人没使用SSL却还是使用默认的https,导致网站的一些链接出错误。)。

设置完后保存一下,然后修改config-simple.php文件名为config.php。接下来就是上传文件到vps了!

特别注意:这里是新手问题高发区!config.php里面的数据库配置如果出错,可能会出现内部500错误,无法登录账号(因为没连上/连错数据库),网站白屏等错误问题!
注意!改名字这一步一定要做,否则会导致只有主页能打开,其他页面都是空白!

防止搜索引擎收录网站

这里说一下防收录的一种手段,因为SS站比较敏感,为了大家的SS站不被墙发现并封掉,推荐大家做一些防收录措施!

robots.txt文件,是屏蔽搜索引擎蜘蛛爬取网站!

  1. Disallow: /user
  2. Disallow: /lib
  3. Disallow: /admin
  4. Disallow: /vendor
  5.  
  6. User-agent: Baiduspider
  7. Disallow: /
  8. User-agent: Sosospider
  9. Disallow: /
  10. User-agent:sogou spider
  11. Disallow: /
  12. User-agent: YodaoBot
  13. Disallow: /

这里只是把百度、搜狗、有道、SOSO屏蔽了。如果有需要可以去这里生成robots内容:站长工具

然后header.php文件<head>里面加上一个防止百度收录快照的代码:

  1. <meta name="Baiduspider" content="noarchive">

但是百度不一定遵守robots规则,可能依然收录,那就用下面的终极办法!

还有一个终极方法,如果你用的是Nginx,以lnmp为例,那就在/usr/local/nginx/conf/vhost文件夹中找到你的域名配置文件,比如:www.baidu.com.conf

然后在里面插入以下代码:

  1. if ($http_user_agent~* (baiduspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
  2. return 403;
  3. }

然后保存并上传替换,然后ssh链接vps输入lnmp nginx restart(如果提示出错请根据错误修改!)这时候去站长工具测试一下效果,看是不是返回403代码。

这几个就是我知道的所有方法了,如果有什么异议或者建议欢迎联系我!

上传网站文件

上传文件我们可以使用Linux SSH自带的SFTP,打开FTP软件(我推荐使用filezilla,功能还是很强大的!)

根据下图填写VPS信息,端口不用填,账号就是root账号。

连接后找到/home/wwwroot/你的域名,然后把SS-Panel文件都上传到这个目录下。上传完就是下图这个样子!

建立完成

这时候网站基本就创建完成了,打开你的域名开启你的网站吧!

网站搭建成功了记得点一下⌊喜欢和赞⌋喽~想看看我帮助了多少SS站长!

注意:如果安装完毕,访问页面出现白屏,那就是php或者pdo版本问题。

有什么问题请加群:271866172联系我!

网站建好了,但是没有人气怎么办?去我的Shadowsocks网站页面提交你的网站信息吧!

其他说明

默认情况下,user表中uid为1的用户为管理员

添加管理员可以在 ‘ss_user_admin’ 表中添加用户UID

默认管理帐号: first@blood.com 密码 1993

新版密码加密方式说明

当使用新的加密方式带salt的sha256加密,由于每个站点的$salt值都不同,所以初始密码「1993」是没有用的,安装完成后,访问

你的域名/pwd.php?pwd=1993

将获得的字符串更新到数据库user表的pass字段。

如果正常安装完毕后只有主页能打开,其他页面都是空白,那就是没有修改config-simple.php文件名为config.php

注意:

  • $salt 不可随意修改!
  • 如果原来为2.4之前的版本,需要将pass字段的长度修改为64

(转:逗比根据地http://www.dou-bi.com/)

ShadowsocksR 多用户版服务端安装教程(SS-Panel后端)

基本库安装

Centos系统执行这个:

  1. yum install python-setuptools&&easy_install pip
  2. yum install m2crypto git

Ubuntu/Debian系统执行这个(推荐这两个系统,对新手友好):

  1. apt-getupdate
  2. apt-getinstall python-pip
  3. apt-getinstall m2crypto git

安装cymysql

  1. pip install cymysql

获取源代码

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

执行完毕后此目录会新建一个shadowsocks目录,其中根目录的是多用户版(即数据库版),子目录中的是单用户版。

根目录即 ./shadowsocks

子目录即 ./shadowsocks/shadowsocks

服务端配置

进入根目录:

  1. cd shadowsocks

shadowsocks目录内,打开文件vi Config.py

  1. MYSQL_HOST= 'localhost' //前端mysql域名/IP
  2. MYSQL_PORT= 3306 //mysql端口
  3. MYSQL_USER= 'ss' //mysql用户名
  4. MYSQL_PASS= 'ss' //mysql密码
  5. MYSQL_DB= 'shadowsocks' //数据库名
注意:这里的数据库信息除了MYSQL_HOST,其他的必须和SS-Panel完全一致,服务端启动的时候会读取数据库信息!至于MYSQL_HOST,如果你的服务端和前端(SS-Panel)在一个VPS上,那就写localhost,如果不在一起,请写前端(SS-Panel)所在VPS的ip或者域名!还有一条要注意的,如果服务端和前端(SS-Panel)不在一个VPS上,那么数据库链接就属于远程链接了,这时候需要开启数据库用户的远程链接功能!开启方法:在数据库——用户——编辑权限——登录信息中修改Host为任意主机“%”

文件config.json:

打开文件vi config.json

  1. "method":"aes-256-cfb", //修改成您要的加密方式的名称

如果需要修改协议插件和混淆插件,请根据单用户版服务端页面的选项对照说明修改下面两个参数。

  1. "protocol": "auth_sha1_compatible",
  2. "obfs": "tls1.0_session_auth_compatible",

默认是兼容模式,原版也可以用,SSR开启插件也可以用!

id //用户id数据库字段说明:

  1. email//用户邮箱
  2. pass //用户密码
  3. passwd//ss密码
  4. t//最后使用的时间
  5. u//已上传流量
  6. d//已下载流量
  7. transfer_enable//可用流量(总量)
  8. port//ss端口
  9. switch //保留字段
  10. enable//启用或禁用ss帐号(1启用,0禁用)
  11. type//保留字段
  12. last_get_gift_time//保留字段
  13. last_rest_pass_time//保留字段

ShadowsocksR多用户板服务端默认开启UDP的

服务端运行与停止

进入根目录:

  1. cd shadowsocks

运行:

  1. python server.py

这句运行代码主要用于调试,关闭ssh后ss后端自动关闭,所以正式使用请使用下面的脚本运行!如果需要停止请按Ctrl+C键终止程序。

这时可查看有运行情况,检查有没有错误。如果服务端没有错误,而连接不上,需要检查iptables或firewall(centos7)的防火墙配置

通过脚本运行

脚本位于./shadowsocks目录。cd ./shadowsocks

增加脚本可执行权限(执行一次就好)

  1. chmod+x*.sh

后台运行(ssh窗口关闭后也继续运行)

  1. ./run.sh

后台运行时查看运行情况

  1. ./tail.sh

停止运行

  1. ./stop.sh

注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。

更新源代码

如果代码有更新可用本命令更新代码

进入shadowsocks目录

  1. cd shadowsocks

执行

  1. git pull

成功后重启ss服务

网站建好了,但是没有人气怎么办?去我的Shadowsocks网站页面提交你的网站信息吧!

其它异常

无法连接Shadowsocks服务端,并且没提示错误或者提示IP被占用

如果Shadowsocks服务端没有提示错误,或者提示IP被占用,并且使用./stop.sh和./run.sh脚本重启后,依旧无法连接Shadowsocks,请重启当前VPS(这个问题我猜测可能是./stop脚本并不能完全关闭Shadowsocks所有连接,导致无法解决问题。正好Shadowsocks服务端默认随机启动,所以重启VPS可以解决这个问题。如果你知道原因或者其他更好的解决办法请在下面留言)。

Shadowsocks无法连接到数据库!MYSQL:2003

经过我多次实验,发现这个问题都是出现在Shadowsocks后端和数据库不在一个VPS上,这就说明了是数据库所在VPS的错误,先开放数据库的远程连接“%”,这个上面服务端配置里说的有方法。然后再打开你iptables防火墙配置文件(多半问题都是出现在这里,3306数据库端口没有对外开放)。

Debian7的方法(其他的系统请谷歌iptables防火墙规则文件位置)

首先打开防火墙规则文件。

  1. vi /etc/iptables.rules

删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。

  1. -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

然后重载iptables配置文件

  1. iptables-restore < /etc/iptables.rules

Centos6

首先打开防火墙规则文件。

  1. vi/etc/sysconfig/iptables

删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。

  1. -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

然后重启iptables

  1. /etc/init.d/iptables restart


服务端运行提示/日志正常,客户端填写也正确,但是依然无法连接!

这种情况一般都是防火墙搞的鬼(Debian/Ubuntu基本排除,多出现在Centos系统)。

  1. iptables-L

看一下有没有什么东西阻止了ss端口,或者说是没有允许/开放ss的端口。

如果你看不明白,你可以先关闭防火墙,试一试是不是防火墙的问题导致的无法连接。

  1. /etc/init.d/iptables stop

如果关闭后SS链接正常,那就是防火墙的问题,你可以随后慢慢排除防火墙规则。也可以直接 iptables -F 清空防火墙,但是我不建议这么做,一不小心就需要重装服务器了。


如果你的服务端python版本在2.6以下,那么必须更新python到2.6.x或2.7.x版本


如果运行一段时间后,你发现服务器无法连接,同时ssh连上去后,执行

  1. netstat-ltnap|grep-c CLOSE_WAIT

显示的数值很大(超过50是严重不正常),那么请修改服务器的最大连接数,如果是ubuntu/centos均可修改

/etc/security/limits.conf

添加两行:

  1. *soft nofile32768
  2. *hard nofile131072

然后重启机器生效(详细的看这个Linux上的shadowsocks服务端优化方法

如果还是出现大量的too many open files错误,可以通过执行以下命令确定占用大量文件数的进程:

  1. lsof-n|awk'{print $2}'|sort|uniq-c|sort-nr|more

 

(转:逗比根据地http://www.dou-bi.com/ss-jc13/)

Shadowsocks流量管理脚本

ss-bash

Shadowsocks流量管理脚本

  • 目前只支持python版Shadowsocks
  • 目前只支持统计ipv4流量

系统要求

  • shadowsocks-python
  • Linux(推荐Debian 7,其它系统未测试)

工作原理

不同的用户分配不同端口,使用iptables规则获取各端口的流量,脚本循环运行,在固定时间间隔根据iptables结果统计流量使用情况,并在流量超过限制时,添加对应端口的iptables reject规则以禁用端口。

使用说明

首次使用

下载软件

git clone https://github.com/hellofwy/ss-bash

或者:

wget https://github.com/hellofwy/ss-bash/archive/v1.0-beta.3.tar.gz

首次运行时,先新建用户

例如新用户端口为8388,密码为passwd,流量限制为10GB,执行:

sudo ss-bash/ssadmin.sh add 8388 passwd 10G

启动ssserver

sudo ss-bash/ssadmin.sh start

其它命令请查看帮助,执行命令:

sudo ss-bash/ssadmin.sh help

或者点击链接:https://github.com/hellofwy/ss-bash/blob/master/sshelp

自定义ssserver的配置

打开文件ssmlt.template,添加相关选项。

请注意每个选项后必需有逗号(',')

默认选项为:

"server": "0.0.0.0",
"timeout": 60,
"method": "aes-256-cfb",

比如添加fastopen和worker选项后:

"server": "0.0.0.0",
"timeout": 60,
"method": "aes-256-cfb",
"fast_open": true,
"workers": 5,

修改之后,如果ssserver正在运行,请执行下面命令,重新加载文件并启动:

sudo ss-bash/ssadmin.sh soft_restart

修改流量统计间隔

默认的流量采样间隔为5分钟

流量间隔可根据实际需求调整,但最好不要太小,比如小于10秒

打开文件sslib.sh,修改INTERVEL的值,单位为秒。比如设置流量间隔为10分钟:

INTERVEL=600

修改ssserver文件位置

如果shadowsocks不是使用apt-get或者pip安装,无法自动找到ssserver文件时,请手动指定程序的具体位置。

打开文件sslib.sh,修改SSSERVER的值,比如ssserver的路径为/usr/local/bin/ssserver时,修改为

SSSERVER=/usr/local/bin/ssserver

文件夹中的相关文件

  • ssadmin.sh - 管理程序,所有命令通过该程序执行
  • sscounter.sh - 流量统计程序。由ssadmin.sh自动调用执行,注意:不要手动运行该程序
  • sslib.sh - 包含一些参数配置和流量统计函数。由ssadmin.sh自动调用执行,注意:不要手动运行该程序
  • ssmlt.template - ssserver的配置文件

程序运行后,会产生以下文件:

  • ssmlt.json - 根据用户列表和ssmlt.template生成的ssserver实际使用的配置文件
  • ssusers - 用户列表,包括端口、密码、流量限制参数。ssadmin.sh showpw 命令,显示该文件内容。
  • sstraffic - 用户流量使用情况,包括流量限制,已用流量,剩余流量等。ssadmin.sh show 命令,显示该文件内容。
  • traffic.log - 用户流量记录,供程序内部使用。
  • 其它文件 - .tmp、.lock、.pid等文件、文件夹tmp及其中文件为程序内部使用文件,请不要手动删除。

CentOS一键安装shadowsocks脚本

Shadowsocks是一个基于python的轻量级socks代理软件,可以在任何系统简单的实现访问被屏蔽的网站。网友也常称为科学上网,简称ss,在此分享与记录CentOS一键安装shadowsocks脚本。

一、使用root用户登录,运行以下命令:

1
2
3
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

二、安装完成后,脚本提示如下:

1
2
3
4
5
6
7
8
9
10
Congratulations, shadowsocks install completed!
Your Server IP:your_server_ip
Your Server Port:8989
Your Password:your_password
Your Local IP:127.0.0.1
Your Local Port:1080
Your Encryption Method:aes-256-cfb
 
Welcome to visit:http://teddysun.com/342.html
Enjoy it!

三、卸载方法

1
./shadowsocks.sh uninstall

四、配置文件

配置文件路径为:/etc/shadowsocks.json

单用户配置:

1
2
3
4
5
6
7
8
9
10
{
    "server":"your_server_ip",
    "server_port":8989,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"yourpassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

多用户配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "server":"your_server_ip",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

五、相关使用命令

1
2
3
4
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status

其它说明:默认配置服务器端口:8989客户端端口:1080,密码:自己设定(如不设定,默认为teddysun.com),多用户配置后需要重启shadowsocks服务。Windows客户端使用和下载请查看:Windows使用Shadowsocks科学上网。