PVE开启xterm.js控制台

默认的PVE web界面虚拟机控制台无法复制粘贴,开启内置的xterm.js控制台虚拟机才能复制粘贴。 方法如下 1关闭虚拟机 2添加一个串行接口 进入虚拟机的硬件设置,添加一个串行端口。 做完这一步,你会发现PVE面板里多了一个 xterm.js控制台选项。但是目前还不能接收控制台的信号。 3修改grub配置 进入虚拟机系统,编辑grub 配置文件: nano /etc/default/grub 找到如下的行: GRUB_CMDLINE_LINUX="" 在引号里加入参数: GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200" 保存退出 4更新 grub 配置 debain / ubuntu update-grub 5重启虚拟机 然后打开控制台就能OK了

2025-10-06 · 1 min · Duke Yin

解决飞牛系统中 SMB 速度慢的问题

转载于:52COVER 方案 1:修改现有配置文件(推荐) 步骤 1:备份原始配置文件 sudo cp /etc/samba/smb.custom.conf /etc/samba/smb.custom.conf.bak 步骤 2:修改配置文件 将 aio read size = 1 修改为 aio read size = 0(禁用异步 I/O 以提高速度): sudo sed -i 's/aio read size = 1/aio read size = 0/g' /etc/samba/smb.custom.conf 步骤 3:创建重启后自动恢复配置的脚本 ...

2025-10-01 · 1 min · Duke Yin

安装私有语言聊天大模型平台Ollama

Ollama是一个开源大语言模型,可以作为后端 运行不同的LLM。 安装Ollama 我的服务器系统是Linux Debian 所以使用Ollama官方的一条命令就能安装: curl -fsSL https://ollama.com/install.sh | sh Mac和Windows参考官网: https://ollama.com/download/ 过程中会连接github,下载ollama-linux-amd64.tgz,大约1.78g 安装完成后,会提示在本地 127.0.0.1:11434 运行了ollama实例。 测试ollama是否已经安装成功: ollama -v 如果输出版本信息,则说明安装成功。 配置文件默认存在于: /etc/systemd/system/ollama.service 可以使用你熟悉的文本编辑工具进行编辑修改。 如果你的WebUI和Ollama位于不同的服务器,或者要使用第三方工具调用Ollama,需要远程访问Ollama的API的话,需要在配置的service处增加一条: [Service] Environment="OLLAMA_HOST=0.0.0.0" Environment="OLLAMA_ORIGINS=*" 如果指定使用某GPU的话,需要增加: Environment="OLLAMA_DEVICE=cuda" Environment="CUDA_VISIBLE_DEVICES=0" 然后重载并重启Ollama sudo systemctl daemon-reload sudo systemctl restart ollama 如果在Ollama本机安装WebUI则不用,暴露外网会增加服务器资源被盗用的风险。 附录Ollama常用环境变量: 参数标识与配置OLLAMA_MODELS表示模型文件的存放目录,默认目录为当前用户目录即 C:\Users%username%.ollama\models Windows 系统 建议不要放在C盘,可放在其他盘(如 E:\ollama\models)OLLAMA_HOST表示ollama 服务监听的网络地址,默认为127.0.0.1 如果想要允许其他电脑访问 Ollama(如局域网中的其他电脑),建议设置成 0.0.0.0,如果只允许局域网,建议设置为本机的局域网IP,例如 192.168.2.100OLLAMA_PORT表示ollama 服务监听的默认端口,默认为11434 如果端口有冲突,可以修改设置成其他端口(如8080等)OLLAMA_ORIGINS表示HTTP 客户端的请求来源,使用半角逗号分隔列表 如果本地使用不受限制,可以设置成星号 *OLLAMA_KEEP_ALIVE表示大模型加载到内存中后的存活时间,默认为5m即 5 分钟 (如纯数字300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活) 建议设置成 24h ,即模型在内存中保持 24 小时,提高访问速度OLLAMA_NUM_PARALLEL表示请求处理的并发数量,默认为1 (即单并发串行处理请求) 建议按照实际需求进行调整OLLAMA_MAX_QUEUE表示请求队列长度,默认值为512 建议按照实际需求进行调整,超过队列长度的请求会被抛弃OLLAMA_DEBUG表示输出 Debug 日志,应用研发阶段可以设置成1 (即输出详细日志信息,便于排查问题)OLLAMA_MAX_LOADED_MODELS表示最多同时加载到内存中模型的数量,默认为1 (即只能有 1 个模型在内存中) 常用命令: ...

