内容纲要

hyper-v VNC依托于freerdp-webconnect wsgate:

https://cloudbase.it/freerdp-html5-proxy-windows/

Hyper-v服务器需要处理:

添加vnc权限

新建连接账户

net user username password /add
net localgroup users username /delete

添加虚拟机权限

Grant-VMConnectAccess -UserName username -VMName vmname

删除vnc权限

删除虚拟机权限

Revoke-VMConnectAccess -UserName username -VMName vmname

删除用户

net user username /delete

VNC URL服务器需要处理的参数参考index.html(json):

                       {"host"   : "43.228.78.44"
                       ,"port"   : "2179"
                       ,"pcb"    : "67db974d-004a-494b-9aff-78b23f40d913"
                       ,"user"   : "username"
                       ,"pass"   : "password"
                       ,"perf"   : parseInt($('perf').value.trim())
                       ,"fntlm"  : parseInt($('fntlm').value.trim())
                       ,"nowallp": parseInt($('nowallp').checked ? '1' : '0')
                       ,"nowdrag": parseInt($('nowdrag').checked ? '1' : '0')
                       ,"nomani" : parseInt($('nomani').checked ? '1' : '0')
                       ,"notheme": parseInt($('notheme').checked ? '1' : '0')
                       ,"nonla"  : parseInt($('nonla').checked ? '1' : '0')
                       ,"notls"  : parseInt($('notls').checked ? '1' : '0')
                       ,"dtsize" : $('screen').width + 'x' + $('screen').height
                       };
  • host:Hyper-v母机IP

  • port:默认所有的端口都为2179

  • pcb:Hyper-v 虚拟机GUID

  • user: Hyper-v 虚拟机授权访问的用户名

  • pass:Hyper-v 虚拟机授权访问的用户名密码

  • 其他参数可以暂时不管

    • perf:网络性能模式 0|1|2(LAN|Broadband|Modem)默认LAN

    • fntlm:网络身份验证模式 0|1|2(disabled|NTLM v1|NTLM v2)默认disabled

    • nowallp:禁用壁纸(type:checkbox)默认开启

    • nowdrag:禁用窗口拖拽(type:checkbox)默认禁用

    • nomani:禁用菜单动画(type:checkbox)默认开启

    • notheme:禁用主题(type:checkbox)默认开启

    • nonla:禁用网络级别验证(type:checkbox)默认开启

    • notls:禁用TLS(type:checkbox)默认开启

    • dtsize:窗口大小(自适应)

      手动连接示例(给用户的不开启):

image-1615968805580.png

考虑的问题

  1. 建议默认创建云服务器名为username,vnc密码为pass。

  2. vnc连接页面需要修改。

  3. 发送到wsgate的json数据不能被用户看到,需要隐藏。

  4. 判断用户1-2分钟内没有操作VNC,删除连接权限,需要连接时再重新授权。

  5. 连接时应该加验证参数,验证用户cookie一致。

  6. VNC URL服务器单独找一个服务器安装,Hyper-v服务器设置2179连接IP限制。