我正在尝试从我的 centos 5.10 机器设置 ssh 隧道 vnc 连接,并且一直在关注一些在线教程,例如这个:https://wiki.archlinux.org/index.php/Vncserver。我正在像这样运行服务器:$ vncserver -geometry 1024x768 -localhost :1
并像这样连接到 openssh 客户端:。然后我使用 realvnc viewer 连接到 localhost:5900。出于某种原因,如果我使用 -localhost 参数,这不起作用,但如果我省略它,它会很好地工作。所有指南都说使用它更安全。我想这可能是服务器端的配置问题,但我目前几乎不知所措,我已经尝试了很多东西。有人能告诉我为什么会发生这种情况吗?ssh -f [email protected] -L 5900:vnc.machine:5901 -N
答案1
该-localhost
选项告诉 VNC 服务器仅绑定到环回接口,这样您只能从运行 VNC 服务器的机器连接到 VNC 服务器。这意味着任何试图闯入您的 VNC 会话的人都必须能够进入该特定机器。如果没有 ,-localhost
您的 VNC 服务器将接受非本地连接,因此攻击者可以使用另一台机器尝试闯入您的 VNC 会话。
如果您要使用-localhost
,那么您应该传递-L 5900:localhost:5901
,而不是-L 5900:vnc.machine:5901
,因为您的 VNC 服务器只在环回(本地主机)接口上监听。
答案2
jjlin
的答案涵盖了故障排除,但要真正确保安全,您还应该传递-nolisten tcp
给。这确保事物端vncserver
不会有开放的 TCP 侦听器。X