分类 linux相关 下的文章

🚀 Ubuntu KVM 安装和配置指南

本指南适用于最新的 Ubuntu LTS 版本(如 Ubuntu 20.04 或 22.04)。

1. 检查硬件虚拟化支持

这是 KVM 运行的先决条件。

检查 CPU 状态: 运行以下命令,确认您的 CPU 支持 Intel VT-x (vmx) 或 AMD-V (svm)。
Bash

egrep -c '(vmx|svm)' /proc/cpuinfo

结果 > 0: 支持。

结果 = 0: 请检查您的 BIOS/UEFI 设置,确保 Intel VTx/AMD-V 选项已启用。

检查 KVM 模块是否已加载:
Bash

lsmod | grep kvm

如果输出包含 kvm_intel 或 kvm_amd,则 KVM 内核模块已加载。

2. 安装 KVM 核心软件包

我们需要安装 KVM 的核心组件 (qemu-kvm)、统一管理工具 (libvirt) 以及图形化管理界面 (virt-manager)。
Bash

#1. 更新软件包列表
sudo apt update

# 2. 安装 KVM, libvirt 和 virt-manager
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
qemu-kvm: 提供了 KVM 所需的设备模拟和用户空间接口。

libvirt-daemon-system: libvirt 守护进程,用于管理虚拟化平台。

virt-manager: 图形化管理工具,强烈推荐新手使用。

bridge-utils: 用于设置网络桥接,通常用于配置虚拟机网络。

3. 配置用户权限

为了能够管理虚拟机而无需频繁使用 sudo,您需要将您的用户账户添加到 libvirt 用户组中。
Bash

# 将当前用户添加到 libvirt 组
sudo usermod -aG libvirt $USER

# 检查用户是否已成功添加
groups $USER | grep libvirt

⚠️ 重要步骤: 添加到用户组后,您必须注销 (Log Out) 然后重新登录 (Log In) 系统,或重启计算机,新的用户权限才会生效。

  1. 启动并检查 libvirtd 服务

libvirtd 是管理所有虚拟机的核心服务。它应该在安装时自动启动,但您可以检查并确保其正在运行。
Bash

# 检查服务状态
sudo systemctl status libvirtd

您应该看到状态显示为 active (running)。
💻 Ubuntu KVM 使用(创建虚拟机)

安装和配置完成后,您可以使用 virt-manager (图形化) 或 virt-install (命令行) 来创建虚拟机。
推荐方法:使用 Virtual Machine Manager (virt-manager)

virt-manager 是最简单直观的方法。

启动: 在终端中输入 virt-manager,或在 Ubuntu 应用程序菜单中搜索 "Virtual Machine Manager" 启动。

连接: 首次启动,它会自动连接到本地 QEMU/KVM Hypervisor。

创建新虚拟机:

    点击工具栏上的 “新建虚拟机” 按钮。

    选择安装方式: 通常选择 “本地安装介质(ISO 映像或 CDROM)”。

    选择 ISO 路径: 浏览到您准备好的操作系统安装 ISO 文件(如 Windows 10/11 或另一个 Linux 发行版)。

    配置资源: 分配内存(RAM)和 CPU 核心数。

    配置存储: 设置虚拟磁盘文件的大小和位置。

    完成: 确认设置后,它会启动虚拟机并进入安装界面,像安装物理机一样完成 OS 安装。

进阶方法:使用命令行工具 (virsh 和 virt-install)

virsh: 用于管理已创建的虚拟机。
Bash

# 列出所有已定义或运行的虚拟机
virsh list --all

# 启动一个名为 my-vm 的虚拟机
virsh start my-vm

virt-install: 用于自动化创建虚拟机的脚本工具。

如果您想尝试使用 virt-install 创建一个 Ubuntu 虚拟机,您只需将 ISO 文件准备好,然后运行类似于上一回复中提供的命令即可。

🌐 网络模式

默认情况下,KVM 使用 NAT (Network Address Translation) 网络,这意味着您的虚拟机可以访问外部网络,但外部网络(您的家庭/办公网络)不能直接访问您的虚拟机。如果需要更高级的网络配置(例如桥接,使 VM 获得独立 IP),则需要进一步配置 bridge-utils 和 Ubuntu 的网络设置。