2025-09-30 · 1 min · Duke Yin

Linux 一键换源脚本

Linux 默认的软件源有时候在国内访问比较慢,导致更新、安装软件耗时过长,所以更换软件源会提高效率。 有一个好用的换源脚本如下: bash <(curl -sSL https://linuxmirrors.cn/main.sh) 适用于几乎所有常见的linux发行版本。 官网:https://linuxmirrors.cn/

2025-09-20 · 1 min · Duke Yin

PVE脚本合辑

PVE系统 Proxmox Clean Orphaned LVM 此脚本帮助Proxmox用户识别并删除不再与任何虚拟机或LXC容器关联的孤立LVM卷。它扫描所有LVM卷,检测未使用的卷,并提供一个交互式提示以安全地删除它们。为了防止意外删除,系统关键卷如根、交换和数据被排除。 bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/clean-orphaned-lvm.sh)" bash -c "$(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/tools/pve/clean-orphaned-lvm.sh)" Proxmox VE Kernel Clean 清理未使用的内核映像有助于缩短GRUB菜单的长度并释放磁盘空间。通过删除旧的、未使用的内核,系统可以节省磁盘空间并简化启动过程。 bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/kernel-clean.sh)" bash -c "$(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/tools/pve/kernel-clean.sh)" Proxmox VE LXC Cleaner 此脚本提供了删除日志和缓存以及重新填充 Ubuntu 和 Debian 系统的 apt 列表的功能。 ...

2025-09-18 · 2 min · Duke Yin

适用于PVE8 PVE9的PVE-SOURCE优化工具

PVE8 PVE SOURCE 来源 这个脚本有很多功能,通过运行脚本可以定制优化PVE系统 国内: wget -q -O /root/pve_source.tar.gz 'http://szrq.hkfree.work/pve-source/pve_source.tar.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source github wget -q -O /root/pve_source.tar.gz 'https://github.com/Benson80/pve-source/raw/main/pve_source.tar.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source PVE-manager-status 来源 一键运行 (curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod 没有显示功耗的,请执行下面的命令安装依赖 ...

2025-09-16 · 1 min · Duke Yin

PVE8、PVE9主机获取IPV6并添加SSL证书

获取IPV6 PVE安装后默认是不会自动获取IPV6地址的,当我们需要配置DDNS或者某些场景需要PVE主机的IPV6时,需要这么操作,整个过程不需要重启: 1 设置自动配置SLAAC IPV6 echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf echo "net.ipv6.conf.vmbr0.accept_ra=2" >> /etc/sysctl.conf echo "net.ipv6.conf.all.autoconf=1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.autoconf=1" >> /etc/sysctl.conf echo "net.ipv6.conf.vmbr0.autoconf=1" >> /etc/sysctl.conf 上述命令等同于使用nano或其他文本编辑命令编辑 /etc/sysctl.conf 然后在末尾加入: net.ipv6.conf.all.accept_ra=2 net.ipv6.conf.default.accept_ra=2 net.ipv6.conf.vmbr0.accept_ra=2 net.ipv6.conf.all.autoconf=1 net.ipv6.conf.default.autoconf=1 net.ipv6.conf.vmbr0.autoconf=1 二方法选一即可。 然后使用如下命令使刚刚的配置生效: ...

2025-09-14 · 2 min · Duke Yin

PVE 内核清理和强制使用某内核

