问题如下:
笔记本(IP:10.100.172.194)上装了VNC Viewer,台机(IP:10.100.100.103)上装了VNC Server,原本笔记本连接无线网,可以通过VNC远程连接到办公网的台机的桌面,自从台机重装了系统后,重新安装了VNC Server,就连不上了,连过去的时候报错 The was refused by the ,见下图:
排查问题的过程:
一般VNC连接有问题,最有可能的是服务器端的5900端口没有开放,VNC Server的消息中心里也会提示端口被阻断,可以自行在服务器端防火墙上添加一条入方向的规则,允许访问5900端口,或者对Windows防火墙不太熟悉的话,粗暴一点直接重装VNC Server,安装时自动将服务端口添加例外即可,但这次问题有点不一样,具体排查过程如下:
1、首先一看提示连接被拒绝,网络应该是通了,只是数据包被拒绝了,感觉应该是被防火墙什么的安全策略阻挡了,首先检查了自己主机的防火墙,从来不会在Windows自带的防火墙上配置阻断规则的,只检查了有没有开放VNC Server使用的5900端口,果然已经添加了,因为VNC Server也没报错,而且安装的时候已经添加了例外;然后猜想是不是安全管理员新增了安全策略,阻断了通过无线网络访问办公网的VNC Server的权限,然后发现同事通过无线使用VNC远程桌面是正常的,排除了这个可能。
2、网络没问题,但在笔记本上telnet台机的5900端口,确实不通,在台机上抓访问5900端口的包也没收到,但是netstat查看台机上的5900端口是开启的,于是怀疑可能是软件问题,检查了VNC Server的授权正常,设置也没什么问题,服务器的信息中心也没报错,不管了,果断使用重装大法,重装了笔记本的VNC Viewer和台机的VNC Server,发现还是没什么卵用。
3、接着是一波关键测试,排除一下软件的问题,用我笔记本的VNC viewer连接同事台机上的VNC Server,发现可以连接,说明笔记本的VNC Viewer没问题;用同事笔记本的VNC Viewer连接我主机上的VNC Server,发现也可以连接,说明我主机上VNC Server也么有问题。
WTF?是时候冷静下来思考一波了。。。
那么问题就回到这个关键的节点:重装台机系统,这个前后发生了什么?
终于找到了忽略的关键:VNC客户端首次与VNC服务器建立连接时会保存服务器发来的公钥指纹,之后与同一台服务器(这个同一台是用IP地址来标识的)建立连接时,就不会重新接收同一个服务器的公钥指纹了,默认使用已保存的指纹进行验证。
重装之前,笔记本使用VNC Viewer连接过台机,就保存了那个时候台机VNC Server发来的指纹。
然后台机重装系统后,也重装了VNC Server,其公钥指纹也发生了变化。
但是客户端还是默认使用旧的指纹去与跟服务器握手,然额服务器已经不认识它了,就说你是谁啊,反手就是一瓜子。
另一方面客户端保存的服务器公钥指纹是写在注册表里的,所以后来即便重装了客户端的VNC Viewer,其旧的指纹还是在,所以它还是屡教不改,用旧的信物去握手,又被踢回来了。
所以解决方法就来了:
1、打开笔记本上的注册表,Win+R打开运行框,输入regedit打开注册表编辑器,找到VNC Viewer保存服务器指纹的表项:
计算机\\\RealVNC\\。(这个是网上搜的)
2、然后将已保存的VNC Server服务器(这里即台机10.100.100.103)的两个旧的指纹数据右键删除即可。
3、删除之后需要重启笔记本,修改的注册表才会生效。
4、重启之后,世界和平~
接收保存新的公钥指纹,输入VNC Server的验证密码,成功连接远程桌面。
这个问题已经有好几周了,开始搞了一下没搞好,后来没怎么用,也没去解决,今天下决心排查了一下,总算解决了,感觉神清气爽,还是要冷静下来,慢慢分析才行~
解决win10系统 L2TP连接尝试失败:ERROR因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
错误描述:当连接VPN是回传错误为“ L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误”
操作系统:win10家庭版
VPN设置:
常规选项:配置了需要连接目标server的IP地址。
安全选项:VPN类型如下图所示
网络选项:在ipv4属性中配置如下:
高级选项IP设置中取消了“在远程网络上使用默认网关”然后链接时报错。因为不了解VPN服务器的配置而且其他win7的系统能链接VPN,所以只能尽可能排查win10自己系统的问题。注意win10家庭版是没有本地安全组策略的,所以要么加域推送组策略否则没有太好的办法做策略。
在这里我们想查看服务是否启动,在这里查看到服务是没有开启的,这样我们手动触发一下。
但是发现还是不行。这个时候为什么不问问神奇的MSDN呢?(博主还是推荐遇windows的问题多去MSDN查询结果)。
这里我在MSDN中找到了一个答案,在下面附上链接:
文中说明如果发生了这种情况大多数的原因发生在Windows客户端计算机使用的加密级别与VPN服务器所使用的加密级别不匹配。例如,客户端计算机使用40位或56位RC4加密算法,并且VPN服务器仅支持128位RC4加密算法,将出现此问题。
针对客户端给出的解决办法就是添加了一条注册表记录。
添加客户端计算机上使用的 注册表项来更改加密设置路由和远程访问服务。
1. 创建 注册表项,并将其设置为 1 的值。
1. 单击开始,单击运行,键入regedit,然后单击确定
2. 在注册表编辑器中,找到并单击以下注册表子项︰
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
3. 在编辑菜单上,指向新建,然后单击DWORD 值。