Ubuntu 20.04升级22.04有图形界面和命令行两种方式,升级前记得备份重要数据,下面是详细步骤:

图形界面(新手友好)

1. 打开终端,先更新当前系统软件包:

plaintext

sudo apt update && sudo apt upgrade -y
sudo apt autoremove --purge
 

2. 打开 Software & Updates ,切换到 Updates 标签,在 Notify me of a new Ubuntu version 中选 For any new version 。

3. 关闭窗口后,打开 Software Updater ,系统会检测到22.04版本,点击 Upgrade ,输入管理员密码,后续跟着弹窗指引操作即可,最后重启系统。

命令行(适配桌面/服务器)

1. 同样先更新并清理系统:
plaintext

sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
 
2. 确保安装升级核心工具:
plaintext

sudo apt install update-manager-core -y
 
3. 执行发行版升级命令,过程中提示确认时输入 y ,遇到配置文件选择时建议保留本地版本:
plaintext

sudo do-release-upgrade
 
4. 升级完成后重启系统,输入 lsb_release -a ,若显示22.04相关信息则升级成功。

  1. ss命令(推荐,高效)
  • 查所有监听端口: ss -tuln ,-t显TCP、-u显UDP、-l显监听状态、-n数字显端口。
  • 查指定端口(如80): ss -tuln | grep ':80' ,快速定位目标端口。
  1. netstat命令(经典,兼容旧系统)
  • 查所有监听端口: netstat -tuln ,参数含义同ss命令。
  • 查端口+对应进程: sudo netstat -tulnp ,-p显进程ID与名称(需root权限)。
  1. lsof命令(关联进程,排查实用)
  • 查所有开放端口及进程: sudo lsof -i -P -n | grep LISTEN ,-i显网络连接、-P显端口号、-n不解析域名。
  • 查指定端口进程: sudo lsof -i | grep ':80' ,精准匹配端口关联进程。
  1. ufw命令(仅查防火墙允许端口)
  • 查看开放端口: sudo ufw status ,仅显示防火墙规则中允许访问的端口(需启用ufw防火墙)。
  1. nmap命令(扫描验证,需安装)

1. 先安装: sudo apt update && sudo apt install nmap 
2. 扫描本地所有端口: sudo nmap -p 1-65535 localhost ,全面验证开放端口。

需要我帮你整理常用端口查询命令的速记清单,方便你后续快速调用吗?

同步脚本

该脚本支持“远程→本地”或“本地→远程”双向同步,自动检测文件大小、修改时间差异,跳过已完整复制的文件,中断后重新运行可直接续传。

#!/bin/bash
# 功能:自动跳过已复制文件,支持断点续传的 rsync 同步脚本
# 使用说明:1. 替换下方【配置参数】中的路径与IP;2. 赋予执行权限:chmod +x rsync_sync.sh;3. 运行:./rsync_sync.sh

# --------------------------【配置参数】--------------------------
SYNC_MODE="remote_to_local"  # 同步模式:remote_to_local(远程→本地)、local_to_remote(本地→远程)
REMOTE_USER="your_username"  # 远程服务器用户名(如 root、pi)
REMOTE_IP="192.168.1.100"    # 远程服务器IP(如 192.168.1.100)
REMOTE_PATH="/remote/files"  # 远程文件路径(如 /home/data)
LOCAL_PATH="/local/files"    # 本地文件路径(如 /mnt/backup)
# -----------------------------------------------------------------

# 检查 rsync 是否安装
if ! command -v rsync &> /dev/null; then
    echo "错误:未安装 rsync,正在自动安装..."
    # 适配 Debian/Ubuntu 系统,其他系统可替换为 yum install -y rsync
    sudo apt update && sudo apt install -y rsync
    if [ $? -ne 0 ]; then
        echo "rsync 安装失败,请手动安装后重试"
        exit 1
    fi
fi

# 执行同步(核心命令)
echo "开始同步,模式:$SYNC_MODE,自动跳过已复制文件..."
if [ "$SYNC_MODE" = "remote_to_local" ]; then
    # 远程→本地同步
    rsync -av --progress --partial --delete \
    "$REMOTE_USER@$REMOTE_IP:$REMOTE_PATH/" "$LOCAL_PATH/"
