lala.im:VirtFusion安装与配置

運維技術·軟件/源碼·lala.im · 2023-10-27 · 268 人浏览

原文地址:https://lala.im/8812.html,請支持原作者!該處僅作轉載。

文章目录
VirtFusion是一个虚拟化管理面板,主打的就是一个经济实惠,因为授权很便宜,单台服务器只需1.5美元/月,所以现在很多ONEMAN都喜欢用这个面板。
VirtFusion分为控制服务器和虚拟化服务器两个部分,官方的建议是准备2台服务器安装,但为了节约成本也可以安装到1台服务器内,这里我就安装到1台服务器内了。
控制服务器相当于前端,提供一个WEB面板方便你日常操作。虚拟化服务器相当于后端,也就是实际运行虚拟机的服务器。
以下操作均在Debian12上完成。
控制服务器的安装很简单,官方准备了一键脚本:

apt -y install curl 
curl https://install.virtfusion.net/install-control-debian-12.sh | sh -s -- --verbose

安装完成会回显管理员账号密码与管理面板的地址:

+-------------+--------------------------------------+
|         URL | https://10.0.0.10                    |
|    Username | [email protected]                      |
|    Password | sQpfY1p1nhsxqXt                      |
+-------------+--------------------------------------+

然后安装acme配置ssl证书:

curl https://get.acme.sh | sh -s [email protected] # 安装完成后退出终端重新登录一遍

申请证书,将DOMAIN.COM换成你自己的域名:

acme.sh --issue \
        --webroot /opt/virtfusion/nginx/acme \
        --ocsp-must-staple \
        --keylength 4096 \
        --server letsencrypt \
        -d DOMAIN.COM

安装证书,将DOMAIN.COM换成你自己的域名:

acme.sh --installcert \
        --keypath /opt/virtfusion/ssl/ssl.key \
        --fullchainpath /opt/virtfusion/ssl/ssl.crt \
        --reloadcmd "systemctl reload vf-nginx" \
        -d DOMAIN.COM

这样就安装完成了。你可以登录WEB面板申请试用授权,即免费一个月:

範例
虚拟化服务器的安装也可以使用官方提供的一键脚本:

curl https://install.virtfusion.net/install-hypervisor-kvm-debian-12.sh | sh -s -- --verbose

等脚本跑完就安装完成了,不需要做任何其他额外的设置,就是这么简单。。
接下来你需要做的是配置母机网络。
由于网络环境的复杂性与多样性,我不能保证这套配置搬到你的服务器也能正常使用,请根据自身网络环境进行适当的调整。
我的母机服务器拥有1个独立IPv4,/64的IPv6。(商家已route整个/64不需要自己用ndppd这类东西)
我的规划是:给虚拟机分配一个NATIPv4的同时分配一个独立的IPv6,或者/96的IPv6。
首先编辑网络配置文件:

nano /etc/network/interfaces

配置桥接网络:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug enp35s0
iface enp35s0 inet manual

auto br0
iface br0 inet static
  address 3X.4X.21X.24X/28
  gateway 3X.4X.21X.24X
  dns-nameservers 8.8.8.8
  bridge_ports enp35s0
  bridge_stp off
  bridge_waitport 0
  bridge_fd 0

iface br0 inet6 static
  address 260X:29X:0:8X::2/64
  gateway 260X:29X:0:8X::1

说明:
虽然我的母机只有一个独立IPv4,但我在这里依旧配置桥接的目的是将IPv6桥到这个br0上用。
重启网络使配置生效(或者你也可以直接重启服务器,这样更保险)

systemctl restart networking
systemctl reboot

接下来配置NAT网络,首先安装dnsmasq和haproxy:

apt -y install dnsmasq haproxy

新建一个xml文件:

nano network.xml

写入如下配置:

<network>
  <name>natbr0</name>
  <forward dev='br0' mode='nat'/>
  <bridge name='natbr0' stp='on' delay='0'/>
  <ip address='192.168.200.1' netmask='255.255.255.0'/>
</network>

说明:
由于我们之前已经配置桥接网络了,所以这里需要把forward dev改为br0,虽然br0是我们刚才配置的网桥,但这并不会影响nat转发。
这与VirtFusion官方提供的方案是完全不同的:https://docs.virtfusion.com/guides/nat-v6
因为VirtFusion官方的这个方案是特定于Hetzner的,Hetzner对分配给每台服务器的IPv6块做了黑魔法,你看看网关IP是fe80::1就知道了,其他不是Hetzner的机器是不能这样配置的,所以我自己折腾了一下,想出了这个方案。。
现在要做的就是启动NAT网络:

virsh net-define --file network.xml
virsh net-autostart natbr0
virsh net-start natbr0

