Virtualizor开LXC NAT VPS并对接WHMCS

前段时间搭建了WHMCS,这次来搭建它的对端,实现自动开通NAT小鸡进行售卖。

一:准备服务器环境
我们在本篇文章中使用CentOS7作为演示系统,当然,Almalinux8同样可以。在执行操作前,作者建议您备份所有数据。
首先,运行yum update -y来更新系统软件包版本,以避免一些奇葩错误。
之后,我们将会创建一个raw格式的虚拟磁盘,并挂载到您的系统上,命令如下:(下面的seek=后跟的是您想要创建的磁盘大小,这里大约是20G,这个命令会创建一个松散文件,不会占用您的磁盘空间,它会随着写入数据而增大。)(想超售?那就拉大虚拟磁盘)

dd if=/dev/zero of=/lxcdisk.img bs=1M seek=20000 count=0losetup /dev/loop0 /lxcdisk.img

完成后,运行lsblk应该会看到如下图所示loop设备:

BQACAgUAAx0Ea55INgACAcxmFWXODvGOGavNdpK8YhrP0B3j8AACmQ8AAmSdsVTUMqHgh-N-jDQE

然后,分区,fdisk /dev/loop0,执行如图操作,空的地方直接回车使用默认值就好。

BQACAgUAAx0Ea55INgACActmFWW-Qu8hcvsZVKtdQUJk9Kx1QACmA8AAmSdsVRSk5plnMC3YDQE

之后,运行partprobe刷新磁盘。完成后,运行下面命令创建必要卷组,需要确认请输入y。

yum install lvm2 -y
pvcreate /dev/loop0
vgcreate -s 32M VolGroup01 /dev/loop0

BQACAgUAAx0Ea55INgACAcpmFWWwDTHrrgz1Ers6SuEINufE9gAClw8AAmSdsVQDPuWtK0lGczQE

二:安装Virtualizor
执行如下命令,如果出现错误,请尝试将email后换成您自己的,安装后输入y确认重启。重启后虚拟磁盘挂载会掉,请输入losetup /dev/loop0 /lxcdisk.img重新挂载。

wget –N http://files.virtualizor.com/install.sh
chmod 0755 install.sh
./install.sh [email protected] kernel=lxc

BQACAgUAAx0Ea55INgACAclmFWWk2OZDwfjCEgZO246Jj03UMwAClg8AAmSdsVQNatJorlV_XjQE

然后打开您的IP:4085访问管理页面,使用您的root密码登录(证书错误清忽略)。

BQACAgUAAx0Ea55INgACAchmFWWG1-YxSFgX44Dfm8oto7QmCAAClQ8AAmSdsVRyc9RxCZRc3TQE

Virtualizor使用的端口为4081 – 4085,如果登不上可以考虑防火墙的问题:

firewall-cmd --zone=public --permanent --add-port=4081-4085/tcp

添加存储:打开Virtualizor Admin Panel -> Storage -> Add Storage,按下面介绍填写并提交。

Name:随意
Server:localhost
Storage Type :LVM
Storage Path: 储存路径(LVM卷组路径,如果用我上面的那种的话就填/dev/VolGroup01)
Overcommit:虚拟盘有多大写多大
Alert Threshold: 告警(就是如果硬盘占用超过这个值就会提示你,一般不变就行了)
Primary Storage: 如果你只有这一个硬盘请勾选,否则WHMCS开机器会报错

BQACAgUAAx0Ea55INgACAcdmFWV03KoHa7krVDfsy1oysU__EgAClA8AAmSdsVSsZKL2RRyCejQE

三:构建虚拟网卡
首先,安装libvirt,并启用他:

yum install libvirt -y
systemctl enable libvirtd
systemctl start libvirtd

然后我们会使用如下例子创建NAT环境:

Network: 10.0.0.0
Netmask: 255.0.0.0
Prefix: 8
Gateway: 10.0.0.1
Usable IPs: 10.0.0.2 to 10.0.0.50

vi /etc/libvirt/qemu/networks/HAProxy.xml并写入如下内容:

<network>
<name>HAProxy</name>
<forward mode='nat'/>
<bridge name='HAProxy' stp='on' delay='0' />
<ip address='10.0.0.1' netmask='255.0.0.0'>
</ip>
</network>

或者

<network>
  <name>HAProxy</name>
  <forward mode='nat'/>
  <bridge name='HAProxy' stp='on' delay='0' />
  <ip address='192.168.100.1' netmask='255.255.255.0'>
  </ip>
</network>

然后运行下面命令启用他:

virsh net-define /etc/libvirt/qemu/networks/HAProxy.xml
virsh net-autostart HAProxy
virsh net-start HAProxy

如果在执行最后一条命令遇到如下错误:

BQACAgUAAx0Ea55INgACAcZmFWVn6j5mtrhb8sRuDuCVxRtHdwACkw8AAmSdsVTdFCGzec_DdDQE

请运行ifdown eth1后重新运行virsh net-start HAProxy
打开Admin Panel > IP Pool > Create IP Pool,按照下图填写并提交。

