服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-16 更新于 2026-10-16 简米科技 5,536 字 13 分钟阅读

虚拟机链接乱码怎么办?教你解决连接显示异常问题,虚拟机显示乱码如何修复

导读虚拟机链接乱码通常不是虚拟机本身故障,而是字符编码、终端字体、远程协议或系统区域设置不一致造成的;按“先看乱码位置,再改编码和字体,最后统一区域设置”的顺序处理,多数连接显示异常可以自己解决,虚拟机链接乱码怎么办?先定位控制台、远程桌面和SSH三类场景看到虚拟机里中文变问号、方块、乱码,先别急着重装系统,乱码像……

虚拟机链接乱码通常不是虚拟机本身故障,而是字符编码、终端字体、远程协议或系统区域设置不一致造成的;按“先看乱码位置,再改编码和字体,最后统一区域设置”的顺序处理,多数连接显示异常可以自己解决。

虚拟机链接乱码怎么办?先定位控制台、远程桌面和SSH三类场景

看到虚拟机里中文变问号、方块、乱码,先别急着重装系统,乱码像翻译错频,机器没坏,只是两边对字符的理解不同,业内专家指出,远程连接乱码里,编码声明不一致和字体缺失占比较大,先确认你是在哪一层看到乱码,再选对应修法。

控制台乱码:VMware、VirtualBox、云服务器VNC各不同

控制台乱码常出现在虚拟机开机画面、登录提示、命令行和系统日志里。

  • VMware Workstation/ESXi:优先检查虚拟机是否安装 VMware Tools 或 open-vm-tools。
  • VirtualBox:检查增强功能是否安装,显示控制器和远程显示设置是否启用。
  • 云服务器VNC/串口控制台:检查服务器端是否安装中文字体,浏览器控制台字符集是否为 UTF-8。
  • KVM/libvirt:使用 virsh console 时,需要配置串口和内核参数,否则可能只显示部分字符。

Linux 系统可先运行:

locale
echo $LANG
localectl status

LANG 或 LC_ALL 是 POSIX、C,中文大概率显示异常,临时切换:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

永久设置可编辑 /etc/default/locale 或 /etc/locale.conf,再运行:

sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8

Debian/Ubuntu 安装中文字体:

sudo apt install fonts-noto-cjk fonts-wqy-zenhei
fc-cache -fv
fc-list :lang=zh

CentOS/RHEL 系可安装:

sudo yum install wqy-zenhei-fonts wqy-microhei-fonts

远程桌面乱码:Windows RDP和xrdp优先查字体

Windows 远程桌面协议通常使用 Unicode,但传统程序仍受区域设置影响,路径:控制面板 → 区域 → 管理 → 非Unicode程序语言 → 改为“中文(简体,中国)”,重启后生效,据微软官方文档,这个设置会影响未采用 Unicode 的旧程序字符显示。

Linux 的 xrdp 乱码,多数是服务端缺少中文字体或会话语言未设置,检查 /etc/xrdp/startwm.sh,在启动桌面环境前加入:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

然后重启 xrdp:

sudo systemctl restart xrdp

SSH终端乱码:Linux的locale是总开关

SSH 本身传输字节流,乱码多来自服务端 locale 和客户端终端编码不一致,行业共识认为,跨平台环境应优先统一为

虚拟机链接乱码怎么办?教你解决连接显示异常问题,虚拟机显示乱码如何修复

UTF-8,检查顺序:

  1. 服务端运行 locale,确认 LANG 和 LC_。
  2. 客户端终端编码设为 UTF-8,Windows Terminal、Xshell、iTerm2。
  3. 终端字体选择支持中文的等宽字体,如 Noto Sans Mono CJK SC、更纱黑体,乱码用 iconv 转换:iconv -f GBK -t UTF-8 old.txt -o new.txt。
  4. 文件名乱码用 convmv:convmv -f GBK -t UTF-8 -r --notest 目录。