如果你需要修改已经启动的NAT网络配置,可遵循如下步骤来操作:

virsh net-edit natbr0
virsh net-destory natbr0
virsh net-start natbr0

需要注意的是这将导致所有虚拟机的网络断开,要么你自己一台台重启虚拟机要么直接重启母机。
现在需要将虚拟化服务器与控制服务器进行对接,这样控制服务器才能操控虚拟化服务器。
登录到控制服务器,转到Compute Resources-Hypervisors-Add Hypervisor,填写虚拟化服务器的IP,名字随意:

範例
添加成功后你将可以在控制服务器上对此虚拟化服务器进行更细粒度的配置。由于可配置选项非常多,这里我只列出几个非常重要的配置。
最重要的是网络,你需要将Primary Network的类型设置为NATv1,Interface Name设置为natbr0:

範例
然后点击Add Network添加一个新的网络,名字随意,类型设置为Bridged,Interface Name设置为br0:

範例
其次是存储,务必给你的母机服务器预留一点磁盘空间用来存储系统模板等文件,假设你的母机有2TB硬盘,这里配置成1700GB或者1800GB就行了:

範例
做完上面的配置后务必打开Enabled选项,这样才会真正启用这个虚拟化服务器,另外这里有一个Limit的设置,如果你想超开则可以在这里把Servers/CPU/Memory都设置成0。
其他的那些配置暂时先不用管,然后点击Updata更新并保存设置:

範例
现在需要创建一个组,转到Compute Resources-Hypervisor Groups-Create Group,名字随意:

範例
将刚才的虚拟化服务器添加到这个组:

範例
现在需要添加IP Block,在之前我们配置了2个网络一个NAT,一个桥接用于独立IPv6。这里我们也需要添加2个IP Block,一个用于NAT一个用于独立IPv6。
首先添加IPv4的,转到Connectivity-IP Block-Create IP Block,名字随意,类型IPv4:

範例
将Gateway设置为192.168.200.1,Netmask设置为255.255.255.0,DNS服务器自己喜欢哪个用哪个:

範例
附加到natbr0:

範例
生成IP Block后,将192.168.200.0、192.168.200.1这种不可用的IP地址设置为保留:

範例
转到Connectivity-IP Block-Create IP Block,名字随意,类型IPv6。
Gateway设置为260X:29X:0:8X::1,Source Subnet设置为:260X:29X:0:8X::,Source Subnet CIDR设置为/64。
Output Subnet CIDR这里我设置成/96,如果你只想让虚拟机拥有一个IPv6这里可以设置成/128:

範例
附加到br0:

範例
转到Settings-Virtualization,在这里可以设置虚拟机的一些默认配置,建议按照下面我说的来设置。
打开PortIsolation,这样可以限制内网虚拟机之间互相访问,提升安全性。
DiskBusType设置为VirtIOBlock,DiskImageType设置为QCOW2,DiskCacheType设置为writeback,提升虚拟机性能。
CPU Mode/Model设置为HostPassthrough可让虚拟机直接显示母机CPU型号。

範例
请注意要让你的虚拟化服务器遵循这些默认设置,需要在虚拟化服务器内将所有与之相关的选项设置为Inherit from virtualization settings:

範例
如果想让你的虚拟机支持嵌套虚拟化,则还需要启用svm或者vmx:

範例
首先需要创建一个Packages,你可以理解为这就是设置一个套餐。转到Servers-Packages-Create Package,套餐的名字随意。
在这里需要设置CPU核心、内存大小、主磁盘大小、每月可用流量等:

範例
现在转到Server-Servers-Create Server,选择要将虚拟机创建到哪个用户名下、选择虚拟化服务器组、选择Packages,然后点击Create即可创建一台虚拟机了:

範例
之后用户就可以通过面板来给虚拟机安装操作系统了:

範例
当操作系统安装好之后,如果虚拟机需要使用IPv6,则我们还需要手动进行设置,找到对应的虚拟机,创建Secondary网络:

範例
将Hypervisor Network修改为br0点更新并应用:

範例
然后看到ASSIGNED IPV6 SUBNETS,在右边点击Random按钮给虚拟机分配一个IPv6子网:

範例
注意:需要重启虚拟机才能生效。
另外有些系统模板存在问题,无法设置IPv6的默认网关,则需要用户在虚拟机内手动配置:

ip route add default via GWIP dev INTERFACE onlink

将GWIP替换为在WEB面板看到的IPv6网关IP,INTERFACE替换为你系统内的接口名字,Ubuntu一般是ensX。(X代表随机数,以你系统内实际的数字为准)

運維技術 軟件/源碼 WHMCS lala.im
Theme Jasmine by Kent Liao