我希望您能帮助我解决以下问题。我会尽量提供尽可能多的详细信息。
我最近在Centos8虚拟机上安装了vnc服务器。我已经完成了所有配置步骤,这些步骤都在这个文件,(顺便说一下,这是 vnc 建议使用的,因为我认为 vnc 已更新,配置方法与以前不同)。完成此操作后,服务器即可正常工作。(显然)当我想从另一台虚拟机(Fedora)连接时,问题出现了,服务器拒绝连接并给出以下错误:
在服务器中我执行以下指令
vncviewer localhost:5901
我咨询了一些论坛,有人提到这是防火墙问题导致通信无法通过。因此,在两个虚拟机上禁用防火墙和 Selinux,但问题仍然存在。我知道服务器运行正常,因为我得到了以下输出。
[root@localhost andres]# systemctl status vncserver@:1
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset:>
Active: active (running) since Mon 2021-03-01 13:21:07 EST; 1h 7min ago
Process: 978 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCE>
Main PID: 994 (vncsession)
Tasks: 1 (limit: 11260)
Memory: 1.5M
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
‣ 994 /usr/sbin/vncsession andres :1
我还分配了这些端口,它们告诉我服务器正在监听
[root@localhost andres]# netstat -tunlp | grep 5901
tcp 0 0 127.0.0.1:5901 0.0.0.0:* LISTEN 1381/Xvnc
tcp6 0 0 ::1:5901 :::* LISTEN 1381/Xvnc
也许它看起来像下面的重复问题论坛确实如此,我只是找不到关系,因为 vnc 已更新,配置不一样(即,要启动服务器,我不能再输入命令“vncserver”),我认为解决方案不会相同
答案1
我怀疑您仍在运行防火墙或配置使用 localhost,但没有使用隧道。在下面的步骤中,我展示了如何打开 vnc 端口并使用隧道。
我不确定您安装了哪个 vnc,但使用 tigervnc,我做了以下操作:
- 以 root 身份编辑
/etc/tigervnc/vncserver-config-defaults
并session=gnome
在底部添加(我使用 gnome)。如果取消注释,localhost
则需要建立安全隧道。如果要限制哪些 IP 接受连接,请添加一行,interface=x.x.x.x
其中 xxxx 是您的主机的 IP。 - 以 root 身份编辑
/etc/tigervnc/vncserver.users
并添加每个允许连接的用户的 display=user(不建议使用 root);在我的例子中:1=user1
,对应于 vnc 端口 5901。 - 作为用户,创建一个密码
vncpasswd
(这将是客户端使用的密码) - 以 root 身份为用户启动 vnc,
systemctl start vncserver@:1
- 以 root 身份打开 vnc 端口:
firewall-cmd --permanent --add-port=5901-5999/tcp
- 重新启动防火墙:
systemctl restart firewalld
- 找到你的 IP:(
ip addr | grep inet
不要选择本地主机,也不要选择网关,在我的情况下是 192.168.122.40 - 登出
此时,vnc 服务器正在运行,监听端口 5901,对应用户(在我的情况下是用户 1)的显示 :1。
您需要在其他虚拟机甚至本地系统上安装 vnc 查看器。
如果您localhost
在vncserver-config-defaults
文件中取消注释,则从本地计算机启动隧道ssh -L 5901:localhost:5901 user@server
(退出此连接将关闭隧道,如果您始终希望它打开,ssh -N -f -L 5901:localhost:5901 user@server
)。在本地计算机上打开另一个窗口以从命令行运行 vncviewer。
启动 vncviewer,在服务器框中输入 IP:端口(在我的情况下192.168.122.40:5901
是单击 )Connect
。如果我已启动隧道,则服务器将是localhost:5901
。
当提示输入密码时,输入您提供给 vncpasswd 的密码。这样就建立了连接。
此时,您的 gnome 会话已启动并可查看。您可能需要按 Enter/Return 键才能提示输入凭据。
当您注销时,vncserver 很可能也会关闭,但我没有进一步研究如何让 vncserver 自动为用户重新启动。