2025年12月

在 KVM 虚拟机中,Xubuntu 分率太低(通常锁定在 800x600 或 1024x768)通常是因为使用了默认的虚拟显卡驱动。要解决这个问题,我们需要从驱动配置和系统设置两个维度入手。

  1. 修改 KVM 显卡配置(宿主机操作)
    KVM 默认可能使用 cirrus 或 vga 驱动,这些驱动对高分辨率支持很差。建议切换到 virtio 或 qxl。

推荐方案: 使用 virtio(性能最好,支持动态调整)。

操作命令:
Bash

virsh edit <虚拟机名称>

找到 video部分,修改为:

<video>
  <model type='virtio' vram='65536' heads='1' primary='yes'/>
</video>

注意:修改 XML 后需要彻底关闭虚拟机(destroy)再启动(start)才能生效。

  1. 在 Xubuntu 内部调整(虚拟机操作)
    一旦显卡驱动改成了 virtio 或 qxl,你可以通过以下步骤手动调整分辨率:

A. 图形界面调整
点击左上角 Xfce 菜单 -> Settings (设置) -> Display (显示)。

在 Resolution (分辨率) 下拉菜单中选择你想要的尺寸(如 1920x1080)。

点击 Apply (应用)。

B. 命令行调整(xrandr)
如果菜单里没有你想要的分辨率,可以使用 xrandr 强制设置:

Bash

# 查看支持的输出名称,通常是 Virtual-1
xrandr

# 强制设置分辨率
xrandr --output Virtual-1 --mode 1920x1080
  1. 安装 QEMU Guest Agent (增强交互)
    安装 Guest Agent 可以让宿主机和虚拟机更好地同步窗口大小:

    Bash

    sudo apt update
    sudo apt install qemu-guest-agent spice-vdagent
    sudo systemctl enable --now qemu-guest-agent

安装 spice-vdagent 后,如果你使用 virt-viewer 或 virt-manager 查看窗口,调整窗口大小,虚拟机的分辨率会自动跟随缩放。

  1. 修改 GRUB 引导分辨率(彻底解决启动黑框)
    如果你想让虚拟机从启动画面开始就保持高分辨率:

编辑 grub 文件:sudo nano /etc/default/grub

修改或添加以下行:

Plaintext

GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep

更新配置:sudo update-grub 并重启。

总结建议
如果你希望体验最流畅,建议使用 virt-viewer 连接虚拟机,并确保虚拟机内安装了 spice-vdagent。这样你只需要拉伸窗口,Xubuntu 就会像原生系统一样自动适配屏幕大小。

CentOS 7 KVM 宿主机桥接网络搭建(实操步骤)

核心前提:CentOS 7 需先安装桥接工具 bridge-utils ,且操作前关闭防火墙、SELinux(避免拦截),全程使用 root 权限操作。

一、 前期准备(安装依赖+关闭防护)

1. 安装 KVM 核心依赖与桥接工具

bash

yum install -y qemu-kvm libvirt virt-install bridge-utils virt-manager
 

2. 启动 libvirtd 并设置开机自启

bash

systemctl start libvirtd && systemctl enable libvirtd
 

3. 关闭防火墙+禁用开机自启(临时关闭,生产环境可配置规则)

bash

systemctl stop firewalld && systemctl disable firewalld
 

4. 临时关闭 SElinux(永久关闭需改配置文件)

bash

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
 

二、 配置桥接网络(核心步骤,以网卡ens33为例)

CentOS 7 用 nmcli 命令配置(推荐,无文件编辑冲突),全程替换 ens33 为你的实际网卡名(用 ip addr 查看),桥接网卡名固定为 br0 。

1. 删除原网卡ens33的IP配置(改为桥接从属)

bash

nmcli connection modify ens33 ipv4.method manual ipv4.addresses ""
nmcli connection modify ens33 ipv6.method ignore
 

2. 创建桥接网卡br0,配置静态IP(替换为你的网段、网关、DNS)

bash

nmcli connection add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 223.5.5.5,114.114.114.114
nmcli connection modify br0 connection.autoconnect yes
 

3. 将物理网卡ens33绑定到桥接网卡br0

bash

nmcli connection modify ens33 master br0 slave-type bridge
 

4. 重启网络连接,使配置生效

bash