elif [ "$SYNC_MODE" = "local_to_remote" ]; then
    # 本地→远程同步
    rsync -av --progress --partial --delete \
    "$LOCAL_PATH/" "$REMOTE_USER@$REMOTE_IP:$REMOTE_PATH/"
else
    echo "错误:同步模式设置错误,仅支持 remote_to_local 或 local_to_remote"
    exit 1
fi

# 检查同步结果
if [ $? -eq 0 ]; then
    echo "同步完成!所有已复制文件已自动跳过,中断文件已续传"
else
    echo "同步中断!下次运行脚本将自动续传,无需重新复制已完成文件"
    exit 1
fi

使用步骤

1. 复制上述脚本内容,在本地创建文件(如  rsync_sync.sh );

2. 打开文件,修改【配置参数】中的  REMOTE_USER 、 REMOTE_IP  等信息,匹配你的实际环境;

3. 执行命令赋予权限: chmod +x rsync_sync.sh ;

4. 运行脚本: ./rsync_sync.sh ,终端会实时显示传输进度,中断后重新运行即可续传。

错误排除

“不能运行sh文件”通常是文件权限不足或脚本格式有问题,按以下2步排查即可解决,操作简单且必能修复:

  1. 先解决核心问题:赋予脚本可执行权限(最常见原因)

在终端进入脚本所在文件夹,执行命令给脚本加权限(假设脚本名叫 rsync_sync.sh ):

bash

chmod +x rsync_sync.sh
 

加完权限后,再用以下命令运行(二选一,推荐第一种):

  • 方式1(最稳妥):
    bash

./rsync_sync.sh
 

  • 方式2(直接指定shell解释器):
    bash

bash rsync_sync.sh
 

  1. 若仍报错,排查脚本格式(复制粘贴可能带隐藏字符)

若执行后提示“语法错误”,可能是复制时带入了Windows格式的换行符( \r ),执行以下命令转换为Linux格式:

bash

dos2unix rsync_sync.sh
 

(若提示 dos2unix 未安装,先装工具: sudo apt install -y dos2unix ,再执行转换)

按以上步骤操作后,脚本基本能正常运行。如果仍报错,可把终端显示的完整错误信息发给我,我能帮你精准定位问题。

在 GitHub 上确实存在一些与百度网盘数据搜索和下载相关的开源项目,但需要注意以下几点:

⚠️ 重要提示

官方限制与风险: 百度网盘官方对非官方的下载和搜索方式有严格的限制。任何非官方的工具或脚本都可能面临被封禁账号或失效的风险。

法律与道德: 确保你搜索和下载的数据内容是合法且不侵犯他人版权的。

工具可用性: 由于网盘接口的不断变化,许多工具可能随时会失效,需要用户自行维护或等待作者更新。

🔍 可能的项目类型

GitHub 上常见的相关项目大致分为以下几类:

命令行下载工具(CLI):

    这类工具通常需要安装在本地,通过输入分享链接或文件ID来实现高速下载(可能需要设置网盘Cookie或付费账号信息)。它们旨在绕过官方客户端的限速。

    关键词示例: BaiduPCS-Go (这是一个历史悠久且流行的项目,但可能需要自行编译或寻找最新版本)。

网盘资源搜索引擎:

    这类项目通常是第三方网站或脚本,用于索引和搜索用户公开分享的百度网盘链接。

    关键词示例: baiduyun-search (通常是搭建搜索站点的代码)。

浏览器脚本/插件:

    例如 油猴脚本(Tampermonkey scripts),用于增强网页版百度网盘的功能,如导出真实下载链接、解除某些限制等。

💻 如何进行搜索?

建议您使用以下关键词在 GitHub 官网进行搜索,并关注项目的“Stars”数量和最近的“Commit”时间(更新时间)来判断其活跃度和可用性:
搜索关键词 (中文) 搜索关键词 (英文/拼音)
百度网盘下载 Baidu Netdisk Downloader
网盘高速下载 BaiduPCS
百度网盘搜索 Baiduyun Search
百度网盘不限速 Baidu Pan unlimited speed

请自行前往 GitHub 搜索并仔细阅读项目的说明文档(README),了解其功能、安装方法、使用风险以及是否仍然可用。

您想让我帮您搜索一下 GitHub 上 “BaiduPCS-Go” 项目的最新情况或类似网盘高速下载工具的关键词吗?