之前的 ss-bash 虽然也挺好用,也很轻量,但不方便搞端口转发,也不适合我继续当奸商,所以就顺手花了一晚上搭了原版的 sspanel,用了两天,也在校内小小推广了一波,发现这个系统不支持支付接入,无奈又换用 sspanel 魔改版,断断续续折腾了两天,结果悲剧的发现魔改版是支持支付接入,但是。。。个人账户必须调用第三方免签约的服务,而这些服务。。。算了。。。我的事业还没开始呢。。。
网上所有的魔改版的教程都过时了,作者新添加了一些功能,导致以前的方法不对,写一写我自己踩的坑吧。
LNMP 环境展开目录
用的是 oneinstack 集成包,虽然安起来慢,不过版本比较新,而且自带了几个常用的脚本,挺好用的。
照着 这里 的教程来就可以了,注意安装完成后他会给你加上防火墙,如果你有别的服务在跑,可以等他安完了再去改一下。
安好后会自带一个默认服务,跑着 phpinfo
和一个探针,这些东西泄露服务器信息,肯定不能要,安好后看看功能正常就可以删了。用 oneinstack 自带的 vhost.sh 脚本生成的虚拟主机配置文件在 /usr/local/nginx/conf/vhost/
目录下,自带的那个在 /usr/local/nginx/conf/nginx.conf
文件中间,全部 deny
掉就可以了。
sspanel 前端安装展开目录
利用 vhost.sh 添加一个虚拟主机,Rewrite rule 选 Laravel,根目录定到 /data/www/abc.dcc.com/public
。
- cd /data/www/
- sudo git clone -b new_master https://github.com/40huo/ss-panel-v3-mod.git abc.dcc.com
- sudo chown -R username:username abc.dcc.com
- sudo chmod -R 777 abc.dcc.com/storage
- cd abc.dcc.com
- php composer.phar install
- cp config/.config.php.example .config.php
基础环境装好了,下面开始改配置,这就没什么难的了,按照默认的注释就好。
- <?php
-
- // ss-panel v3 配置
- //
- // !!! 修改此key为随机字符串确保网站安全 !!!
- $System_Config['key'] = '';
- $System_Config['debug'] = 'false'; // 正式环境请确保为false
- $System_Config['appName'] = ''; //站点名称
- $System_Config['baseUrl'] = 'https://zhaojin97.cn'; // 站点地址
- $System_Config['timeZone'] = 'PRC'; // PRC 天朝时间 UTC 格林时间
- $System_Config['pwdMethod'] = 'sha256'; // 密码加密 可选 md5,sha256
- $System_Config['salt'] = ''; // 密码加密用,从旧版升级请留空
- $System_Config['theme'] = 'material'; // 主题
- $System_Config['authDriver'] = 'cookie'; // 登录验证存储方式 可选: cookie,redis
- $System_Config['sessionDriver'] = 'cookie';
- $System_Config['cacheDriver'] = 'cookie';
- $System_Config['tokenDriver'] = 'db';
-
- //$System_Config['version'] = '<a href="https://www.zhaoj.in">Glzjin</a> mod-2016042210000';
-
- // mu key 用于校验ss-go mu的请求,半角逗号分隔
- $System_Config['muKey'] = '';
- // 邮件
- $System_Config['mailDriver'] = 'mailgun'; // mailgun or smtp or sendgrid
-
- // 用户签到设置
- $System_Config['checkinMin'] = '1989'; // 签到最少流量 单位MB
- $System_Config['checkinMax'] = '8964'; // 签到最多流量
-
- //
- $System_Config['defaultTraffic'] = '100'; // 用户初始流量 单位GB
-
- // 注册后获得的邀请码数量
- $System_Config['inviteNum'] = '0';
-
- # database 数据库配置
- $System_Config['db_driver'] = 'mysql';
- $System_Config['db_host'] = 'localhost';
- $System_Config['db_database'] = '';
- $System_Config['db_username'] = '';
- $System_Config['db_password'] = '';
- $System_Config['db_charset'] = 'utf8';
- $System_Config['db_collation'] = 'utf8_general_ci';
- $System_Config['db_prefix'] = '';
-
- # redis
- $System_Config['redis_scheme'] = 'tcp';
- $System_Config['redis_host'] = '127.0.0.1';
- $System_Config['redis_port'] = '6379';
- $System_Config['redis_database'] = '0';
- $System_Config['redis_password']="";
-
- # mailgun
- $System_Config['mailgun_key'] = '';
- $System_Config['mailgun_domain'] = '';
- $System_Config['mailgun_sender'] = '';
-
- # smtp
- $System_Config['smtp_host'] = '';
- $System_Config['smtp_username'] = '';
- $System_Config['smtp_port'] = '25';
- $System_Config['smtp_name'] = '';
- $System_Config['smtp_sender'] = '';
- $System_Config['smtp_passsword'] = '';
- $System_Config['smtp_ssl'] = 'false';
-
- # aws
- $System_Config['aws_access_key_id'] = '';
- $System_Config['aws_secret_access_key'] = '';
-
-
- #glzjin's time
-
- #功能开关
- $System_Config['enable_wecenter']='false';
- $System_Config['enable_radius']='false';
- $System_Config['enable_cloudxns']='false';
- $System_Config['enable_duoshuo']='false';
-
-
-
-
- #用户过期时间,在注册时设置。(天)
- $System_Config['user_expire_in_default']='99999';
-
- #Radius数据库设置
- $System_Config['radius_db_host']='';
- $System_Config['radius_db_database']='';
- $System_Config['radius_db_user']='';
- $System_Config['radius_db_password']='';
-
- #Radius连接密钥
- $System_Config['radius_secret']='';
-
-
-
-
- #多说设置
- $System_Config['duoshuo_shortname']="";
- $System_Config['duoshuo_apptoken']="";
-
-
- #节点离线设置
- $System_Config['node_offline_warn']='true';
-
- #异地登陆提示
- $System_Config['login_warn']='true';
-
- #端口池
- $System_Config['min_port']='10000';
- $System_Config['max_port']='65535';
-
- #两种方式相对于ss端口的偏移
- $System_Config['pacp_offset']='-20000';
- $System_Config['pacpp_offset']='-20000';
-
- #测速周期/h
- $System_Config['Speedtest_duration']='6';
-
-
- #随机分组,注册时随机分配到的分组,多个分组请用英文半角逗号分隔。
- $System_Config['ramdom_group']='0';
-
- #Wecenter 数据库信息
- $System_Config['wecenter_db_host']='localhost';
- $System_Config['wecenter_db_database']='';
- $System_Config['wecenter_db_user']='';
- $System_Config['wecenter_db_password']='';
-
- #系统根域名 zhaoj.in 这样
- $System_Config['wecenter_system_main_domain']='';
-
- #访问路径,不开启这个功能的话就清空这个设置项吧
- $System_Config['wecenter_url']='http://help.';
-
- #可从安装好的 wecenter 目录下的 system/config.inc.php 得到
-
- #G_COOKIE_PREFIX
- $System_Config['wecenter_cookie_prefix']='mmg_';
-
- #G_COOKIE_HASH_KEY
- $System_Config['wecenter_cookie_key']='';
-
- #充值返利百分比
- $System_Config['code_payback']='20';
-
- #注册时的流量重置日以及需要重置的流量,0不重置
- $System_Config['reg_auto_reset_day']='0';
- $System_Config['reg_auto_reset_bandwidth']='100';
-
- #Cloudxns
- $System_Config['cloudxns_apikey']='';#自己去 cloudxns.net 申请
- $System_Config['cloudxns_apisecret']='';
- $System_Config['cloudxns_domain']='zhaoj.in';#你的域名
-
-
-
- #自动备份设置
- $System_Config['enable_auto_backup']='false';
- $System_Config['auto_backup_email']='your email';
- $System_Config['auto_backup_webroot']='your base dir ,such as /home/wwwroot/ss.panel/';
- $System_Config['auto_backup_passwd']='zip password';
-
-
- #跳转延时,ms
- $System_Config['jump_delay']='1800';
-
-
-
- #是否启用邀请码注册
- $System_Config['enable_invite_code']='true';
-
- #是否启用邮箱验证码
- $System_Config['enable_email_verify']='true';
-
- #邮箱验证码有效期
- $System_Config['email_verify_ttl']='3600';
-
- #单IP可请求验证码次数(上面那个周期内)
- $System_Config['email_verify_iplimit']='10';
-
-
- #注册时默认加密方式
- $System_Config['reg_method']='rc4-md5';
-
- #注册时默认协议
- $System_Config['reg_protocol']='origin';
-
- #注册时默认协议参数
- $System_Config['reg_protocol_param']='';
-
- #注册时默认混淆方式
- $System_Config['reg_obfs']='plain';
-
- #注册时默认混淆参数
- $System_Config['reg_obfs_param']='';
-
- #注册时默认禁止访问IP列表,半角英文逗号分割
- $System_Config['reg_forbidden_ip']='127.0.0.0/8,::1/128';
-
- #注册时默认禁止访问端口列表,半角英文逗号分割,支持端口段
- $System_Config['reg_forbidden_port']='';
-
- #是否将登陆线程和IP绑定
- $System_Config['enable_login_bind_ip']='true';
-
-
-
- #等级到期时是否重置流量
- $System_Config['enable_class_expire_reset']='true';
-
- #等级到期时重置为的流量值,GB
- $System_Config['enable_class_expire_reset_traffic']='0';
-
- #账户到期时是否重置流量
- $System_Config['enable_account_expire_reset']='true';
-
- #账户到期时重置为的流量值,GB
- $System_Config['enable_account_expire_reset_traffic']='0';
-
- #购买时是否重置流量
- $System_Config['enable_bought_reset']='true';
-
- #账户到期之后是否会删除账户
- $System_Config['enable_account_expire_delete']='true';
-
- #账户到期几天之后会删除账户
- $System_Config['enable_account_expire_delete_days']='0';
-
- #验证码相关设置,自己去 Geetest.com 申请
- $System_Config['geetest_id']='';
- $System_Config['geetest_key']='';
-
- #启用注册验证码
- $System_Config['enable_geetest_reg']='false';
-
- #启用登录验证码
- $System_Config['enable_geetest_login']='false';
-
- #启用签到验证码
- $System_Config['enable_geetest_checkin']='false';
-
- #自动清理多少天没签到的0级用户
- $System_Config['enable_auto_clean_uncheck']='false';
- $System_Config['enable_auto_clean_uncheck_days']='7';
-
-
- #自动清理多少天没使用的0级用户
- $System_Config['enable_auto_clean_unused']='false';
- $System_Config['enable_auto_clean_unused_days']='30';
-
-
- #是否夹带统计代码,自己在 resources/views/{主题名} 下创建一个 analytics.tpl ,如果有必要就用 literal 界定符
- $System_Config['enable_analytics_code']='false';
-
- #是否启用捐赠相关功能
- $System_Config['enable_donate']='true';
-
- #telegram bot,是否启用
- $System_Config['enable_telegram']='false';
-
- #telegram bot,bot 的 token ,跟 father bot 申请
- $System_Config['telegram_token']='';
-
- #telegram bot,群组会话 ID,把机器人拉进群里之后跟他 /ping 一下即可得到。
- $System_Config['telegram_chatid']='';
-
- #多用户混淆参数后缀
- $System_Config['mu_suffix']='baidu.com';
-
- #多用户混淆参数表达式,%5m代表取用户特征 md5 的前五位,%id 代表用户id,%suffix 代表上面这个后缀。
- $System_Config['mu_regex']='%5m%id.%suffix';
-
-
- #图灵机器人
- $System_Config['enable_tuling']='false';
- $System_Config['tuling_apikey']='';
- $System_Config['tuling_apisecert']='';
-
- #Telegram 机器人账号
- $System_Config['telegram_bot']='_bot';
-
- #Telegram 机器人在群组中不回应
- $System_Config['telegram_group_quiet']='false';
-
- #二维码解码方式,online,phpzbar,zxing_online,zxing_local
- $System_Config['telegram_qrcode']='zxing_local';
-
- #Telegram 机器人请求Key,随意设置,由大小写英文和数字组成,复杂一些,用于校验请求,更新这个参数之后请 php xcat setTelegram
- $System_Config['telegram_request_token']='sjhueAMAndnenw2k2k1mmsJSJWMWiwiwthgfhgfh';
-
- # sendgrid
- $System_Config['sendgrid_key'] = '';
- $System_Config['sendgrid_sender'] = '';
-
-
- #支付系统
-
- #取值 paymentwall,zfbjk,spay,none
- $System_Config['payment_system']='none';
-
- #PaymentWall
- $System_Config['pmw_publickey']='';
- $System_Config['pmw_privatekey']='';
- $System_Config['pmw_widget']='m2_1';
- $System_Config['pmw_height']='350px';
-
- #alipay,spay
- $System_Config['alipay_id']='';
- $System_Config['alipay_key']='';
-
- #alipay,zfbjk.com
- $System_Config['zfbjk_pid']='';
- $System_Config['zfbjk_key']='';
- $System_Config['zfbjk_qrcodeurl']='https://www.zhaojin97.cn/wp-content/uploads/2016/01/630c50ab52bc139b2a33af8cc64e47ad2016010111570425541.jpg';
-
- #不安全中转模式,这个开启之后使用除了 auth_aes128_md5 或者 auth_aes128_sha1 以外的协议地用户也可以设置和使用中转,但是,强烈推荐不开启。
- $System_Config['relay_insecure_mode']='false';
数据库初始化展开目录
新建一个数据库,前面在设置里已经写好了名字,同样新建一个用户,赋给该数据库权限,不要用 root。
- mysql -udbusername -p
- use sspanel;
- source /data/www/abc.dcc.com/sql/glzjin_all.sql;
添加管理员与计划任务展开目录
添加管理员展开目录
- php -n xcat createAdmin
记得最后按一下 y。。。
计划任务展开目录
有一些定时清除用户之类的任务需要定时执行,所以添加计划任务。
- 30 22 * * * php /home/wwwroot/ss.panel/xcat sendDiaryMail
- 0 0 * * * php -n /home/wwwroot/ss.panel/xcat dailyjob
- */1 * * * * php /home/wwwroot/ss.panel/xcat checkjob
-
- # 财务报表
- 5 0 * * * php -n /网站目录/xcat sendFinanceMail_day
- 6 0 * * 0 php -n /网站目录/xcat sendFinanceMail_week
- 7 0 1 * * php -n /网站目录/xcat sendFinanceMail_month
-
- # 被墙检测
- */1 * * * * php -n /网站目录/xcat detectGFW
第一个是发送使用流量邮件,不发可以不填,后两个是需要定时执行的。别的安装指导里还写了几个 sync 什么的,我看了看代码,那些都是用来和 radius VPN 同步用户数据的,不用 VPN 就可以不填。
处理权限展开目录
- cd /var/www
- sudo chown -R www:www abc.dcc.com
- sudo chmod -R 755 abc.dcc.com
给的权限小一点,可能会有 bug,日后再看吧。
后端安装展开目录
作者推荐他自己改过的 SSR 后端。
- git clone -b manyuser https://github.com/esdeathlove/shadowsocks
- pip install cymysql
- cd shadowsocks
- cp apiconfig.py userapiconfig.py
- cp config.json user-config.json
编辑 userapiconfig.py
。
- # Config
- #节点ID
- NODE_ID = 1
- #自动化测速,为0不测试,此处以小时为单位,要和 ss-panel 设置的小时数一致
- SPEEDTEST = 6
- #云安全,自动上报与下载封禁IP,1为开启,0为关闭
- CLOUDSAFE = 1
- #自动封禁SS密码和加密方式错误的 IP,1为开启,0为关闭
- ANTISSATTACK = 0
- #是否接受上级下发的命令,如果你要用这个命令,请参考我之前写的东西,公钥放在目录下的 ssshell.asc
- AUTOEXEC = 1
-
- 多端口单用户设置,看重大更新说明。
- MU_SUFFIX = 'zhaoj.in'
- 多端口单用户设置,看重大更新说明。
- MU_REGEX = '%5m%id.%suffix'
-
- #不明觉厉
- SERVER_PUB_ADDR = '127.0.0.1' # mujson_mgr need this to generate ssr link
- #访问面板方式
- `API_INTERFACE = 'glzjinmod' #glzjinmod (数据库方式连接),modwebapi (http api)
- #mudb,不要管
- MUDB_FILE = 'mudb.json'
- # HTTP API 的相关信息,看重大更新说明。
- WEBAPI_URL = 'https://zhaoj.in'
- WEBAPI_TOKEN = 'glzjin'
-
- # Mysql 数据库连接信息
- MYSQL_HOST = '127.0.0.1'
- MYSQL_PORT = 3306
- MYSQL_USER = 'ss'
- MYSQL_PASS = 'ss'
- MYSQL_DB = 'shadowsocks'
- # 是否启用SSL连接,0为关,1为开
- MYSQL_SSL_ENABLE = 0
- # 客户端证书目录,请看 https://github.com/glzjin/shadowsocks/wiki/Mysql-SSL%E9%85%8D%E7%BD%AE
- MYSQL_SSL_CERT = '/root/shadowsocks/client-cert.pem'
- MYSQL_SSL_KEY = '/root/shadowsocks/client-key.pem'
- MYSQL_SSL_CA = '/root/shadowsocks/ca.pem'
-
- # API,不用管
- API_HOST = '127.0.0.1'
- API_PORT = 80
- API_PATH = '/mu/v2/'
- API_TOKEN = 'abcdef'
- API_UPDATE_TIME = 60
-
- # Manager 不用管
- MANAGE_PASS = 'ss233333333'
- #if you want manage in other server you should set this value to global ip
- MANAGE_BIND_IP = '127.0.0.1'
- #make sure this port is idle
- MANAGE_PORT = 23333
- #安全设置,限制在线 IP 数所需,下面这个参数随机设置,并且所有节点需要保持一致。
- IP_MD5_SALT = 'randomforsafety'
运行的方式和 SSR 一样。
- python server.py # 用于调试
- sudo ./logrun.sh # 带日志后台运行
- sudo ./run.sh # 不带日志后台运行
配置 Supervisor。
- apt install supervisor
-
- cat > /etc/supervisor/conf.d/ssr.conf << EOF
- [program:ssr]
- directory=/root/shadowsocks/
- command=python server.py
- stdout_logfile=/root/shadowsocks/ssserver.log
- stderr_logfile=/root/shadowsocks/ssserver.log
- autostart=true
- autorestart=true
- EOF
-
- supervisorctl start ssr
服务器的性能优化可以参考我之前写过的 文章,简单的可运行下面的命令。
- cat >> /etc/security/limits.conf << EOF
- * soft nofile 51200
- * hard nofile 51200
- EOF
- ulimit -n 51200
- cat >> /etc/sysctl.conf << EOF
- net.core.default_qdisc=fq
- net.ipv4.tcp_congestion_control=bbr
-
- fs.file-max = 51200
- net.core.rmem_max = 67108864
- net.core.wmem_max = 67108864
- net.core.netdev_max_backlog = 250000
- net.core.somaxconn = 4096
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
- net.ipv4.tcp_keepalive_time = 1200
- net.ipv4.ip_local_port_range = 10000 65000
- net.ipv4.tcp_max_syn_backlog = 8192
- net.ipv4.tcp_max_tw_buckets = 5000
- net.ipv4.tcp_fastopen = 3
- net.ipv4.tcp_rmem = 4096 87380 67108864
- net.ipv4.tcp_wmem = 4096 65536 67108864
- net.ipv4.tcp_mtu_probing = 1
- EOF
- sysctl -p
Docker 版后端安装展开目录
- docker version > /dev/null || curl -fsSL get.docker.com | bash
- service docker restart
-
- docker run -d --name=ssrmu -e NODE_ID=node_id -e API_INTERFACE=modwebapi -e WEBAPI_URL=panel_address -e WEBAPI_TOKEN=webapi_token -e MU_SUFFIX=your_mu_suffix --network=host --log-opt max-size=50m --log-opt max-file=3 --restart=always fanvinga/docker-ssrmu
增加国内中转节点展开目录
校内的网实在是太烂,UDP 连阿里云的梯子都连不上,没办法给 CSGO 加速,只好在国内的另一台 VPS 上也搭一个后端,配好节点,这里在后端的数据库那里,HOST 写前端的服务器地址,前端的数据库那里也要相应新建一个用户并赋权限。
跑起来以后,在前端增加一个节点,类型选择 Shadowsocks 中转,之后就可以在中转规则那里自行设置了。
搞定后用 Sockscap64 代理游戏进行加速。
大佬那个发送使用流量邮件的任务怎么关闭啊
定时任务里把那个 dailymail 的去掉就行了
大佬 验证码 geetest 这个开启会出现 500 错误,请问有什么具体解决方案么?
没遇到过。。
老哥,这个中转应该怎么设置???
比如我中转起点是杭州,目的地是洛杉矶,端口是 2333,在客户端 ip 和密码之类的咋填写?
希望能回复一下,谢谢
我想复杂了,因为中转节点和目的节点配置完全一样刚才有点迷,,,看到效果了。。。谢谢
方便联系下么?
中转究竟是怎么配置的?
兄弟,能把最后中转那一段具体一点吗??谢谢
测试中转并不能转发 UDP,只支持 TCP
配置就是选一个节点,把类型从 Shadowsocks 改成 Shadowsocks 中转,然后在用户界面有个中转规则,新建一个就好了,从中转节点到目的节点
大佬,我刚装 sspanel 前端的时候没添加 ssl 证书,后来用宝塔面板里边的证书添加到服务器之后选择的强制 https ,节点全挂了,对接新的节点用 https 开头对接不上,只剩和前端在同一服务器下的节点可用,后来对接节点不能使用 https 对接,把 ssl 关掉用 http 开头才可以,这是什么情况,可否指条明路,着急,老铁帮帮忙~
最简单的办法就是直接重新对节点啊,按理说应该只需要修改节点配置文件就 OK
都看不懂~刚接触~
那个节点加速的倍速现在显示是 1 倍速,怎么提升倍速?谢谢
后台节点设置里可以改