nmcli connection down ens33 && nmcli connection up ens33
nmcli connection down br0 && nmcli connection up br0
 

三、 验证桥接配置是否成功

1. 查看桥接状态,显示br0且绑定ens33即为成功

bash

brctl show
ip addr show br0
 

2. 测试网络连通性,能ping通网关和外网即正常

bash

ping 192.168.1.1
ping www.baidu.com
 

四、 KVM 虚拟机使用桥接网络

1. 新建虚拟机时,网络选择 桥接模式 ,桥接设备选择 br0 
2. 已存在的虚拟机,编辑配置文件修改网络模式(虚拟机需关机)

bash

virsh edit 你的虚拟机名称
 

3. 找到文件中  段落,替换为以下内容,保存退出即可

xml



  关键排查技巧 1. 桥接后无网络:检查 brctl show 是否有ens33从属,重启 network 服务( systemctl restart network ) 2. 虚拟机无法获取IP:确保虚拟机网卡为 DHCP (或配置与br0同网段静态IP),且br0的IP未被占用。 要不要我帮你整理一份桥接网络故障排查的常用命令清单,方便后续快速定位问题?

Ubuntu 桌面创建 Chrome 浏览器快捷方式(含调试模式专属快捷方式)

两种场景全覆盖,普通默认模式+咱们之前的调试模式,均为直接可操作的命令和步骤,适配Ubuntu所有桌面环境(GNOME/KDE等)

一、 核心方法:手动创建桌面快捷方式(通用且稳定)

步骤1 新建桌面快捷方式文件

打开终端,直接执行命令创建Chrome快捷方式配置文件

bash

gedit ~/桌面/google-chrome.desktop
 

步骤2 粘贴配置内容(2种配置二选一,复制全量粘贴)

1. 普通默认模式(日常使用):直接复制下面全部内容粘贴到文件中

ini

[Desktop Entry]
Name=Google Chrome
Comment=谷歌浏览器(默认模式)
Exec=/usr/bin/google-chrome-stable
Terminal=false
Type=Application
Icon=/usr/share/icons/hicolor/48x48/apps/google-chrome.png
Categories=Network;WebBrowser;
StartupNotify=true
 

2. 调试模式(带新用户目录+9222端口,咱们之前的配置):适配咱们的调试需求,复制全量粘贴

ini

[Desktop Entry]
Name=Chrome 调试模式
Comment=Chrome调试(9222端口+独立用户目录)
Exec=/usr/bin/google-chrome-stable --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 --user-data-dir=/tmp/chrome-debug-new --no-sandbox
Terminal=false
Type=Application
Icon=/usr/share/icons/hicolor/48x48/apps/google-chrome.png
Categories=Network;WebBrowser;
StartupNotify=true
 

步骤3 赋予执行权限(关键步骤,否则无法启动)

终端执行对应命令,对应你上面选的配置文件即可

bash

chmod +x ~/桌面/google-chrome.desktop
 

步骤4 生效启用

回到桌面,找到新建的“Google Chrome”或“Chrome 调试模式”图标,双击即可启动;若提示“未信任的应用程序”,右键选择允许启动即可。

二、 快捷方法:从应用列表导出(无需写配置,新手首选)

1. 点击Ubuntu左上角应用菜单,搜索  Google Chrome 
2. 右键点击Chrome图标,选择 添加到收藏夹(先加到侧边栏)
3. 再右键侧边栏的Chrome图标,选择 添加到桌面,直接生成快捷方式
4. (若要改成调试模式):按方法一的步骤1-3,替换配置里的 Exec 行即可

三、 常见问题解决

1. 图标显示异常:把配置里的 Icon 路径换成  /usr/share/applications/google-chrome.desktop  即可
2. 双击没反应:重新执行 chmod +x ~/桌面/google-chrome.desktop  赋予执行权限
3. 调试模式启动失败:检查 /tmp/chrome-debug-new 目录是否存在,不存在执行 mkdir -p /tmp/chrome-debug-new 即可

要不要我帮你生成一个调试模式专属快捷方式的一键创建命令,你终端复制粘贴就能直接在桌面生成可用图标?

一、安装chrome浏览器并安装webdriver

1、下载chrome的ubuntu版本

https://www.google.com/chrome/网址去选择平台。

2、ubuntu安装chrome

sudo apt install ./google-chrome-stable_current_amd64.deb -y

