程序实现:通过网页端注册,自助开通VPN帐号及Shadowsocks帐号。并可实现流量统计

系统要求 Debian 6 x64 纯净系统 by: Lop

①配置环境

apt-get update
apt-get install apache2 //输入y
apt-get install mysql-server //输入y 创建MYSQL密码 要两遍一样
apt-get install php5 输入y
apt-get install php5-mysql
apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin //输入y 选apache回车 OK 密码 密码 密码
cp /etc/phpmyadmin/apache.conf /etc/apache2/sites-available/phpmyadmin
cd /etc/apache2/sites-enabled/
ln -s ../sites-available/phpmyadmin
/etc/init.d/apache2 restart

/配置环境完成,请访问VPS的IP,如果显示“It Works”,http://ip/phpmyadmin 能够显示phpmyadmin。则表示环境配置成功/

②安装PPTP及L2TP的vpn (通过freeradius控制用户及流量,方法来自yzs.me)
cd //回到根目录
wget http://soft.yzs.me/freeradius.sh -O /tmp/freeradius.sh && bash /tmp/freeradius.sh
//选2-选1-输入MYSQL密码-创建radius密码-输入服务器IP-创建预共享密钥
echo "INSERT INTO radcheck (id,username,attribute,op,value) VALUES 
('','vpntest','Cleartext-Password',':=','11234')" | mysql -u root -p 
radius
//创建一个测试帐号vpntest 密码11234 并做vpn连接测试。VPN可以连接则为正常!

/至此vpn安装完成,会自动在mysql创建一个名为radius的数据库,用来存储vpn的用户名和密码/

③上传网站前端
解压ssnode.zip 并把所有内容上传到/var/www
更改/lib文件夹下config-simple.php 为 config.php
并配置数据库
define('DB_HOST','127.0.0.1');
define('DB_USER','root');
define('DB_PWD','mypassw');
define('DB_DBNAME','radius');
//例如上面的,请根据实际情况更改

/上传ssnode网站完成,ip可以访问主站页面则为正常/

④导入前端和ss程序公用的数据库

访问http://ip/phpmyadmin 并登陆
进入数据库radius 并导入sql/user.sql

/此数据库在ssnode.zip的sql目录下/

⑤安装Shadowsocks程序

解压shadowsocks-manyuser.zip 并把shadowsocks-manyuser上传到root目录
形成此目录 /root/shadowsocks-manyuser/shadowsocks

进入/root/shadowsocks-manyuser/shadowsocks 并编辑Config.py
cd /root/shadowsocks-manyuser/shadowsocks
vi Config.py
例子如下:
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_PASS = 'mypassw'
MYSQL_DB = 'radius'
//数据库名请保持radius不变,密码根据自己实际情况更改

⑥运行Shadowsocks

cd //回到根目录
apt-get install python-pip python-m2crypto

pip install cymysql
apt-get install screen //安装相关程序

cd /root/shadowsocks-manyuser/shadowsocks
screen python server.py
//进入Shadowsocks目录 并用screen命令运行Shadowsocks

⑦前端注册测试
访问你的IP 并注册一个新账户
Shadowsocks 的账户保存在数据库radius的user表中
VPN的账户保存在数据库radius的radcheck表中
前端注册成功则可以在上述两个表中看到。同时应该也可以进行相关的vpn或shadowsocks连接。

最后说明:以上程序源码及程序均来自互联网。感谢相关程序及源码作者@orvice @Extreme @mengskysama,并请尽量不要用于商业用途。
不足:
时间仓促,前端只能可以进行SS的流量统计,并显示。虽然可以统计和限制VPN流量。但并不是和ss公用的。也还没实现在前端显示。L2TP功能暂时有些不好用,我尽量联系yzs解决。

演示站 http://ssnode.com

//附加说明1
可通过修改 主站lib/config.php的
//invite only
$invite_only = false;

//附加说明2:开放本地MYSQL,用于多ss服务器
mysql -uroot -p
grant all privileges on . to 'root'@'%' identified by 'mypassw';
flush privileges;
quit
service mysql restart

源码打包↓

https://github.com/mengskysama/shadowsocks

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

