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 ...
随机推荐
- -bash: lampp: command not found解决方案
在/opt目录下安装完lampp后,需要到/opt/lampp/下执行lampp启动或者停止服务,如果在其余目录下执行lampp,会提示:-bash: lampp: command not found ...
- 记工作中的git遇到的问题
看了 git 回退到某版本后,再在此版本上更新,无法push 操作前,我备份了修改了目录,准备建一个分支进行操作 我在本地revert了一次,commit到了远程仓库.然后上个版本的修改给恢复了... ...
- c# json转Dictionary字典
JavaScriptSerializer s = new JavaScriptSerializer(); string jsonTexts = "{\"count\" ...
- ACM——第几天
第几天 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 1830 测试通过 : 525 描 ...
- Windows Server 2008 R2安装IIS
在"服务器管理器"中选择"添加角色". 在"服务器角色"步骤选择"Web 服务器(IIS)". "角色 ...
- cocos2d-x实战 C++卷 学习笔记--第5章 精灵
前言: 精灵类是Sprite类.它的子类有PhysicsSprite 和 Skin. PhysicsSprite 是物理引擎精灵类,而Skin是皮肤精灵类,用于骨骼动画. 创建Sprite精灵对象 创 ...
- Go与GUI——GO语言的图形界面Walk
GO没有原生的界面库,所以不能直接用来写GUI界面.但最近互联网上已经涌现出不少成熟.好用的第三方界面库.使用它们,就同样可以写出同C#.C++的界面.而且效率还更胜一筹. 关于Walk界面库(官方介 ...
- android API文档查询---context、toast、SharedPreferences
/*查阅api ---context1.abstract AssetManager getAssets() Returns an AssetManager instance for the a ...
- 01_Java解析XML
[打印list.Map集合的工具方法] /** * 打印List集合对应的元素 */ public void printList(List<Object> list){ for(Objec ...
- OpenJudge/Poj 1753 Flip Game
1.链接地址: http://bailian.openjudge.cn/practice/1753/ http://poj.org/problem?id=1753 2.题目: 总时间限制: 1000m ...