场景 典型表现 优先检查 快速操作
云服务器VNC控制台 开机日志中文变方块 中文字体、locale 安装 fonts-noto-cjk,设置 LANG=zh_CN.UTF-8
本地VMware控制台 登录界面中文乱码 VMware Tools、系统语言 安装 open-vm-tools,改区域设置
Windows RDP 老程序菜单乱码 非Unicode程序语言 区域设置改为中文并重启
Linux SSH 命令输出问号 终端编码、服务端locale 终端设为UTF-8,服务端改locale
KVM virsh console 串口登录显示不全 内核串口参数 配置 console=ttyS0 和 serial-getty

云服务器虚拟机控制台乱码和本地VMware乱码有什么区别

这两个场景经常被混在一起,但排查入口不同,云服务器你拿不到物理显示器,只能通过 VNC、串口或 Web 控制台;本地 VMware 更接近完整图形环境。

云服务器侧:VNC、串口、Web控制台

云厂商的 Web 控制台通常基于 HTML5 VNC,乱码常见原因有三个:

  • 服务器系统没有安装中文字体。
  • 系统 locale 没配置成 UTF-8。
  • 浏览器或剪贴板编码转换异常。

处理路径:

sudo apt update
sudo apt install fonts-noto-cjk
sudo localectl set-locale LANG=zh_CN.UTF-8
sudo reboot

如果用的是串口控制台,还要检查 /etc/default/grub:

GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"

更新 grub 并启用串口登录:

sudo update-grub
sudo systemctl enable serial-getty@ttyS0
sudo systemctl start serial-getty@ttyS0

本地虚拟化侧:VMware Tools与显示驱动

本地 VMware 乱码常和增强工具、显示驱动、客户机系统语言有关,检查:

  • VMware Workstation:虚拟机 → 安装 VMware Tools。
  • ESXi:确认虚拟机选项里客户机操作系统类型正确。
  • Linux 客户机:安装 open-vm-tools 和 open-vm-tools-desktop。
  • Windows 客户机:安装 VMware Tools 后重启。
sudo apt install open-vm-tools open-vm-tools-desktop
sudo systemctl restart vmtoolsd

虚拟机链接乱码怎么办?教你解决连接显示异常问题,虚拟机显示乱码如何修复

区别对比:先修服务端,再调客户端

云服务器乱码,优先修服务器端字体和 locale;本地 VMware 乱码,优先修增强工具和客户机区域设置,北京虚拟机远程连接乱码处理时,若走政务云或企业内网,还要确认安全终端、跳板机是否做了字符转码,有些跳板机默认 GBK,后端是 UTF-8,中间就会把中文打乱。

北京虚拟机远程连接乱码处理:编码、字体、区域设置逐项排查

地域不影响底层原理,但北京地区企业内网、混合云、专线接入场景多,跳板机、堡垒机、旧业务系统更容易叠加编码问题,按下面顺序逐项排查,别跳步。

先看服务端locale

登录服务器后执行:

locale
locale -a | grep zh_CN

如果没有 zh_CN.utf8,先生成,Debian/Ubuntu:

sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8

CentOS/RHEL:

sudo localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
sudo localectl set-locale LANG=zh_CN.UTF-8

再装中文字体

没有字体,locale 对了也可能显示方块,检查:

fc-list :lang=zh

如果输出为空,安装字体:

sudo apt install fonts-noto-cjk fonts-wqy-microhei
sudo fc-cache -fv

调整客户端终端

Windows Terminal 可在 settings.json 中设置:

"profiles": {
  "defaults": {
    "font": {
      "face": "Noto Sans Mono CJK SC"
    }
  }
}

Xshell、SecureCRT、PuTTY 均需把终端编码设为 UTF-8,PuTTY 路径:Window → Translation → Remote character set → UTF-8。

文件名和日志乱码单独处理

系统 locale 修好后,历史文件名和日志不会自动恢复,文件名用 convmv用 iconv,如果日志是 GBK,查看时临时转换:

iconv -f GBK -t UTF-8 app.log | less

数据库连接乱码还要查客户端字符集,MySQL:

SHOW VARIABLES LIKE 'character_set%';

虚拟机远程桌面连接显示乱码怎么解决

远程桌面乱码要分 Windows RDP、Linux xrdp、浏览器 HTML5 控制台三类。

Windows RDP显示乱码

优先检查两端区域设置,客户端和服务端都设为中文(简体,中国),管理语言设置里非 Unicode 程序语言也设为中文,安装缺失字体,尤其是宋体、微软雅黑、等宽字体,老系统可把 .rdp 文件中的 drivestoredirect 和剪贴板重定向先关闭测试。

Linux xrdp显示乱码

确认 xrdp 会话加载了正确 locale,编辑 /etc/xrdp/startwm.sh,加入:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

虚拟机链接乱码怎么办?教你解决连接显示异常问题,虚拟机显示乱码如何修复

重启:

sudo systemctl restart xrdp

如果桌面环境是 Xfce、MATE,还要在会话启动项里设置语言。

浏览器HTML5控制台乱码

浏览器控制台乱码常和 WebSocket 字符集、剪贴板编码有关,换 Chrome/Edge 新版本,检查页面编码为 UTF-8,禁用会改写请求的浏览器插件,云厂商控制台若支持切换“编码模式”,可尝试 UTF-8 和 GBK 对比。

虚拟机连接显示异常收费吗?自己修还是找运维支持

多数软件层乱码可以自己修,成本主要是时间,付费支持通常出现在云厂商增值服务、第三方运维、专线或堡垒机厂商侧。

免费手段

  • 修改 locale、安装字体、调整终端编码。
  • 重装增强工具、更新远程桌面组件。
  • 用 iconv、convmv 转换历史文件。
  • 查看云厂商公开文档和工单基础支持。

付费支持适用场景

  • 生产环境无法停机,需要厂商远程协助。
  • 乱码伴随业务中断、数据库字符集损坏。
  • 堡垒机、跳板机、专线设备策略复杂,内部无权限修改。
  • 需要数据恢复或批量转码,风险较高。

费用通常按次、按包月或按服务等级计费,受地域、响应时间和设备类型影响,北京地区企业若走本地服务商,报价可能包含上门和合规审计成本,先确认是否在维保范围内,再决定付费。

预防乱码比事后修复更省事

统一UTF-8

新建虚拟机时,系统语言、终端、数据库、应用配置都选 UTF-8,跨平台交换文件时,避免 GBK 和 UTF-8 混用。

模板和快照

把装好中文字体、配好 locale 的虚拟机做成模板,出现乱码时,先用快照回退测试,再改生产配置。

远程工具固定配置

团队统一远程工具和字体,Xshell、Windows Terminal、VS Code Remote 都保存 UTF-8 配置,减少个人环境差异。

虚拟机链接乱码怎么办?常见Q&A

虚拟机链接乱码重装系统有用吗?

多数情况下没用,乱码多由编码、字体、区域设置引起,重装后如果仍用默认 POSIX locale 或缺少中文字体,问题会复现,先按 locale、字体、终端编码三步排查。

为什么同一台虚拟机,本地正常,远程连接却乱码?

本地控制台和远程通道使用的字符集、字体、协议不同,RDP 偏 Unicode,VNC 和串口更依赖服务端 locale 与字体,远程跳板机若做 GBK 转码,也会导致本地正常、远程乱码。

虚拟机连接显示异常收费吗?

基础排查通常不收费,云厂商基础工单和公开文档可免费使用,涉及生产环境紧急恢复、数据库字符集修复、堡垒机策略调整时,可能产生按次或包月费用,具体以服务协议和维保范围为准,先排查编码、字体和区域设置,再考虑付费支持,是更稳妥的处理路径。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