在长期跑的PVE上,经过多次升级,有时候会累积了很多kernel(内核)版本,建议运行在最新的内核上,并保留上一个版本作为应急,其余都删除。 使用一个脚本可以按需清理不需要的Kernel: bash -c "$(curl -fsSL https://dukeyin.com/shell/kernel-clean.sh)" 有时候我们会发现,内核虽然升级了新版本,但是PVE每次开机都还是使用老版本,查看当前版本的命令: uname -r 并不是已经安装了的最新版。 如此可以检查是不是某个内核版本被Pin了: 首先列出所有已安装的内核: pve-efiboot-tool kernel list 如果发现有内核被Pin了,则可以通过以下命令取消Pin pve-efiboot-tool kernel unpin 完成后再用上上个命令list一下,看看Pin是否取消了。 最好只使用系统的自动选择Kernels。但是假如你哪天想强制使用某个内核,就可以Pin它: pve-efiboot-tool kernel pin 6.14.11-2-pve 修改了内核Pin,需要刷新一下启动工具: proxmox-boot-tool refresh 然后没什么事了就重启 reboot 等重启完成之后,再验证一下内核是否是最新的了 uname -r 假如ok了的话,可以再次使用本文开头的脚本删除多余的内核。

2025-09-14 · 1 min · Duke Yin

Debian排查网络流量

有时候会怀疑某些进程有后门,在偷偷跟外界通信,所以有几个命令可以快速排查抓到进程。 1想快速看哪个进程在上传 nethogs 2想看清上传到哪个具体IP地址和端口 iftop sudo ss -tunp 4 想查这个IP对应什么域名 dig -x IP地址 5调试和排查特定进程的网络连接 sudo lsof -i

2025-09-02 · 1 min · Duke Yin

PVE虚拟机硬盘直通方法详解