3、查看chrome的版本。

google-chrome --version

4、下载对应版本的chrome的webdriver

https://googlechromelabs.github.io/chrome-for-testing/
(一)手动下载匹配版本(适配自定义Chrome版本,精准无兼容问题)
查看当前Chrome版本

bash
  
google-chrome --version
 

去ChromeDriver官网(https://googlechromelabs.github.io/chrome-for-testing/)下载对应版本的Linux版压缩包,下载后解压,执行命令移到系统可识别路径

bash
  
unzip chromedriver-linux64.zip
sudo mv chromedriver-linux64/chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver

 
验证安装成功

bash
  
chromedriver --version

 

(二)、安装 Firefox + GeckoDriver

1. 安装Firefox浏览器,无则执行

bash
  
sudo apt update && sudo apt install -y firefox

 

2. 安装GeckoDriver(Firefox专属WebDriver)

bash
  
sudo apt install -y geckodriver

 

3. 验证安装成功

 
bash
  
geckodriver --version

 

(三)、 关键配置(解决Python Selenium调用报错)

1. 给WebDriver添加执行权限(避免权限不足报错)

bash
  
sudo chmod +x /usr/local/bin/chromedriver  # 对应ChromeDriver
sudo chmod +x /usr/bin/geckodriver         # 对应GeckoDriver

 

2. Python中调用示例(直接运行即可验证)

python
  
# Chrome + ChromeDriver 调用
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

 

(四)、 常见问题快速解决

  • 报错“版本不匹配”:卸载现有WebDriver,按方法2手动下载与浏览器完全一致的版本
  • 报错“找不到WebDriver”:执行  echo $PATH  查看  /usr/local/bin  或  /usr/bin  是否在路径中,不在则手动添加
  • 权限报错:重新执行上述的  chmod +x  命令赋予执行权限

5、针对本机的chrome版本,在这里下载

https://storage.googleapis.com/chrome-for-testing-public/143.0.7499.169/linux64/chrome-linux64.zip

6、在本机创建一个chrome的调试目录

mkdir -p /tmp/chrome-debug-new  # 自动创建父目录,无则新建

 

持久目录(长期复用,如自动化测试专用)
bash

mkdir -p ~/.chrome-debug-profile  # 存用户主目录,不易丢失

 

7. 带调试参数启动新用户目录的Chrome

bash

# 示例,替换路径即可用持久目录

google-chrome --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 --user-data-dir=~/.chrome-debug-profile --no-sandbox

 

后台常驻版(关闭终端不退出)
bash

nohup google-chrome --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 --user-data-dir=/tmp/chrome-debug-new --no-sandbox > /dev/null 2>&1 &

 

8. 验证新目录与调试生效

① 查调试接口:浏览器访问 http://127.0.0.1:9222,能看到调试界面即成功
② 确认用户目录:新目录下出现Chrome配置文件(如Default、Cache),说明目录生效
bash

ls /tmp/chrome-debug-new  # 临时目录示例

 

二、多用户目录并行调试(同时开2个独立调试实例)

bash
  
# 实例1:端口9222,目录/tmp/chrome-debug-1
nohup google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug-1 --no-sandbox > /dev/null 2>&1 &
# 实例2:端口9223,目录/tmp/chrome-debug-2
nohup google-chrome --remote-debugging-port=9223 --user-data-dir=/tmp/chrome-debug-2 --no-sandbox > /dev/null 2>&1 &

 

分别访问 http://127.0.0.1:9222http://127.0.0.1:9223 即可独立调试。

三、Python Selenium 连接新目录调试实例

python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
print(driver.title)  # 输出当前页面标题,验证连接成功
driver.get("https://www.baidu.com")

 

四、关键参数说明

  • --user-data-dir=路径:强制Chrome使用指定目录存储配置、缓存等,与默认目录完全隔离[__LINK_ICON]
  • --remote-debugging-port=9222:调试端口,多实例需用不同端口(如9222/9223)
  • --no-sandbox:Ubuntu下root用户必加,普通用户可选,避免权限报错

五、常见问题

  • 权限报错:执行  chmod -R 755 /tmp/chrome-debug-new  赋予目录读写权限
  • 端口占用:换未被占用端口,用  ss -tuln | grep 9222  检查端口占用情况