Linux系统架设支持自助开通Shado wsocks及VPN前端的教程
程序实现:通过网页端注册,自助开通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前端的教程的更多相关文章
- 检测Linux系统是否支持某系统调用
随内核版本的变化,会增加一些新的系统调用,但如果glibc没有跟上,则不能直接调用,这个时候可以自己包装一下.如果想知道内核是否支持某系统调用,先得知道它的系统调用ID号,下面代码即是用来检查是否支持 ...
- Linux系统编程:基本I/O系统调用
文件描述符 进程每打开一个文件的时候,会获得该文件的文件描述符,而后续的读写操作都把文件描述符作为参数.在用户空间或者内核空间,都是通过文件描述符来唯一地索引一个打开的文件.文件描述符使用int类型表 ...
- 烂泥:Linux系统与windows系统文件同步
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章中,我们介绍了有关Linux系统之间的文件同步,这篇文章我们来介绍下,有关Linux系统与windows系统,以及windows系统与windo ...
- Linux体系结构(二): Linux系统层次
前一节内容大概介绍了一下Linux的历史由来,各大Linux发行厂商都是基于GNU项目下的所有开源软件,来构建各自己的Linux发行版本,一个完整的Linux发行版本大概可以分为以下四个层次结构: ...
- 高并发情况下Linux系统及kernel参数优化
众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. Iptabl ...
- windows系统正常但linux系统下找不到文件的问题
问题描述:最近一个项目开发环境是windows系统,正式环境是linux系统.验证码图片在开发环境正常,但是在正式环境下一直报404. 问题原因:File dir = new File(realPat ...
- Linux系统磁盘
所有有系统都一样,都是一种软件被安装于某个硬件之上,这个硬件无外非是一种存储设备,通常操作系统都是安装在磁盘中,所以Linux系统也是一样,都是安装在磁盘中,但是它与Windows系统不一样,因为Li ...
- Linux系统kernel参数优化
目录 iptables相关 单进程最大打开文件数限制 内核TCP参数方面 内核其他TCP参数说明 众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参 ...
- 一款开源Office软件---Lotus Symphony在Linux系统下的应用
点击下载观看试用录像 Linux系统下的办公软件有OpenOffice.永中Office.红旗Red Office.金山Wps Office及StarOffice等,今天我为大家介绍IBM推进军O ...
随机推荐
- RecyclerView, ListView 只显示一行内容 问题解决
Adapter 中的data有多行,但是RecyclerView只显示一行. 原因出在item的layout xml, 用了自动生成的RelativeLayout, 她的默认高度height属性是ma ...
- java基础总结
/查看数组是否为空 String[] aorgPks = userRole.getAssignOrgPks(); if(ArrayUtils.isEmpty(aorgPks)){ //uapstudi ...
- ZooKeeper - 状态信息 Stat 的属性说明
运行%ZK_HOME%/bin目录下的zkCli.sh(zkCli.cmd),使用get命令可以获取指定ZNode的数据内容和属性信息.例如: [zk: localhost:2181(CONNECTE ...
- SignalR 跨域设置
参考文章:http://www.cnblogs.com/nywd/p/3691813.html 上一节,已经实现了,当前域内的通信,这一节中,介绍一下跨域的即时通信,既然要做,我们肯定要把这个推送及聊 ...
- Opencv——播放视频(带滚动条)
#include"highgui.h" #include"cv.h" ; CvCapture* g_capture = NULL; void onTrackba ...
- C# IO操作(二)File类和Directory类的常用方法
本篇主要介绍一些常用的IO操作,对文件和目录的操作:留给自己复习之用. 1.创建文件 string sPath1=Path.GetDirectoryName(Assembly.GetExecuting ...
- From MSI to WiX, Part 1 - Required properties, by Alex Shevchuk
Following content is directly reprinted from From MSI to WiX, Part 1 - Required properties Author: A ...
- PHP学习笔记——PHP脚本和JAVA连接mysql数据库
环境 开发包:appserv-win32-2.5.10 服务器:Apache2.2 数据库:phpMyAdmin 语言:php5,java 平台:windows 10 java驱动:mysql-con ...
- mysql---索引及explain的作用
索引:是一种数据结构,以增加存储开销和减慢DML(增.删.改)操作来提高查询速度. 常见的索引结构:btree索引(myisam,innodb,memory,heap),hash索引(memory,h ...
- 一套帮助你理解C语言的测试题(转)
前言 原文链接:http://www.nowamagic.net/librarys/veda/detail/775 内容 在这个网站(http://stevenkobes.com/ctest.html ...