BQACAgUAAx0Ea55INgACAcVmFWVbbV8KQIfnchbm7IVvceIyhQACkg8AAmSdsVRnZNvIOiU53DQE

成功后打开List IP Pool,应该看到如下如所示:

BQACAgUAAx0Ea55INgACAcRmFWVNmlWUkkR99_5JMKnwb6E7CgACkQ8AAmSdsVSONIBhuwexeDQE

四:下载系统镜像
打开Virtualizor Admin Panel -> Media -> OS Templates Browser,Type选LXC,勾上你想要的,提交。

BQACAgUAAx0Ea55INgACAcNmFWU_6W0q6kzxWccyjAmppO3voAACkA8AAmSdsVTnTezYlGko_DQE

BQACAgUAAx0Ea55INgACAcJmFWUwVEQWIK3ygueMhEFYdMyW7QACjw8AAmSdsVSi5CQaLuGk_TQE

等镜像下完,就可以开VPS了。
设置NAT端口转发

BQACAgUAAx0Ea55INgACAcFmFWUkqECt83fipFyKXYO_SUA9UwACjg8AAmSdsVTCNbo1zIkOFDQE

BQACAgUAAx0Ea55INgACAcBmFWUTgoI7m9u8fDsZnteIr0oqRAACjQ8AAmSdsVQyT-8gQyRO5jQE

这样搭建完之后,whmcs用户面板即可自己设置端口转发

BQACAgUAAx0Ea55INgACAb9mFWUBotTAd0E6-MWzgTwb3Di06AACjA8AAmSdsVS64kPAe1t5NDQE

这个时候,还需要执行一条ipt指令,才能让VPS正常联网:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
或者
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j  MASQUERADE

破解Virtualizor,vi /etc/hosts添加

150.95.9.226 www.virtualizor.com
38.242.254.248 api.virtualizor.com

保存退出,然后锁定hosts

#锁定
sudo chattr +i /etc/hosts
#解锁
sudo chattr -i /etc/hosts

然后到面板的Configuration -> License Info page 上点击Refresh License

BQACAgUAAx0Ea55INgACAb5mFWTyVAi6__rJhHjNB430TuiXpgACiw8AAmSdsVQzASY5X5QEwjQE

必要开机启动项,打开/etc/rc.local,加入下面几行:

losetup /dev/loop0 /lxcdisk.img
virsh net-start HAProxy

五:对接WHMCS
创建Plan模板

BQACAgUAAx0Ea55INgACAb1mFWTkhWq05LnO_yjfE-KnhVjPfwACig8AAmSdsVTLYWWqxS_y2jQE

这里要提一下的是CPU Units,这是类似优先值的概念,比如你开了两台小鸡,一台CPU Units设置为1000,另一台设置为2000,那么当CPU跑满的时候 第一台会占有1000 / (1000+2000)的CPU资源,第二台会占有2000 / (1000+2000)的CPU资源 CPU%是指占所有核心的百分数,比如你有四个核心,想要VPS最多用一半的性能,你可以设置CPU%为50,那么他最多使用 2 ÷ 4 x 100 = 50 (CPU%)

下载Virtualizor_For_WHMCS插件,上传到/path/to/whmcs/modules/servers/目录
WHMCS管理面板->设置->产品/服务->服务器设置

BQACAgUAAx0Ea55INgACAbxmFWTUvl1OSkCo06tUZeDH0FRZiAACiQ8AAmSdsVQIKutqBIRkmzQE

添加服务器
主机名/IP地址:母鸡ip
用户名:key
密码:key pass

BQACAgUAAx0Ea55INgACAbtmFWTGCH7rIderhmxvMlLoGaW_IgACiA8AAmSdsVSBiplKYDeDJjQE

BQACAgUAAx0Ea55INgACAbpmFWS41eBFgA2p6k4nfSVSGcHV8wAChw8AAmSdsVTi04FsjiVPkTQE

创建产品:产品/服务–>新增分组,新增产品

BQACAgUAAx0Ea55INgACAblmFWSrXI7ehP8U0bkPMiZos9LgvAAChg8AAmSdsVQd6DSmi3CdPjQE

BQACAgUAAx0Ea55INgACAbhmFWSbuJ2BsBnat7OnCPJZfEwnLwAChQ8AAmSdsVS7xzVp6tfgYTQE

模块设置

BQACAgUAAx0Ea55INgACAbdmFWSJ-xZewX64_yEQq1iuy2V6cAAChA8AAmSdsVQwmJHfBBf1GzQE

自定义字段

> OS|Operatig System
> 下拉菜单
> OS
> 空
> none,debian-11-x86_64

> vpsid
> 文本框
> vpsid
> 空
> 空

> vps_uuid
> 文本框
> 空
> 空
> 空

BQACAgUAAx0Ea55INgACAbZmFWRN-tja8dKbGcNkV1Ufh0481gACgw8AAmSdsVQueL5a5DbjeDQE

商品上架到这就完成了!

Related Post

发表回复