静看光阴荏苒
不管不顾不问不说也不念

VirtFusion安装与配置

介绍

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 | admin@admin.com                      |
|    Password | sQpfY1p1nhsxqXt                      |
+-------------+--------------------------------------+

然后安装acme配置ssl证书:

curl https://get.acme.sh | sh -s email=my@example.com # 安装完成后退出终端重新登录一遍

申请证书,将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

现在需要添加IP Block,在之前我们配置了2个网络一个NAT,一个桥接用于独立IPv6。这里我们也需要添加2个IP Block,一个用于NAT一个用于独立IPv6。

IPv4 Block

首先添加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地址设置为保留:

IPv6 Block

转到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

当操作系统安装好之后,如果虚拟机需要使用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代表随机数,以你系统内实际的数字为准)

赞(3)
未经允许不得转载:荒岛 » VirtFusion安装与配置
分享到: 更多 (0)

评论 17

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    感谢大佬分享 :mrgreen:

    yu6个月前 (10-28) Google Chrome 118.0.0.0 Google Chrome 118.0.0.0 Android 10 Android 10回复
  2. #2

    你是猴子派来的逗比吗?误导人,我擦,去官网看了,1.5美元是一台VPS,不是一台母鸡,VirtFusion价格比solusvm2贵多了。

    UkWang6个月前 (10-31) Google Chrome 118.0.0.0 Google Chrome 118.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7回复
    • 1.5是一台vps的价格没错啊,你在这里高潮什么东西呢¿哦,我应该把服务器这几个字改成vps你就能看懂了是吗

      LALA6个月前 (10-31) Safari 17.1 Safari 17.1 iPhone iOS 17.1 iPhone iOS 17.1回复
      • 一台VPS收1.5美元,那开100台?这也叫便宜,没研究清楚,就别误导人好嘛。

        UkWang6个月前 (10-31) Google Chrome 118.0.0.0 Google Chrome 118.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7回复
        • 首先我认为不存在误导,官网的定价页面写的就是1 server,server这个单词翻译成服务器有问题吗?你自己也去官网看了,按你说的如果开100台,谁去买1.5的授权啊?Unlimited Servers看不见吗?我不知道你在杠什么东西,,,

          LALA6个月前 (11-01) Safari 17.1 Safari 17.1 iPhone iOS 17.1 iPhone iOS 17.1回复
  3. #3

    请博主好好研究下虚拟化面板的价格,研究了包括solusvm等其他的所有收费面板,就virtfusion是收的最贵。

    UkWang6个月前 (10-31) Google Chrome 118.0.0.0 Google Chrome 118.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7回复
    • 是是是你说的对,solusvm2一个月12.5好便宜你去买嘛,买了就恭喜你成为他们的bug测试员,,,

      LALA6个月前 (11-01) Safari 17.1 Safari 17.1 iPhone iOS 17.1 iPhone iOS 17.1回复
  4. #4

    可以进行nat设置嘛?

    msmn5个月前 (11-12) Firefox 119.0 Firefox 119.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
  5. #5

    如果只需用到IPv4,宿主机网卡名字是ens3
    那么virtfusion的Primary Network那里的Interface Name,是不是填ens3就行
    network.xml文件如下:

    natbr0

    小白5个月前 (12-01) Microsoft Edge 119.0.0.0 Microsoft Edge 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • natbr0

      小白5个月前 (12-01) Microsoft Edge 119.0.0.0 Microsoft Edge 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 为什么贴的内容被吃了 :cry:

      小白5个月前 (12-01) Microsoft Edge 119.0.0.0 Microsoft Edge 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 大佬,还有个问题如何给生成的小鸡设置swap呢?

      小白5个月前 (12-01) Microsoft Edge 119.0.0.0 Microsoft Edge 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
  6. #6

    `virsh net-destory natbr0`应该是`virsh net-destory natbr0`

    Yusum5个月前 (12-07) Google Chrome 119.0.0.0 Google Chrome 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
  7. #7

    virsh net-destory natbr0应该是virsh net-destroy natbr0 :oops: 刚刚复制错了

    Yusum5个月前 (12-07) Google Chrome 119.0.0.0 Google Chrome 119.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
  8. #8

    virtFusion 可以选择一些机器限制它们的速度总和吗

    wm1个月前 (03-14) Google Chrome 122.0.0.0 Google Chrome 122.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