我之前写过一个在online上使用pve开ipv6 nat小鸡的教程,但单独使用pve没法实现销售,还是得使用SolusVM来创建销售系统。
开NAT小鸡基本步骤都是设置好硬盘,搭建面板,然后设置hosts进行伪授权,还有最重要的iptables的转发,最后就是node的设置。因为跟普通的多ip母鸡设置不一样,所以得设置内网的转发(有ipv6网段还可以给小鸡分配单独ipv6)。
目标
(单ip服务器限制真大)
online独服作为受控端,使用SolusVM开设Nat+ipv6 KVM虚拟化小鸡并且可以售卖。
virmach黑五的机子作为控制端,控制online。
我之所以选择KVM虚拟化,是因为SolusVM在centos7上没法实现openvz虚拟化,虽然可以在centos6实现openvz虚拟化,但centos6已经停止安全更新,如果非得用centos7,要手动把centos7 转化为 Virtuozzo 7
,不稳定,官方不建议使用。
关于超售,即使是kvm也可以超售CPU+硬盘+内存。KVM超售内存的话可以使用Balloon技术。
并且我使用KVM虚拟化后,用户也好在小鸡上安装bbr来加速。
准备
需要的东西
1.最少两台KVM架构的小鸡,最好能是杜甫,一台控制端一台受控端。(你问为什么OpenVZ不能用?你为啥不去问问神奇海螺呢?)
2.刚刚DD完或者刚安装的centos7的系统。虽然SolusVM对centos6支持性最好,但目前centos6已经停止维护了,得不到系统安全补丁,如果母鸡的系统被黑了就操蛋了。
3.最基本的Linux知识(你起码得知道登录,改密码,执行脚本吧。)
查看solusvm文档
前往
https://documentation.solusvm.com/
仔细看完文档。
官方文档比网上其他教程都靠谱。
准备环境
准备全新系统
两台机器使用DD或者重装成干净的centos7的系统。
安装锐速/BBR
控制端与受控端还是安装BBR,尽量加点速度吧。
安装SolusVM
控制端
安装控制端
前往virmach(或者是你作为控制端的机器)
1.使用以下命令安装SolusVM
curl -o install.sh https://files.solusvm.com/install.sh && sh install.sh
出现以下界面呢,就是在安装必须要安装的运行环境了。
等过一段时间后,就会出现这个界面了,主要都是啥意思呢,这边给各位解释一下。
1:管理面板只有 UI。没有虚拟机。(适用于主控和受控分开装的情况)
2:安装 KVM 框架虚拟机。(杜甫才能选)
3:安装 XEN 框架虚拟机。(杜甫才能选)
有些版本的教程是有把面板和虚拟机装在一个 vps 里这个选项,但我这里centos7安装的时候没有。
输入1,回车。。。
当出现:
Installation Complete. Full install log: /tmp/install.log
SolusVM UI Login Information:
=============================
Admin Area Standard Port (SSL) .... : https://107.75.1.12uid0/admincp
Admin Area Custom Port (SSL) ...... : https://107.75.1.12uid0:5656/admincp
Client Area Standard Port (SSL) ... : https://107.75.1.12uid0
Client Area Custom Port (SSL) ..... : https://107.75.1.12uid0:5656
Admin Username ...... : vpsadmin
Admin Password ...... : vpsadmin
It is advised that you change the default admin password on your first login
To generate a free signed SSL certificate for your domain using the Lets Encrypt service,
run the following: /usr/local/svmstack/letsencrypt/letsencrypt -i
The domain name must already resolve to the servers ip address
Thankyou for choosing SolusVM
即代表安装完成。
授权控制端
为了让我们正常的可以进行下一步的操作,solusvm默认的话是不授权就没办法进行任何操作。
我这里是备份给我自己看的,我就不共享出来了。
优化
1.关闭selinux
使用
/usr/sbin/sestatus -v
查询自己的系统是否开启了selinux,如果显示
SELinux status: enabled
即表示selinux开启了
执行
nano /etc/sysconfig/selinux
改为
SELINUX=disabled
可能你会发现本来就是SELINUX=disabled
,那你只需要重启系统即可
2.为自己的域名生成证书
建议使用acme.sh
安装https证书
查看自己是否是nginx的可以去
/usr/local/svmstack/
下看看有没有Nginx目录即可。1)安装acme.sh
使用普通的方法获取
acme.sh
wget -O - https://get.acme.sh | sh
2)颁发证书
使用普通的方法获取证书。acme.sh
将尝试通过http连接来验证您的域。这意味着根目录是/usr/local/solusvm/www/.verification。请检查是否有此文件夹,否则可以使用/usr/local/solusvm/www作为您的根目录
acme.sh --issue -d solusvm.yourdomain.com \
-w /usr/local/solusvm/www/.verification
如果提示-bash: acme.sh: command not found
,那就使用绝对路径
./.acme.sh/acme.sh --issue -d solusvm.yourdomain.com \
-w /usr/local/solusvm/www/.verification
用您的SolusVM主域名替换solusvm.yourdomain.com(这个是你的域名)。请记住,您可以使用-d选项将多个域(SAN)添加到您的证书中。可以查看acme.sh Wiki查看其他的操作方法。
3)将证书安装到SolusVM master
acme.sh --installcert -d solusvm.yourdomain.com \
--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"
此命令会将完整链和私钥安装到/usr/local/svmstack/nginx/ssl/内,它将重新启动Web服务器,重新启动ssh websocket(用于HTML5控制台),然后生成novnc websockify所需的ssl.pem文件。
acme.sh会自动更新证书,不用你管他。
3.修改默认密码
前往以下路径前往修改密码
Configuration > Administrators > Edit Admin
受控端
我使用online独服作为受控端
安装BBR
正常安装bbr即可
调整硬盘
KVM虚拟化对分区需求
/ 80GB+ (KVM templates & iso's will be stored in /home/solusvm/kvm)
SWAP 4GB+ (Virtual servers may use host swap if there is a real memory shortage)
[8.14.4. Manual Partitioning][4]
Logical Volume Group (LVM) remaining space (Logical Volume Group Only, SolusVM will create the logical volumes for the virtual servers inside this group)
根据需求调整online(独服的硬盘)
为了超售请把swap空间调大些
我的online服务器可以在装系统的时候设置分区,我这里设置了1G的boot,9G的swap,80G的根目录,剩下的空着留给LVM。
安装系统后,连接服务器,执行
fdisk -l
查看分区情况
[root@FR ~]# fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x00062154
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 169871359 83886080 83 Linux
/dev/sda3 169871360 188745727 9437184 82 Linux swap / Solaris
可以看到我的服务器硬盘(仅一块)被挂载为“sda”,于是执行指令开始创建LVM
fdisk /dev/sda
具体步骤如下
ommand (m for help): n ## 新建
Command action e extended p primary partition (1-4) p ## 主分区
Partition number (1-4): 4 ## 分区号 (由于我的主分区已经由三个了,系统默认直接创建分区四,这一条将不会显示,这里我手动补全)
First sector (478562304-1953525167, default 478562304): ##回车默认
Using default value 478562304
Last sector, +sectors or +size{K,M,G} (478562304-1953525167, default 1953525167):
Using default value 1953525167 ##回车默认
Partition 4 of type Linux and of size 703.3 GiB is set
Command (m for help): t ## 改变类型
Selected partition 4
Hex code (type L to list codes): 8e ## LVM 的分区代码
Changed system type of partition 4 to 8e (Linux LVM)
Command (m for help): w ## 保存并退出
保存退出后重启服务器
重启后再次查看分区情况,发现已经生效。
[root@FR ~]# fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x00062154
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 169871359 83886080 83 Linux
/dev/sda3 169871360 188745727 9437184 82 Linux swap / Solaris
/dev/sda4 188745728 1953525167 882389720 8e Linux LVM
参考官方文档的过程:
创建物理卷、卷组并加入组。
pvcreate /dev/sda4
vgcreate -s 32M solusvm /dev/sda4
执行成功下所示,创建了solusvm
卷组。
[root@FR ~]# pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
[root@FR ~]# vgcreate -s 32M solusvm /dev/sda4
Volume group "solusvm" successfully created
[root@FR ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 80G 0 part /
├─sda3 8:3 0 9G 0 part [SWAP]
└─sda4 8:4 0 841.5G 0 part
[root@FR ~]# vgs
VG #PV #LV #SN Attr VSize VFree
solusvm 1 0 0 wz--n- 841.50g 841.50g
如果提示:
Can't initialize physical volume "/dev/sda4" of volume group "solusvm" without -ff
/dev/sda4: physical volume not initialized.
可以直接用vgs
看看是不是以及创建好solusvm
卷组
配置网桥
建议参考官方文档
同时配置ipv4与ipv6太复杂了,我先实现ipv4 nat小鸡,再为小鸡配置ipv6吧。
ipv4-only
1.通过SSH连接到从KVM节点
2.禁用网络管理器,因为它可能会干扰网桥。
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
systemctl enable network.service
systemctl start network.service
Centos7中,默认的网络管理是NetworkManager,NetworkManager在桌面系统中比较好用,会让配置实时生效,对于服务器,真的没什么用,双网卡绑定必须停止和禁用NetworkManager服务,还是network比较方便,停用NetworkManage
提示
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
不是出错,属于正常情况。
3.检查网络配置文件(例如/etc/sysconfig/network-scripts/ifcfg-eth0
)验证是否是真的被禁用了,如果没有这个参数就不用管,别手动添加。
NM_CONTROLLED=no
4.配置网桥前,应该检查/etc/sysconfig/network-scripts/ifcfg-eth0
是否类似如下所示。
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
NM_CONTROLLED=no
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="8d6f722c-b945-4083-b50e-9661bf62ae5f"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="203.0.113.2"
GATEWAY="203.0.113.1"
NETMASK="255.255.0.0"
DNS1="8.8.8.8"
IPV6_PRIVACY="no"
NM_CONTROLLED=no
5.安装网桥依赖
yum install bridge-utils
6.备份现有的配置文件以供恢复
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0.orig
network-scripts/
内,否则可能会被作为配置启用
7.开ipv4转发
echo 1 > /proc/sys/net/ipv4/ip_forward
8.新建一个桥接网卡,命名为br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
执行ip addr
,保存显示的东西,下文要用
1)如果你有ipv4段,那就按照官方文档输入
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPADDR=203.0.113.2
NETMASK=255.255.0.0
GATEWAY=203.0.113.1
2)如果你是单ipv4,想开nat小鸡,那就输入
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=服务器主IP
NETMASK=255.255.255.248(如果是/29,最后3位是248,根据IP数修改,单ip就填255.255.255.255)
ONBOOT=yes
GATEWAY=网关
9.编辑默认网卡配置
nano /etc/sysconfig/network-scripts/ifcfg-eth0
1).如果你是ip段,输入
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
BRIDGE=br0
2).如果你是单ipv4机
则在末尾添加:
DEVICE=eth0 #设备名称
ONBOOT=yes
BRIDGE=br0
BRIDGE=br0
就行了
10.添加其他网卡信息(如果有的话)
vi /etc/sysconfig/network-scripts/ifcfg-br0:0
DEVICE=br0:0
BOOTPROTO=static
IPADDR=服务器IP2
NETMASK=255.255.255.248
IPADDR2=服务器IP3
NETMASK2=255.255.255.248
IPADDR3=服务器IP4
NETMASK3=255.255.255.248
IPADDR4=服务器IP5
NETMASK4=255.255.255.248
ONBOOT=yes
11.重启网络
service network restart
12.检查物理接口eth0是否已链接到桥接接口br0
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001c42717243 no eth0
ipv4nat+ipv6
安装受控端
前往独服(或者你其他作为受控端)
1.使用以下命令安装SolusVM
curl -o install.sh https://files.solusvm.com/install.sh && sh install.sh
出现以下界面呢,就是在安装必须要安装的运行环境了。
等过一段时间后,就会出现这个界面了,主要都是啥意思呢,这边给各位解释一下。
1:管理面板只有 UI。没有虚拟机。(适用于主控和受控分开装的情况)
2:安装 KVM 框架虚拟机。(杜甫才能选)
3:安装 XEN 框架虚拟机。(杜甫才能选)
有些版本的教程是有把面板和虚拟机装在一个 vps 里这个选项,但我这里centos7安装的时候没有。
输入2,回车。。。
当出现
Installation Complete. Full install log: /tmp/install.log
Add this hypervisor to your SolusVM master using the following details:
ID Key .......... :
ID Password ..... :
IMPORTANT!! You are required to setup a network bridge before you can use KVM on this server
Please see the following link: https://documentation.solusvm.com/display/DOCS/KVM+Bridge+Setup
即表示安装完成。
授权受控端
和授权控制端的方法一样
关闭selinux
按照上面的方法关闭selinux即可
添加ntfs支持
centos7默认移除了ntfs支持导致无法安装windows小鸡,我这个母鸡性能太弱还是不安装Windows吧,所以我就不支持ntfs算了,刚好避免用户dd使用windows。如果你的母鸡需要开Windows小鸡,就用这个方法。
配置
控制端连接受控端
进入控制端的管理员面板,在Nodes > Add node
处使用安装完受控端提示的KEY:PASSWORD
连接受控端。
官方文档的图片如下
注意:
1.不要填错虚拟化类型
2.KEY:PASSWORD
别填错了
3.this is volume group name from partitioning part of the documentation
意思是填分区时设置的卷组的名称,例如我创建的solusvm
卷组
其他几项的解释:
Friendly Name :随便取个名字如:online
Type:类型,这里必须选 KVM。
License Type:执照类型,默认即可
Host Operating System:我这里是centos7.
IP Address:就是填你 VPS 的 ip 地址。不要填 8.8.8.8。
Internal IP Address:为了方便后面的 nat 设置,这里填写:10.0.1.1
Hostname:随便填,如:cve.pub
Network Interface:eth0(根据自己主网卡进行选择)
arch:选 64 位的。
county:(随意)
city:(随意)
Max VPS:就是你想开多少台小鸡。我这里开 16 台。
Max Memory:你的最大内存,可设置超过实际内存。超开。我设置的8192
Max Disk:你的最大硬盘,可设置超过实际硬盘。超开。我设置的51200
可以参考上图所示,官方文档的填法。
获取模板
前往
https://tdn.solusvm.com/
查找自己喜欢的模板
前往控制节点的服务器,我这里是virmach服务器,前往目录
/home/solusvm/kvm/template/
选择合适的KVM模板,下载到目录内。
我这里选择CentOS 7 64bit Minimal
wget http://templates.solusvm.com/kvm/linux-centos-7-x86_64-minimal-latest.gz -O /home/solusvm/kvm/template/linux-centos-7-x86_64-minimal-latest.gz
下载完成后,使用这个方法在控制端注册模板
同步模板
需要使用这个方法将模板同步到所有节点
单IP-Nat网络地址转换
添加IP地址段信息
在 IP Blocks > Add IPv4 Block
依次填入以下内容:
Block Name:区域名称
Gateway:默认网关 - 路由转发的出口地址
NetMask:子网掩码 - 对路由进行子网划分
Nameserver:主要DNS域名解析服务器
Nameserver:次要DNS域名解析服务器
DNS Server Group:DNS服务器分组(不重要)
Avaliable Nodes:选择分配的节点
记得选择自己的节点
设置子网节点地址
在 IP Blocks > Manage IP's
设置ip
Add IP range:添加IP范围
Start IP:起始IP
End IP:结束IP
注意:起始IP到结束IP的范围内不能包含默认网关
设置IP地址转发
用这个脚本端口转发
#! /bin/bash
echo -e "Please input your server main ip"
stty erase '^H' && read -p "(such as 8.8.8.8):" main_ip
[[ -z "${main_ip}" ]] && echo -e "cancel..." && exit 1
echo -e "Please input how many /24 you want to use, max is 5"
stty erase '^H' && read -p "(such as 1):" user_ip_num
[[ -z "${user_ip_num}" ]] && echo -e "cancel..." && exit 1
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to ${main_ip} #修改eth0为你的主网卡名称
user_ip_head="10.0." #修改此处为你的默认网关前2个点分十进制位
for (( c = 1; c <= ${user_ip_num}; c++ ));do
for (( d = 1; d <= 255; d++ ));do
user_ip=${user_ip_head}${c}"."${d}
if (("$d" < 10)); then
ssh_port="6"${c}"00"${d}
user_port_first=${c}"00"${d}"0"
user_port_last=${c}"00"${d}"9"
elif (("$d" < 100)); then
ssh_port="6"${c}"0"${d}
user_port_first=${c}"0"${d}"0"
user_port_last=${c}"0"${d}"9"
else
ssh_port="6"${c}${d}
user_port_first=${c}${d}"0"
user_port_last=${c}${d}"9"
fi
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport ${ssh_port} -j DNAT --to-destination ${user_ip}:22 #修改eth0为你的主网卡名称
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport ${user_port_first}:${user_port_last} -j DNAT --to-destination ${user_ip}
iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport ${user_port_first}:${user_port_last} -j DNAT --to-destination ${user_ip}
done
done
service iptables save
service iptables restart
echo -e "It seems done"
检查NAT是否配置成功
iptables -t nat -L
创建第一个VPS
添加用户
按照官方文档创建VPS
参考:
SolusVM Documentation
SolusVM开设Nat小鸡教程
SolusVM历险记-安装KVM被控
SolusVM主被控开心版完美安装配置傻瓜式教程
REHL6.1 安装 Solusvm 商业控制平台
Deploy ssl to SolusVM
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/93.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。
2 条评论
配置好后开的小鸡,小鸡无法访问外网。
大概是网卡那出问题,我那个地方配的很纠结