用bhyve-webadmin来管理FreeBSD系统下的bhyve虚拟机(上)

作者:skywalk8163日期:2026/1/17

BVCP((Bhyve Virtual-Machine Control Panel ,bhyve-webadmin )是一个图形化和安全的web控制面板,旨在管理FreeBSD bhyve虚拟机。BVCP专为数据中心级可靠性而设计,专为连续24/7运行而构建,专注于稳定性和性能。它是一个本机FreeBSD应用程序,具有简单的一键安装过程,确保快速轻松的部署。BVCP独立于系统配置运行,不修改现有设置,允许它在大多数环境中平稳运行。使用BVCP,管理员可以通过单个统一的界面管理多个物理主机,而不需要集群。

bhyve-webadmin网址:KGitHub - DaVieS007/bhyve-webadmin: FreeBSD Bhyve Web Administration Software

下载软件

如果用git下载,我看整个仓库挺大的,大约1G左右,所以我们还是直接下载它的代码压缩包

fetch https://bhyve.npulse.net/release.tgz

如果没有fetch,就用wget

下载完毕解压缩

1tar -xzvf release.tgz
2

安装

进入目录执行安装脚本

sudo sh install.sh

安装界面

安装完成

1                    ██████╗ ██╗   ██╗ ██████╗██████╗
2                    ██╔══██╗██║   ██║██╔════╝██╔══██╗
3                    ██████╔╝██║   ██║██║     ██████╔╝
4                    ██╔══██╗╚██╗ ██╔╝██║     ██╔═══╝
5                    ██████╔╝ ╚████╔╝ ╚██████╗██║
6                    ╚═════╝   ╚═══╝   ╚═════╝╚═╝
7
8            Bhyve Virtual-Machine Control Panel under FreeBSD
9
10 N  2026-01-16 19:30:06 | BVCP | Initialising BVCP-Backend 2.2.0p2 Application
11 Available Command Line Arguments:
12  - /var/lib/nPulse/BVCP/Backend/vmm setup           Initial Setup
13  - /var/lib/nPulse/BVCP/Backend/vmm resecure        Change API Keys
14  - /var/lib/nPulse/BVCP/Backend/vmm reset_password  Change Admin Credential
15  - /var/lib/nPulse/BVCP/Backend/vmm cli             CLI Interface
16Dropping to CLI ..
17
18 N  2026-01-16 19:30:07 | INTR | TCP Buffers Adjusted: R:64.00KB,S:32.00KB
19 E  2026-01-16 19:30:07 | BVCP | CLI Connection Failed: 127.0.0.1:8628
20 N  2026-01-16 19:30:07 | SW | Program exited gracefully...
21Installation Finished!
22Navigate: https://[your-ip]:8086

一些有用的信息

(!) Admin Credentials recreated,
- User: admin
- Password: zGW88Jfw

Available Command Line Arguments:
- /var/lib/nPulse/BVCP/Backend/vmm setup Initial Setup
- /var/lib/nPulse/BVCP/Backend/vmm resecure Change API Keys
- /var/lib/nPulse/BVCP/Backend/vmm reset_password Change Admin Credential
- /var/lib/nPulse/BVCP/Backend/vmm cli CLI Interface
Dropping to CLI ..

浏览器端口连接

浏览器连8086端口,这样的

使用启动时提醒的密码登录,进入管理页面

完蛋了,改了密码进不去了。

重复执行install,再次进去。也可以重置密码,见调试部分。

更新密码的时候,要把账户写成邮箱地址才可以。密码先不改。

这回ok了,可以登进去。

配置bhyve的公共内容

添加网卡

添加存储

安装Ubuntu22.04版本

下载iso

到163加速镜像http://mirrors.163.com/ubuntu-releases/jammy/去下载iso

wget http://mirrors.163.com/ubuntu-releases/jammy/ubuntu-22.04.5-live-server-amd64.iso

突然发现清华和中科大的镜像里面都没有amd64的安装盘了,只有arm和riscv的了。

创建ubuntu虚拟机

但是创建后,配置cdrom,无法找到文件!原来要放到/vms/iso_images 这个目录里

启动

见到了久违的装机画面

好了就先到这里吧。

总结

尽管是浏览器web控制,我也是晕头转向的,这个配置起来没有想象的那么顺利啊!

原来卡在cdrom,是因为没有把镜像文件放到指定的位置:/vms/iso_images 这个目录。

附:api命令

1  _> vm
2  * [vm] Available Commands:
3   [Start/Stop Commands]
4   + start [prefix]                                                          | Start virtual machine
5   + check [prefix]                                                          | Check virtual machine
6   + stat  [prefix] {format: safe,raw}                                       | Get CPU/MEM statistics
7   + shutdown [prefix]                                                       | ACPI Shutdown
8   + user [user]                                                             | Add user to the VM
9   + log [prefix] [max_entries]                                              | Fetch VM Journal
10   + pause [prefix]                                                          | Pause virtual machine
11   + resume [prefix]                                                         | Resume virtual machine
12   + kill [prefix]                                                           | Kill virtual machine
13   + stop [prefix]                                                           | Stop virtual machine
14   + list {prefix}                                                           | List virtual machine
15   + destroy {prefix}                                                        | Destroy virtual machine
16   + restart [prefix]                                                        | Restart virtual machine
17
18   [Management Commands]
19   + create [prefix] [description]                                           | New virtual machine
20   + desc [prefix] [new_description]                                         | Modify virtual machine
21   + note [prefix] {new_note}                                                | Add/Get note
22   + clear [prefix]                                                          | Clear config (debug purpose)
23   + set [prefix] [key] [value]                                              | Set core variables
24     - keys: cpu.socket, cpu.core, memory, sys[linux,win,bsd] arch[intel,amd]
25     - keys: vnc.wait, vnc.display, utc_time, wire_memory, passthru, hda
26     - keys: clear_bios [DEPRECATED]
27     - keys: reset_uefi=[yes], protect_uefi=[true/false]
28     - keys: auto_boot=[true/false], boot_priority=[low/med/high]
29     - keys: custom_prepend                                                  | Prepend custom parameters
30     - keys: custom_append                                                   | Append custom parameters
31   - destroy [prefix]                                                        | Destroy virtual machine
32
33   [Disk Management Commands]
34   + disk create [prefix] [storage] [name] [size]                            | Create new disk
35   + disk attach [prefix] [file] [desc] [slot] [legacy/ahci/virtio/nvme]     | Attach Disk into VM
36   + disk nvme_set [prefix] [name] [key] [value]                             | Set nvme values on disk
37     - keys: maxq (Max number of queues), qsz (Queue Size), isoslots (IO Slots), sectsz (Sector Size in Bytes)
38   + disk detach [prefix] [file]                                             | Detach Disk from VM
39   + disk destroy [prefix] [ID/file]                                         | Delete Disk
40   + disk resize [prefix] [file] [new_size]                                  | Resize Disk
41   + disk list [prefix]                                                      | List Disks
42
43   [Share Management Commands]
44   + share attach [prefix] [share_name] [host_dir] {readonly}                | Create Virtio-9P VirtFS
45   + share detach [prefix] [share_name]                                      | Remove Share
46   + share list [prefix]                                                     | List Shares
47
48   [CDROM Commands]
49   + cdrom attach [prefix] [iso_file]                                        | Attach ISO file as CD-ROM
50   + cdrom detach [prefix] [iso_file]                                        | Detach ISO
51   + cdrom list [prefix]                                                     | List ISO Images
52
53   [Network Commands]
54   + nic add_virtio [prefix] [switch] {mac_addr} {host_ip} {custom_route}    | Add VirtIO/NIC bound to switch
55   + nic add_legacy [prefix] [switch] {mac_addr} {host_ip} {custom_route}    | Add Intel/NIC bound to switch
56   + nic change [prefix] [NIC] [switch]                                      | Change Switch
57   + nic mac [prefix] [NIC] [mac_addr]                                       | Change MAC Address
58   + nic host_ip [prefix] [NIC] [ip]                                         | Add IP to host's TAP interface
59   + nic custom_route [prefix] [NIC] [ip]                                    | Add custom route rule to host's TAP interface
60   + nic enable [prefix] [NIC]                                               | Enable NIC
61   + nic disable [prefix] [NIC]                                              | Disable NIC
62   + nic remove [prefix] [NIC]                                               | Remove NIC
63   + nic list [prefix]                                                       | List Interfaces

调试

页面找不到了怎么回事

https://192.168.1.5:8086/

netstat -rn,可以看到有8086端口啊

tcp6 0 0 *.8086 *.* LISTEN
tcp4 0 0 *.8086 *.* LISTEN

不明白怎么回事?

后来是重置密码,服务也ok了

密码找不到了怎么办

修改密码

sudu /var/lib/nPulse/BVCP/Backend/vmm reset_password

最后用的这条命令重置的密码

sudo /var/lib/nPulse/BVCP/Backend/vmm setup user

cdrom找不到东西怎么办

点击加入cdrom,没有东西

明白了,需要放在/vms/iso_images 这个目录里

果然就能看到了


用bhyve-webadmin来管理FreeBSD系统下的bhyve虚拟机(上)》 是转载文章,点击查看原文


相关推荐


计算机视觉入门到实战系列(六)边缘检测sobel算子
_codemonster2026/1/9

边缘检测 一、核心原理:变化的度量二、核心步骤(传统方法)三、经典边缘检测算子sobel算子计算X轴方向梯度计算Y轴方向梯度聚合 一、核心原理:变化的度量 边缘的本质是图像函数(灰度值、颜色值)的突然变化或不连续性。在数学上,这种“变化”可以通过导数或梯度来度量。 一维信号类比:想象一个一维的灰度信号(一条扫描线)。在平坦区域,灰度值恒定,导数为 0。在斜坡(灰度渐变)区域,导数为一个非零常数。在阶跃(灰度突变,即边缘)处,导数会达到一个极值(峰值)。扩展到二维图像:对于二


redis常见问题分析
哈里谢顿2026/1/1

在高并发系统中,缓存(如 Redis)与数据库(如 MySQL)配合使用是提升性能的关键手段。但若设计不当,会引发四类经典问题:双写不一致、缓存穿透、缓存雪崩、缓存击穿。下面逐一详解其原理、危害及解决方案。 一、缓存与 DB 双写不一致(Cache-DB Inconsistency) 🔍 问题描述 当数据更新时,先更新数据库,再操作缓存(删除或更新),但由于网络延迟、程序异常或并发操作,导致 缓存与数据库中的数据短暂或长期不一致。 🧩 典型场景 线程 A 更新 DB → 删除缓存 线程


Python字典元素的增、删、改操作
咖啡の猫2025/12/22

一、前言 字典(dict)是 Python 中最灵活的数据结构之一,支持动态地增加、删除、修改键值对。 然而,看似简单的操作背后,却隐藏着引用共享、内存管理、安全边界等细节。 你是否遇到过这些问题? 修改一个字典,另一个变量也跟着变了?用 d[key] = value 覆盖了重要数据却没察觉?在遍历字典时删除元素,结果报错?想批量更新配置,但代码又长又难维护? 本文将带你: ✅ 掌握字典“增、删、改”的所有核心方法 ✅ 理解 update()、字典解包、| 合并等高级技巧 ✅ 避开引用共


Action和Func
林杜雨都2025/12/14

1. 为什么需要 Action 和 Func? 在 C# 中,我们经常需要将方法作为参数传递给其他方法,或者将方法存储在变量中以便稍后调用。传统上,我们需要先定义一个与目标方法签名完全匹配的委托类型,这非常繁琐。 例如,如果我们想传递一个没有返回值、有两个 int 参数的方法,我们需要这样写: // 1. 自定义委托类型 public delegate void MyCustomDelegate(int a, int b); // 2. 定义一个符合该签名的方法 public stati


【Claude Code】长时间运行 agents 的有效控制框架
是魔丸啊2025/12/6

转载 Harness原意是马具,从马具控制马匹,引申为一个控制和管理框架,用于封装、引导和监督AI代理的行为。后文为了保持原意,作为专有名词不翻译了。 文中提到的initializer agent / coding agent,并不是claude code已经内置的机制,而是一个最佳实践,需要自行配置。如果想要prompt,可以去这里寻找: github.com/anthropics/… 随着 AI agents 变得更加强大,开发者越来越多地要求它们承担需要跨越数小时甚至数天工作的复杂任务


《 Linux 修炼全景指南: 七 》 指尖下的利刃:深入理解 Vim 的高效世界
Lenyiin2025/11/28

摘要 本篇《Linux Vim 入门指南》从零开始,系统而全面地介绍了 Vim 的操作理念、基础模式、光标移动、文本编辑、搜索替换、可视化模式、多窗口与多文件协作等核心能力,并深入讲解 Vim 配置、插件体系与高效编辑技巧。文章不仅涵盖新手最容易踩的坑,还通过实战示例带你完成一次完整的编辑任务,使读者不但 “会用 Vim”,更真正理解 Vim 背后的高效思维方式。无论你是 Linux 新手,还是想进一步提升编辑效率的开发者,这篇指南都将成为你学习 Vim 的最佳起点。 1、引言:为什么学 Vi


机器学习特征选择:深入理解移除低方差特征与sklearn的VarianceThreshold
郝学胜-神的一滴2026/1/26

机器学习特征选择:深入理解移除低方差特征与sklearn的VarianceThreshold 引言:为什么特征选择如此重要?一、低方差特征为什么需要移除?1.1 低方差特征的问题1.2 低方差特征的典型场景1.3 数学表达 二、sklearn的VarianceThreshold详解2.1 基本用法2.2 关键参数说明2.3 重要属性 三、实战案例:电商用户行为分析3.1 数据集描述3.2 应用VarianceThreshold3.3 结果分析 四、进阶技巧与注意事项4.1 数据标准


Slidev:开发者专属的演示文稿神器
修己xj2026/2/5

最近我在逛GitHub时,发现了一个很有意思的项目——Slidev。如果用一句话来总结,那就是: 用 Markdown 写幻灯片,让技术分享更高效、更优雅。 今天就来给大家推荐一下这个项目。 ❓为什么选择 Slidev? 作为开发者,我们经常需要做技术分享、产品演示或会议报告。传统的演示工具(如 PowerPoint、Keynote)虽然功能强大,但对于代码展示和实时编程演示往往力不从心。这就是 Slidev 诞生的原因——专为开发者设计的演示文稿工具。 Slidev(Slide + de


【机器学习:逻辑回归】
Keep__Fighting2026/2/13

【逻辑回归】 1、简介 我们知道回归任务一般是处理线性问题的,预测结果是连续的,分类任务是结果是离散的。对于分类问题,在传统的机器学习算法中有很多解决方法,这里讲一下众多思想,其中之一——逻辑回归。 逻辑回归(Logistic Regression)通过将线性回归的输出映射到(0,1)区间,得到一个概率值,通过设定阈值的方式达到分类的效果,在此之中,使用Sigmoid函数将连续值转换为概率值,也即使用Sigmoid映射线性结果到(0,1)之间。 2、激活函数(概率映射) 在逻辑回归中,除了使用s


AGENTS.md 真的对 AI Coding 有用吗?或许在此之前你没用对?
恋猫de小郭2026/2/22

AGENTS.md 相信大家应该不陌生,它们一般都是被放在根目录的典型 Context Files ,这些文件被默认作为 Coding Agnet 的 「README」,一般是用来提供仓库概览、工具链指令、编码规范或者设计模式等,不少 Agent 还提供 /init 之类命令自动生成这些文件。 实际上在此之前大家都是 GEMINI.md 、CLAUDE.md 、copilot-instructions.md 之类的各自为政,而 2025 之后,OpenAI、谷歌、Cursor 和 Source

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客