内容纲要
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:窗口大小(自适应)
手动连接示例(给用户的不开启):
考虑的问题
-
建议默认创建云服务器名为username,vnc密码为pass。
-
vnc连接页面需要修改。
-
发送到wsgate的json数据不能被用户看到,需要隐藏。
-
判断用户1-2分钟内没有操作VNC,删除连接权限,需要连接时再重新授权。
-
连接时应该加验证参数,验证用户cookie一致。
-
VNC URL服务器单独找一个服务器安装,Hyper-v服务器设置2179连接IP限制。