在 Proxmox VE (PVE) 中将物理硬盘直接传递给虚拟机(直通)主要有三种常用方法,各有优缺点和适用场景: 三种主要方法 使用 qm set 命令映射整个物理磁盘 (Raw Device Mapping - RDM) 原理: 在虚拟机配置文件中直接引用物理硬盘的设备节点 (如 /dev/sdX, /dev/disk/by-id/xxxx),绕过 PVE 存储层,虚拟机几乎直接访问物理磁盘。 优点: 性能最佳(接近原生)。 配置相对简单。 适用于任何文件系统(包括 NTFS, ZFS, VMFS 等),甚至未格式化的磁盘。 缺点: 不支持虚拟机快照。 不支持在线迁移 (Live Migration)。 磁盘在 PVE 主机上无法直接使用(被虚拟机独占)。 迁移虚拟机时,需要手动处理该磁盘。 使用 /dev/sdX 可能不稳定(磁盘顺序可能变),强烈推荐使用 /dev/disk/by-id/。 操作步骤: 找到磁盘的持久化 ID: 在 PVE Shell 执行: bash ls -l /dev/disk/by-id/ 找到你要直通的硬盘,通常你会看到类似 ata-Samsung_SSD_860_EVO_1TB_S3Z8NB0K123456 或 scsi-3600508b1001c1a2a3b4c5d6e7f8g9h0 的链接。选择 scsi- 或 wwn- 或 ata- 开头的、不**带 -partN 后缀的条目,它代表整个磁盘。例如:scsi-0Google_PersistentDisk_pve-boot-disk。 编辑虚拟机配置: 假设虚拟机 ID 是 100,磁盘的 by-id 是 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk: bash qm set 100 -scsi1 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk -scsi1: 指定使用 VirtIO SCSI 控制器(推荐,性能好,支持更多特性)。也可以用 -sata1, -ide1, -virtio1,但 SCSI 通常是最佳选择。 后面的参数就是磁盘的完整 by-id 路径。 确认添加: 命令执行后,检查虚拟机硬件配置 (qm config 100) 或 Web 界面,应该能看到新添加的硬盘,类型显示为 scsi (或你指定的类型),路径就是那个 by-id。 在虚拟机中操作: 启动虚拟机,在虚拟机操作系统(如 Windows 磁盘管理、Linux 的 fdisk -l 或 lsblk)中,你应该能看到这块新磁盘。 ⚠️ 注意: 如果磁盘之前有数据,小心不要误格式化。如果是一块新盘,需要在虚拟机内分区并格式化后才能使用。 将物理硬盘分区直通给虚拟机 原理: 与方法 1 类似,但不是传递整个磁盘,而是传递磁盘上的某个特定分区 (如 /dev/sda1, /dev/disk/by-id/xxxx-part1)。 优点: 可以在 PVE 主机和其他虚拟机之间共享一块物理硬盘的不同分区(但强烈不推荐,极易导致数据损坏)。 允许 PVE 主机使用同一块硬盘上的其他分区。 缺点: 继承了方法 1 的所有缺点(无快照、无在线迁移)。 风险更高: 虚拟机如果误操作(如错误的分区工具),可能破坏同一物理磁盘上的其他分区数据。 性能略低于直通整个磁盘(但通常可忽略)。 配置更繁琐,需要精确指定分区。 操作步骤: 与方法 1 几乎相同,只是在 qm set 命令中使用分区的 by-id 路径(带 -partN 后缀)。 找到分区的持久化 ID: bash ls -l /dev/disk/by-id/ 找到目标分区,例如 scsi-0Google_PersistentDisk_pve-boot-disk-part1。 编辑虚拟机配置: bash qm set 100 -scsi2 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk-part1 确认添加: 同方法 1。 在虚拟机中操作: 同方法 1。虚拟机看到的是单个分区/块设备,而不是整个磁盘。 使用 passthrough 模式的 VirtIO-SCSI 控制器 原理: 将整个物理硬盘作为一个 SCSI 设备,通过专门配置的 VirtIO-SCSI 控制器传递给虚拟机。这是方法 1 在 SCSI 控制器下的更正式实现。 优点: 性能优异(与方法 1 的 SCSI 方式相当)。 支持 SCSI 设备的更多高级特性(如 TRIM/Discard 对于 SSD,SCSI 预留等)。 配置语义更清晰(明确使用 SCSI 控制器)。 缺点: 继承方法 1 的主要缺点(无快照、无在线迁移)。 配置稍微复杂一点(需要确保控制器类型正确)。 操作步骤: 找到磁盘的持久化 ID: 同方法 1 步骤 1。 确保虚拟机使用 VirtIO SCSI 控制器: 在虚拟机 硬件 设置中,查看是否有 SCSI控制器,类型是 VirtIO SCSI。如果没有,需要添加一个: 点击 添加 -> SCSI控制器。 类型选择 VirtIO SCSI。 使用 scsihw 和 scsiX 添加磁盘: 假设虚拟机 ID 是 100,磁盘 by-id 是 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk。 方法 A (推荐 - 一步到位):bash qm set 100 -scsi1 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk,backup=0,discard=on -scsi1: 指定连接到 VirtIO SCSI 控制器上的第一个 SCSI 设备。 ,backup=0: 重要! 防止 PVE 备份工具尝试备份这个直通磁盘(通常很大且可能包含不支持快照的文件系统)。 ,discard=on: 如果直通的是 SSD,启用此选项以支持 TRIM/Discard 指令,有助于 SSD 维护性能和寿命。 方法 B (分两步 - 确保控制器存在): 先添加控制器(如果还没有): bash qm set 100 -scsihw virtio-scsi-single # 或 virtio-scsi-pci (virtio-scsi-single 是常见选择)。 再添加磁盘: bash qm set 100 -scsi1 /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk,backup=0,discard=on 确认添加: 检查 qm config 100,应该能看到类似: scsihw: virtio-scsi-single scsi1: /dev/disk/by-id/scsi-0Google_PersistentDisk_pve-boot-disk,discard=on,backup=0,size=976762584K 在虚拟机中操作: 同方法 1。虚拟机将其视为一个 SCSI 磁盘。 方法对比总结 特性方法 1: qm set (整个磁盘)方法 2: qm set (分区)方法 3: VirtIO-SCSI Passthrough性能⭐⭐⭐ 最佳 (接近原生)⭐⭐⭐ 最佳 (接近原生)⭐⭐⭐ 最佳 (接近原生)配置复杂度⭐⭐ 简单⭐⭐ 简单⭐⭐⭐ 稍复杂支持快照❌ 不支持❌ 不支持❌ 不支持支持在线迁移❌ 不支持❌ 不支持❌ 不支持PVE 主机可用性❌ 独占⚠️ 可共享 (不推荐!)❌ 独占传递对象整个物理磁盘物理磁盘的单个分区整个物理磁盘 (作为 SCSI 设备)高级特性支持取决于总线类型取决于总线类型✅ 良好 (TRIM, 预留等)数据安全风险低 (独占磁盘)高! (易损坏同盘分区)低 (独占磁盘)推荐程度⭐⭐⭐ (特定边缘场景)⭐⭐⭐ (首选方法) 选择建议 首选方法 3 (VirtIO-SCSI Passthrough): 在需要将整个物理磁盘以最佳性能和功能直通给虚拟机时,这是最推荐的方式。务必加上 backup=0。 方法 1 作为备选: 如果不想显式配置 VirtIO-SCSI 控制器,方法 1 使用 -scsiX 参数本质上也能达到类似效果(底层会自动处理控制器),但方法 3 的语义更明确。 尽量避免方法 2 (分区直通): 除非你有非常特殊且明确的需求,并且完全理解共享物理磁盘带来的极高数据损坏风险,否则强烈不建议使用分区直通。将整个磁盘分配给一个虚拟机或使用网络存储 (NFS, Ceph, iSCSI) 是更安全可靠的数据共享方式。 💡 考虑 PCIe 直通 (HBA 卡): 如果你需要将整个磁盘控制器(例如一个 SATA 或 SAS HBA 卡)及其连接的所有磁盘一起直通给一个虚拟机(常用于 FreeNAS/TrueNAS, ZFS 文件服务器等),可以使用 PCI(e) Passthrough。这需要在 PVE 主机启用 IOMMU (VT-d/AMD-Vi),并在虚拟机配置中直接传递 PCI 设备。这种方式虚拟机获得对控制器和磁盘的完全控制,性能最佳,也支持控制器级操作。但这超出了单个硬盘直通的范围。 ⚠ 重要注意事项 /dev/disk/by-id/ 是关键: 永远使用 /dev/disk/by-id/ 下的持久化 ID 来引用磁盘或分区。使用 /dev/sdX 或 /dev/nvmeXnY 等路径会导致配置在重启后失效(磁盘顺序可能改变)。 backup=0 参数: 对于直通磁盘,强烈建议添加 backup=0 参数(在 Web 界面添加磁盘时勾选 No backup 选项)。否则 PVE 的备份任务会尝试备份这块可能非常巨大的磁盘,导致备份失败、超时或占用大量空间,且备份出来的镜像通常也无法直接用于恢复直通场景。 discard=on 参数: 如果直通的是 SSD,添加 discard=on 参数(Web 界面勾选 Discard)以启用 TRIM/Discard 支持,这对 SSD 长期性能和寿命很重要。虚拟机内的文件系统也需要支持并启用 TRIM(如 Windows 优化驱动器、Linux 的 fstrim 服务或 discard mount 选项)。 数据安全: 直通意味着虚拟机对物理磁盘有完全控制权。虚拟机内的误操作(如错误格式化)会直接损坏物理磁盘上的数据。确保虚拟机操作系统稳定可靠,并做好备份。 独占访问: 被直通的磁盘在 PVE 主机上将无法直接访问(对于整个磁盘直通)或访问受限(对于分区直通,但极其危险)。确保 PVE 主机本身不需要访问该磁盘。 快照与迁移: 所有直通方法均不支持虚拟机快照和在线迁移。这是追求原生性能的主要代价。 Windows 驱动程序: 如果直通给 Windows 虚拟机并使用 virtio 或 scsi (VirtIO) 模式,必须在 Windows 中安装 VirtIO 驱动程序,否则磁盘无法识别。可以从 Fedora VirtIO-Win 项目 下载 ISO 并挂载给虚拟机安装。 方法1 操作步骤: ...

2025-07-30 · 3 min · Duke Yin