前言
早些时候,我在家里部署了PVE,并通过FRP穿透到了公网去,但是当我需要访问家庭路由器时,却得需要一个桌面环境,我才能很好地在浏览器控制我家中设备,而非穿透整个局域网。(Debian12)
目前,最新的tigerVNC变得奇奇怪怪的,下面文章已经过审查与修订。使得VNC可以使用。或许是我的技术问题,我实在没有在它们官方文档找到有用信息。
如果你讨厌新版本的各种问题,你可以试试旧版,网络上很多教程,或者在文章结尾处的引用。但是出于安全考虑,这里仅对新版本作介绍。一切源于我发现我自己写的博文不再可用。不过经过这次折腾,我已经对tigerVNC失去耐心,在今天修改过后,该博文在2025年3月23日永久归档!
或者..如非VNC,我建议你可以试试rdp,一般只需要5条命令,3分钟左右就可以完成。
如何给无可视化的Linux系统安装桌面环境?(RDP)
安装TigerVNC的服务端
我们更新一下源,之后再安装一下TigerVNC的服务端。请在root账户下 su root
apt update
apt install tigervnc-standalone-server tigervnc-common
一般来说,服务器并不自带桌面,如果是服务器或者没有桌面环境,可以通过下面的命令来安装桌面环境。安装会需要点时间。
# GNOME
# apt install task-gnome-desktop
# 上面的GNOME桌面测试不通过,没有太多时间测试,在修订中被删除。请使用下面的xfce4,而不是GNOME。
# XFCE
apt install xfce4 xfce4-goodies
配置VNC服务器
1.创建或编辑 VNC 的配置文件:
mkdir /root/.vnc
vim ~/.vnc/xstartup
## 记得在root下。就是/root/.vnc
XFCE桌面配置:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4
该区块只是错误示范:
#########################################################
下面GNOME随着修订被遗弃,还有一个问题,来自于【&】,因为新版tigerVNC希望先在前台运行一下,这里的【&】会报错。这个修改很抽象。
#!/bin/bash # 错误示范,请勿照抄
xrdb $HOME/.Xresources # 错误示范,请勿照抄
gnome-session & # 错误示范,请勿照抄
#########################################################
2.给予 xstartup 文件可执行权限:
chmod +x ~/.vnc/xstartup
3.第一次启动VNC服务|设定密码:
vncserver
在第一次启动时,会向你取要密码,如下
vncserver
#(tigervncserver)
You will require a password to access your desktops.
Password: # 输入第一次密码,6-8位
Verify: # 验证第一次输入的密码,6-8位
Would you like to enter a view-only password (y/n)? n # 是否创建一个只查看的用户(只能看),n就行。
如若上面不是你想要的设定,或者你想重新设置一个只能查看的用户。只需要执行:
vncpasswd
启动VNC服务
一般启动会报错,总之就是各种问题。。
你可以通过 ps -ef | grep tigervnc
查看启动的vnc进程,并kill它。
(请记住,无论如何,只要使用了grep,就总是会查找到一个进程,这个进程会一直变化,因为这个进程是grep,和你查找的内容无关)。
在你安装完桌面环境后,以及配置好密码,也就是到了这一步了,请先重启服务器
在本地服务器只有tty的情况下,你会发现重启进入了一个桌面环境。
完成重启后,请不要直接使用 vncserver
或者 tigervncserver
命令启动vnc服务器,这样启动即便成功了,你也连接不上。。。
使用下面命令启动:
vncserver :1 -localhost no
# 这里的:1指的是默认端口5901,:1代表1。:2则是5902。此处可以省略。
# 但是-localhost no不能省略,省略后无法连接
如果你只想vnc一个终端:
vncserver -xstartup /usr/bin/xterm :1 -localhost no
连接:
学会用 ps -ef | grep tigervnc
。这个命令还能看到vncserver启动参数。还有,你记得安装好桌面以及设置好密码后就重启服务器吗?
1.确保vncserver在运行。
2.确保没有防火墙阻拦(或者说放行了端口)
3.使用了 -localhost no
参数
有什么问题可以通过 ps -ef | grep tigervnc
查看启动的vnc进程,看它的参数,或kill它。
如今,你应该就可以通过VNC连接软件进行连接了。密码源自于你设置的密码,而不是服务器root密码。
系统服务/守护进程
不再介绍系统服务设置(修订中删除)
疑难杂症
1.默认端口是5901,:1代表1。:2则是5902。此处可以省略。
2.-localhost no不能省略,省略后无法连接,这个指的可不是本地访问,而是决定其他计算机是否可以访问的。
3.当你 xstartup 文件不存在时,就得自己指定一个。如:vncserver -xstartup /usr/bin/xterm :1 -localhost no
就会vnc一个终端出去。
4.如果出现各种问题,如黑屏之类的,请查看是否在虚拟环境或者其他模式下启动。确保在真实的系统环境下启动。
5.有防火墙吗。你确定防火墙放行了吗?
本文有参考:
unix.stackexchange – 785500 疑难杂症【&】
Ubuntu 20.04 安装多用户VNC(基于gnome) 其介绍了旧版的tigerVNC如何设置使用,以及一些新版的疑难杂症。
发表回复