我在安装全新 VNC 服务器时遇到了一些奇怪的问题。我最近构建了一个新的 Plex 服务器,它运行的是 gnome Ubuntu 16.04。到目前为止,我已经启动并运行了 openSSH 服务器和 Google 2FA 身份验证。现在我正在努力让 vnc 正常工作,以便最终可以无头运行它,并在需要时通过 SSH 使用 vnc 远程访问它。
我开始跑步只是:
sudo apt-get install vnc4server
然后,运行 vncserver 进行配置并设置密码,到目前为止一切顺利。
然后我转到我的客户端电脑 (Windows 10),并尝试不使用 SSH 进行连接,以确保它正常工作。这是第一个问题,连接后,我只看到一个灰色屏幕,我认为这是因为桌面环境在连接后无法正确启动,我认为我可以通过修改 ~/.vnc/xstartup 文件来解决这个问题。
回到服务器上,我运行:
sudo gedit ~/.vnc/xstartup
现在我收到一个错误,每当我尝试以 sudo 身份打开 GUI 应用程序时,该错误都是:
[sudo] password for username:
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
(gedit:12145): Gtk-WARNING **: cannot open display: :0
现在我迷路了。我 100% 确定这与 VNC 有关,但即使关闭 VNC 服务器也无法解决问题。
有人有什么想法吗?我现在只是在原地打转,感到很沮丧。
答案1
最近,我在 Raspberry Pi 上使用 VNC 时遇到了麻烦。我在客户端遇到了与您类似的错误。我决定安装 TightVNCserver 而不是默认服务器,因为 TightVNC 获得了很多好评。您可以在服务器上安装 TightVNC(sudo apt-get install tightvncserver)。首先停止其他 VNC 服务器软件或将其删除。然后,要测试 TightVNC,您需要以普通用户身份登录并设置 VNC 密码。
$tightvncpasswd
之后,以普通用户身份在您的服务器上启动tightvnc。
$ tightvncserver
这将在您的服务器上启动 VNC。
然后在本地机器上执行以下操作,建立 ssh 隧道:
$ ssh -v 远程用户名@远程主机名 -L 5901:localhost:5901
这是必要的,因为 VNC 默认在本地主机运行,但也需要防止纯文本流量。
之后启动 Remmina 客户端,并将其配置为使用您创建的远程用户名和 VNC 密码连接到 localhost:5901。
当此测试正常运行时,您可以继续在服务器上创建启动时启动脚本,或者决定在每次重启后手动使用它。
除了 VNC,我认为 x2go 更好用。远程桌面解决方案非常棒。X2go 可在 Ubuntu 存储库中找到。有关更多信息,请查看此处: