我已按照中描述的所有步骤进行操作如何在 CentOS 7 上安装和配置 GNOME 桌面的 VNC 远程访问。
我能够启动 vncserver 服务
[root@server ~]# systemctl start vncserver@:1.service
[root@server ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2016-11-12 01:40:25 EET; 5s ago
Process: 32470 ExecStop=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Process: 3023 ExecStart=/usr/sbin/runuser -l user -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS)
Process: 3004 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3070 (Xvnc)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
‣ 3070 /usr/bin/Xvnc :1 -desktop server:1 (user) -auth /home/user/.Xauthority -geometry 1280x1024 -rfbwait 30000 -rfbauth /home/user/.vnc...
Nov 12 01:40:22 server systemd[1]: Starting Remote desktop service (VNC)...
Nov 12 01:40:25 server systemd[1]: Started Remote desktop service (VNC).
我删除了所有 iptables 规则
[root@server ~]# iptables -nvL
Chain INPUT (policy ACCEPT 2710 packets, 297K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 2515 packets, 478K bytes)
pkts bytes target prot opt in out source destination
防火墙已禁用
[root@server ~]# firewall-cmd --state
not running
端口 5901 已打开并正在侦听
[root@server ~]# netstat -tpln | grep "5901"
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 3070/Xvnc
tcp6 0 0 :::5901 :::* LISTEN 3070/Xvnc
我还有套接字文件 /tmp/.X11-unix/X1
但是当我尝试使用 IP:5901 通过 vncviewer 连接时,我收到相同的错误“连接被主机拒绝”。
我有多个服务器运行相同的配置,一切正常,但所有服务器都是在安装后配置的,不像这台服务器已经运行了相当长一段时间。服务器正在运行 CentOS 7。在没有物理访问它的情况下我可以做些什么(不擦除所有数据/重新安装操作系统)以使其正常工作?
答案1
修改防火墙后它对我有用:
sudo systemctl daemon-reload
sudo firewall-cmd --permanent --zone=public --add-port=5901/tcp
sudo firewall-cmd --reload
请注意,在我的例子中,端口号是 5901。
答案2
确保您可以使用 127.0.0.1 从服务器本身连接到端口 5901。如果服务器上没有显示器,您可以使用类似telnet 127.0.0.1 5901
或 的程序来执行此操作。socat stdin tcp:127.0.0.1:5901
确保网络中没有任何内容过滤到端口 5901 的流量。