Windows 10笔记本无法通过SSH隧道连接VNC服务器的排查求助
Windows 10笔记本无法通过SSH隧道连接VNC服务器的排查求助
我遇到了一个很费解的问题:家里的Windows 10台式机可以通过WSL建立SSH隧道,顺利连接到远端的VNC服务器,但完全相同的操作在我的Windows 10笔记本上却行不通,想请大家帮忙分析下两台机器之间的差异点在哪里。
台式机的成功操作流程
在家用台式机上,我是这么完成连接的:
- 在WSL里执行SSH隧道命令,加密VNC连接:
ssh -L 59000:localhost:5901 -C -N -l <username> $VNC_IP - 打开UltraVNC客户端发起连接,能成功连上。此时服务器上的
/home/<user>/.vnc/localhost:1.log日志会输出以下内容:31/08/23 08:36:05 Got connection from client 127.0.0.1 31/08/23 08:36:12 rfbProcessClientProtocolVersion: client gone 31/08/23 08:36:12 Client 127.0.0.1 gone 31/08/23 08:36:12 Statistics: 31/08/23 08:36:12 framebuffer updates 0, rectangles 0, bytes 0 Xlib: extension "DPMS" missing on display ":1.0".
笔记本的失败情况
但在笔记本上,我完全照搬同样的操作,却出现了问题:
- 不管用UltraVNC还是TightVNC客户端,都无法建立连接
- 服务器上的
/home/<user>/.vnc/localhost:1.log日志完全没有任何新的连接记录
已完成的排查步骤
我在两台机器上都做了以下测试,结果完全一致:
- 在WSL里用telnet连接本地的59000端口,能成功连通,还能看到VNC的协议信息:
$ telnet localhost 59000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. RFB 003.008 ^] telnet> quit Connection closed. - 检查SSH隧道状态,用
netstat -lpnt能看到隧道已经在监听59000端口:$ netstat -lpnt (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:59000 0.0.0.0:* LISTEN 29880/ssh tcp6 0 0 ::1:59000 :::* LISTEN 29880/ssh - 关掉笔记本的防火墙,问题依旧没有解决
后续测试的发现
EDIT1:直接连接测试
我在服务器上关闭了防火墙(sudo ufw disable),然后笔记本不用SSH隧道,直接连VNC服务器,居然成功了!这会不会是SSH隧道之间存在冲突?
EDIT2:重启后的变化
我把笔记本重启了一次,然后重新建立SSH隧道,居然能正常连接VNC服务器了!
现在我还是搞不懂,为什么一开始笔记本的SSH隧道没法正常转发VNC流量?大家有没有遇到过类似的情况,或者有什么其他排查方向可以指点下?
备注:内容来源于stack exchange,提问作者Alexey Starinsky
相关产品推荐
相关产品推荐

