介绍
SolusVM 是目前国内外卖VPS的最常见的面板之一,另外还有 Virtualizor 以及 Xen System,以及比较少见的 Promox 和 ESXi 以及非常稀有土豪专用的 OnApp。当然还有些号称云主机的用OpenStack 或者 OpenNebula,这些就不提了。不过我相信大部分人应该都接触过 SolusVM,作为 OnApp 旗下的比较低端的虚拟化产品,以及和 WHMCS 等财务系统比较好的集成,所以非常多的VPS商家都喜欢用这个。 所以这个系列来稍微介绍下这些 IDC 比较常用的东西,之前的 Proxmox 也是这个系列的其实,之后会有啥就看心情了。 由于 Solusvm 的某些BUG(其实是一堆),在 CentOS7 上安装 Solusvm 会导致出现无法限速,无法重启后自动启动 VM 的情况,所以一般情况下建议使用 CentOS6 安装。 但是 Solusvm 对于系统的分区是有要求的,所以我们从安装 CentOS6 开始介绍,当然是跳着介绍的,只说需要特别注意的地方,最好的情况是你的独服商家提供了 Solusvm 的镜像,这样你就不用折腾的,但是有些只提供了 OpenVZ Slave(Master) 的镜像,所以这种情况下如果你要安装 KVM 或者 Xen 的 Solusvm Slave 就需要自己动手了。
准备
保证你的系统是 Centos7.X 系列,如果不是建议重装
下文介绍的方法是在没有对应系统模板情况下自助重装的方式,注意要求是 KVM 架构
安装所需软件
#Debian/Ubuntu: apt-get update && apt-get install -y xz-utils openssl gawk coreutils file #RedHat/CentOS: yum update && yum install -y xz openssl gawk coreutils file
安装
wget https://db.ci/files/solusvm.sh sh solusvm.sh
选择版本
1 → 主控端,无虚拟化 2 → 主控端,OpenVZ 虚拟化 + 模板 3 → 主控端,OpenVZ 虚拟化 4 → 被控端,KVM 5 → 被控端,Xen 6 → 被控端,无虚拟化
安装完成后,会出现如下信息,主要包括 SolusVM 管理面板和用户面板信息,后续需要做的准备工作主要就是 客户端汉化、SSL 证书、相应重启检查了。
具体参考官方文档
在破解授权之前,最后先进行下面的设置
iptables只允许指定的IP段访问
破解SolusVM主控
vi /etc/hosts
添加如下伪授权,套餐是 SolusVM Enterprise (NOC):最好自建授权(部署一个SolusVM的伪授权)
150.95.9.225 soluslabs.com 150.95.9.225 www.soluslabs.com 150.95.9.225 licensing1.soluslabs.net 150.95.9.225 licensing2.soluslabs.net 150.95.9.225 licensing3.soluslabs.net 150.95.9.225 licensing4.soluslabs.net 150.95.9.225 licensing5.soluslabs.net 150.95.9.225 licensing6.soluslabs.net
或者,套餐是 SolusVM Enterprise (RS)
150.95.9.221 soluslabs.com 150.95.9.221 www.soluslabs.com 150.95.9.221 licensing1.soluslabs.net 150.95.9.221 licensing2.soluslabs.net 150.95.9.221 licensing3.soluslabs.net 150.95.9.221 licensing4.soluslabs.net 150.95.9.221 licensing5.soluslabs.net 150.95.9.221 licensing6.soluslabs.net
防火墙屏蔽验证地址
iptables -I INPUT -s 94.0.0.0/8 -j DROP
保存iptables配置
service iptables save
重启iptables
service iptables restart
破解SolusVM被控
添加伪授权hosts
vi /etc/hosts
添加如下伪授权:
150.95.9.225 soluslabs.com 150.95.9.225 www.soluslabs.com 150.95.9.225 licensing1.soluslabs.net 150.95.9.225 licensing2.soluslabs.net 150.95.9.225 licensing3.soluslabs.net 150.95.9.225 licensing4.soluslabs.net 150.95.9.225 licensing5.soluslabs.net 150.95.9.225 licensing6.soluslabs.net
或者
150.95.9.221 soluslabs.com 150.95.9.221 www.soluslabs.com 150.95.9.221 licensing1.soluslabs.net 150.95.9.221 licensing2.soluslabs.net 150.95.9.221 licensing3.soluslabs.net 150.95.9.221 licensing4.soluslabs.net 150.95.9.221 licensing5.soluslabs.net 150.95.9.221 licensing6.soluslabs.net
关闭selinux
vi /etc/sysconfig/selinux
把 SELINUX 设为 disabled
如下:
SELINUX=disabled
客户端汉化
cd /usr/local/solusvm/language/client/ wget "https://docs.solusvm.com/download/attachments/7667936/Simplified-Chinese.lang.txt?api=v2" -O Chinese.lang.txt chown solusvm:solusvm Chinese.lang.txt
SSL 证书配置
手工替换
路径是 /usr/local/svmstack/nginx/ssl,自行替换其中的 ssl.crt 和 ssl.key 即可。
自动更新
获取证书
yum install curl && curl https://get.acme.sh | sh && source ~/.bashrc acme.sh --issue -d db.ci -w /usr/local/solusvm/www/.verification
安装证书
acme.sh --installcert -d db.ci \ --keypath /usr/local/svmstack/nginx/ssl/ssl.key \ --fullchainpath /usr/local/svmstack/nginx/ssl/ssl.crt \ --reloadcmd "service svmstack-nginx restart; \ /usr/local/svmstack/sshwebsocket/quit; \ /usr/local/svmstack/sshwebsocket/port_check; \ cd /usr/local/svmstack/nginx/ssl && cat ssl.key ssl.crt > ssl.pem"
将db.ci替换为自己的域名.
确认内核
reboot uname -r
当查询到的内核变为 2.6.32-042stab128.2,就代表完成了。
配置
激活
管理登陆地址:https://db.ci:5656/admincp
用户名:vpsadmin
密码:vpsadmin
在激活地址:https://db.ci:5656/admincp/license.php 输入你在官网申请或购买的证书激活.
将ensu.cc替换为自己的域名.
设置 Node
设置本地 Node, 地址:https://db.ci:5656/admincp/nodes.php
想超售这里就写的比实际大就行了。
设置 IP 段(IP Block)
设置地址:https://db.ci:5656/admincp/ipblocks.php
如果你是公网 IP 段,正常设置即可,不赘述。
如果你是想做 NAT VPS,详见下文 NAT VPS 相关配置
设置 VPS Plan
本教程仅涉及 OpenVZ 的开通
设置地址:https://db.ci:5656/admincp/addvzplan.php
仅解释其中两个参数:
Guaranteed Ram:实际内存
Burstable to Ram:等于 内存 + SWAP
例(64M 内存的小计划):
NAT VPS 相关配置
取消 ip_conntrack 的禁用
修改文件 yum install nano && nano /etc/modprobe.d/openvz.conf 将 =1 改为 =0 ,保存退出。
重启系统 reboot
检查 iptables -t nat -L 假如没有说异常(缺失、丢失等)说明 ip_conntrack 取消禁用成功
//错误提示 iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. //正常结果 Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
设置 IP 段(IP Block)
因为要配合后续的端口转发脚本,建议设置为 10.0.1.1,具体见图。
分配 IP
内网端口转发
一般需要人工写 iptables,但是太麻烦了,下面是一个脚本,方便自动批量生成。
脚本下载地址:https://db.ci/files/addnat.sh
使用方法:bash addnat.sh
规则解释:
默认是分配 10.0.1.0/24 的 IP 转发规则,如果有多个,就额外分配 10.0.2.0/24、10.0.3.0/24 等,这里按照10.0.1.0/24解释。
基础规则是 10.0.C.D 的内网IP(此例子C为1,D最多是3位数) SSH端口是 61D(D不足3为前面补0) 可用端口是 1D1 - 1D9(D不足3为前面补0) 具体案例: 10.0.1.56 SSH端口是 61056 可用端口是 10561 - 10569
检查是否配置好:
iptables -t nat -L