4. 键入AllowL2TPWeakCrypto,然后按 enter 键。
5. 在编辑菜单上,单击修改。
6. 在数值数据框中,键入1,然后单击确定。
7. 在文件菜单上,单击退出以退出注册表编辑器。
2. 重新启动"路由和远程访问"服务和远程访问连接管理器服务。若要执行此操作,请按照下列步骤操作:
1. 单击开始,右键单击我的电脑,然后单击管理。
2. 展开服务和应用程序,然后单击服务。
3. 路由和远程访问,请用鼠标右键单击,然后单击停止。
4. 远程访问连接管理器中,用鼠标右键单击,然后单击停止。
5. 远程访问连接管理器中,用鼠标右键单击,然后单击开始。
6. 路由和远程访问,请用鼠标右键单击,然后单击开始。
请注意出于安全角度考虑,请在做修改注册表的1操作是将注册表先导出备份一个。以下是我未作修改注册表的原值:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters]
"AllowL2TPWeakCrypto"=dword:00000000
"AllowPPTPWeakCrypto"=dword:00000000
"KeepRasConnections"=dword:00000000
"Medias"=hex(7):72,00,61,00,73,00,74,00,61,00,70,00,69,00,00,00,00,00
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\

00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
72,00,61,00,73,00,6d,00,61,00,6e,00,73,00,2e,00,64,00,6c,00,6c,00,00,00
"ServiceDllUnloadOnStop"=dword:00000001
"MiniportsInstalled"=dword:0000ffff
(ps: AllowL2TPWeakCrypto )
或者更改参照给的另外一个方法:
方法 2︰ 更改在 VPN 客户端计算机上的加密设置
更改加密在客户端计算机的 VPN 连接中要使用的设置最大强度加密。执行此操作后,三重数据加密标准 (3DES) 加密用于建立 VPN 连接。若要更改客户端计算机的 VPN 连接的加密设置,请执行以下步骤︰
1. 单击开始,单击运行,请在打开框中,键入ncpa.cpl ,然后单击确定。
2. VPN 连接中,用鼠标右键单击,然后单击属性。
3. 单击安全选项卡,单击高级 (自定义设置),然后单击设置。
4. 在数据加密框中,单击最大强度的加密 (如果服务器拒绝将断开连接),然后单击确定两次。
重启之后可以再次尝试拨入VPN。一般情况下因该能够解决了,但是博主脸黑还是不行,那没办了,继续改注册表。
1.定位注册表\System\\\Rasman\
2. 在“编辑”菜单上,单击“新建”->“DWORD值”
3. 在“名称”框中,键入“”
4. 在“数值数据”框中,键入“1”,然后单击“确定”
(ps: “”=dword: ;使用RAS的L2TP功能[1=关闭])
这里附带贴上两个微软msdn使用netdiag和工具排L2TP/IPSec的排错方法
*请认真填写需求信息,我们会在24小时内与您取得联系。