这篇文档纯原创,极大地为GPU服务器的疑难场景排障提供思路
vnc server软件比较多,有些vnc server在rdp远程情况下无法配置,比如https://www.realvnc.com/en/connect/download/vnc/
我们选用在远程情况下能配置的,为啥一定要远程情况下配置,因为GPU机器vnc用不了呀。远程情况下配置vnc server采用的方案是:服务端TightVNC 客户端VNCViewer
从这里下载vnc server安装在gpu服务器里
https://www.tightvnc.com/download.php
安装最后一步选Do not change → OK → Finish
然后在右下侧找到vnc server的图标右击点configuration,如果右下角没找到,就去开始菜单找
配置的时候在这里设置密码,设置好后在服务列表里找到TightVNC Server重启下服务
最后,5900端口得在安全组放行下
内网用的话,用内网IP:5900去连接
外网用的话,用外网IP:5900去连接
注意:vnc5900/59xx/5800/58xx端口可能会被运营商拦截,我有次用阿里云ECS做客户端连不上,用腾讯云CVM做客户端能连上,后确认是运营商拦截。如果你vnc客户端连不上,找个同子网的云服务器做客户端安装vnc viewer。
vnc viewer需要如图发送ctrl alt del后手动输入Administrator密码
以下部分已经跟自建vnc无关了,而是介绍GPU机器控制台vnc不能用的破解办法:
连上自建vnc后,在桌面右键 → 显示设置 → 扩展这些显示器 → 仅在1上显示,这样控制台vnc就可以使用了,如果控制台vnc里鼠标不同步,也是按【桌面右键 → 显示设置 → 扩展这些显示器 → 仅在1上显示】来操作一次就正常了。
还有一种办法可以让安装了显卡驱动的GPU机器的VNC能正常使用(仅限OS问题排查,排查完毕后要复原回去),那就是想办法让操作系统在开机时不加载显卡驱动
NVIDIA有2个服务、1个驱动,其中那个驱动是开机启动项,光从服务列表禁用那2个服务是不管用的,得禁止那个驱动
2个服务注册表路径如下:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNVDisplay.ContainerLocalSystem
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNVWMI
1个驱动注册表路径如下:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesnvlddmkm
禁止显卡驱动的命令:
reg add "HKLMSYSTEMCurrentControlSetServicesnvlddmkm" /v "Start" /d 4 /t REG_DWORD /f
reg add "HKLMSYSTEMControlSet001Servicesnvlddmkm" /v "Start" /d 4 /t REG_DWORD /f
二选一执行
恢复显卡驱动的命令:
reg add "HKLMSYSTEMCurrentControlSetServicesnvlddmkm" /v "Start" /d 3 /t REG_DWORD /f
reg add "HKLMSYSTEMControlSet001Servicesnvlddmkm" /v "Start" /d 3 /t REG_DWORD /f
二选一执行