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 ...
随机推荐
- Linux系统故障处理案例(一)
运行环境:CentOS6.7 故障原因: 昨天在线执行命令yum -y update 在命令执行途中,强制中断并直接运行poweroff命令关机.再次开机出现如图所示故障指示: 根据提示信息分析,可能 ...
- MSP430常见问题之工作模式和功耗类
Q1:1,MSP430进入LP 模式后,CPU 停止运行,那么,进入中断执行退出后,由于SR的恢复,导致还处于LP 模式,是否意味着,CPU 在退出中断后立即停止了呢?2,也就是说,进入LP 模式后, ...
- (转)STL
C++容器类 C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等:后者包括set,map,multiset,multimap等. 若需要存储的元素数在 ...
- 用ASP生成RSS
<% Response.Clear Response.CharSet="gb2312" '数据集 Response.ContentType="text/xml&qu ...
- 让progressDialog不会触摸消失
项目中的进度菊花圈,在网络请求的时候会出现,但是手一触碰到屏幕,就会消失,看了下自己的设置,给对话框设置了该方法: progressDialog.setCancelable(true); 点击Prog ...
- 【开发】Form 表单 Linkbutton 禁用
在权限判定中,对于无权限操作的按钮可直接隐藏($.hide()). HTML 定义 <a id="btnPreAssign_GeneralTasks" class=" ...
- Could not find action or result 导致 页面出现404错误
注意一下语句的写法(在login.jsp中的action) 在 struts.xml中 <action name="login" class="action.Lo ...
- 虚拟机单一网卡设置两个IP
一.在虚拟机里修改虚拟网卡配置 cd /ect/sysconfig/network-scripts/ vi ifcfg-eth0 改BOOTPROTO=static cp ifcfg-eth0 ifc ...
- (转)RPC原理详解
转自:http://www.open-open.com/lib/view/open1425797146897.html RPC功能目标 RPC的主要功能目标是让构建分布式计算(应用)更加容易,在提供强 ...
- PHP页面间参数传递的四种方法详解
2016-04-16 定义page01.php和page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用.------------------------ ...