Linux系统架设支持自助开通Shado wsocks及VPN前端的教程的更多相关文章

  1. 检测Linux系统是否支持某系统调用

    随内核版本的变化,会增加一些新的系统调用,但如果glibc没有跟上,则不能直接调用,这个时候可以自己包装一下.如果想知道内核是否支持某系统调用,先得知道它的系统调用ID号,下面代码即是用来检查是否支持 ...

  2. Linux系统编程:基本I/O系统调用

    文件描述符 进程每打开一个文件的时候,会获得该文件的文件描述符,而后续的读写操作都把文件描述符作为参数.在用户空间或者内核空间,都是通过文件描述符来唯一地索引一个打开的文件.文件描述符使用int类型表 ...

  3. 烂泥:Linux系统与windows系统文件同步

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章中,我们介绍了有关Linux系统之间的文件同步,这篇文章我们来介绍下,有关Linux系统与windows系统,以及windows系统与windo ...

  4. Linux体系结构(二): Linux系统层次

    前一节内容大概介绍了一下Linux的历史由来,各大Linux发行厂商都是基于GNU项目下的所有开源软件,来构建各自己的Linux发行版本,一个完整的Linux发行版本大概可以分为以下四个层次结构:   ...

  5. 高并发情况下Linux系统及kernel参数优化

    众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. Iptabl ...

  6. windows系统正常但linux系统下找不到文件的问题

    问题描述:最近一个项目开发环境是windows系统,正式环境是linux系统.验证码图片在开发环境正常,但是在正式环境下一直报404. 问题原因:File dir = new File(realPat ...

  7. Linux系统磁盘

    所有有系统都一样,都是一种软件被安装于某个硬件之上,这个硬件无外非是一种存储设备,通常操作系统都是安装在磁盘中,所以Linux系统也是一样,都是安装在磁盘中,但是它与Windows系统不一样,因为Li ...

  8. Linux系统kernel参数优化

    目录 iptables相关 单进程最大打开文件数限制 内核TCP参数方面 内核其他TCP参数说明 众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参 ...

  9. 一款开源Office软件---Lotus Symphony在Linux系统下的应用

    点击下载观看试用录像   Linux系统下的办公软件有OpenOffice.永中Office.红旗Red Office.金山Wps Office及StarOffice等,今天我为大家介绍IBM推进军O ...

随机推荐

  1. Web安全测试周末公开班计划5月24、25日开课,欢迎报名参加!

    Web安全测试周末公开班计划5月24.25日开课,欢迎报名参加! 课程大纲参考: http://gdtesting.com/product.php?id=107 报名咨询: 黎小姐 QQ:241448 ...

  2. FIO工具常用参数

    name 可能被用于覆盖作业的名称. filename fio 通常基于该作业名称,线程编号,构成一个文件名称和位置.如果您不想让线程之间的共享文件在一个作业或作业.指定文件名都以覆盖默认的. loc ...

  3. FastDFS配置过程

    在我的生产环境中利用FastDFS实现动静分离的方案

  4. 关于Eclipse中开发插件(二)

    原plugin.xml文件各个设置项的说明: 附上生成的文件代码: <?xml version="1.0" encoding="UTF-8"?> & ...

  5. 【JavaScript权威指南(第五版)】笔记之第二部分 客户端JavaScript 第13章~第23章

    第十三章 Web浏览器中的javascript ①   eg:下面两行代码实际上执行的是相同的功能 var answer = 42; window.answer = 42;   ③每个window对象 ...

  6. Java 简单算法--排序

    1. 冒泡排序 package cn.magicdu.algorithm; public class BubbleSort { public static void main(String[] arg ...

  7. php文件上传限制

    PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP.apache等的一些参数.下面,我们简要介绍一下PHP文件上传涉及到的一些参数: file_uploads :是否允许通过HTT ...

  8. anyConnect连接VPN后无法上网

    最近想使用学校图书馆的VPN, 使用的是anyConnect的客户端.每次连接后都显示连接成功,但是马上就无法上网了. 开始以为是win10系统不兼容的问题,在虚拟机里面用win7测试可以成功,但是因 ...

  9. HTML——表格table标签,tr或者td

    表格定义和用法 <tr> 标签定义 HTML 表格中的行. tr 元素包含一个或多个 th 或 td 元素. HTML 与 XHTML 之间的差异 在 HTML 4.01 中,tr 元素的 ...

  10. c#解析Josn(解析多个子集,数据,可解析无限级json)

    首先引用 解析类库 using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...