SSH远程登录:
ssh服务搭建
# 安装ssh服务:
sudo apt-get install ssh
# 启动SSH服务:
sudo /etc/init.d/ssh start
# 开机自启
sudo systemctl enable ssh
#客户端连接
ssh usename@remote host IP
图形远程登录:
ubuntu 在用户级别下创建了一个远程桌面服务,具体文件是 /usr/lib/systemd/user/gnome-remote-desktop.service
。这个服务开机是不会自动启动的,需要开机后首次进行登录才会启动,此时才可以进行远程桌面连接。
但是 ubuntu 在锁屏的时候为了安全,锁屏时会断开远程桌面连接,并且没有提供在锁屏时也可以远程桌面的功能。所以此时需要通过安装扩展来进行配置:
$ sudo apt install gnome-shell-extension-manager
安装 gnome 的扩展管理器后打开,并在 browser 页里搜索 allow locked remoted desktop
,点击进行安装即可。注意,这里如果配置了代理,可能出现闪退的情况。
此时在ubuntu gnom3下开机初次登录,锁屏后可通过VNC登录;但在开机初次不登录情况下仍无法远程登录界面。
在Ubuntu系统中,要实现未登录情况下启动远程桌面,你需要配置VNC服务器。以下是配置VNC服务器的步骤:
安装VNC服务器软件:
sudo apt-update
sudo apt-get install tightvncserver
设置VNC密码:
vncpasswd
-
创建一个新的VNC服务脚本或者修改现有的启动脚本。例如,创建一个新的系统启动脚本:
sudo nano /etc/init/tightvnc.conf
-
在tightvnc.conf文件中添加以下内容:
start on login-session-start
stop on login-session-end
script
export USER="ubuntu" # 替换为你的用户名
export HOME="/home/ubuntu" # 替换为你的用户主目录
tightvncserver -geometry 1280x1024 :1 -depth 24 -password /home/ubuntu/.vnc/passwd
end script
-
保存文件并重新启动系统,以使更改生效。
现在,当系统启动时,即使没有用户登录,VNC服务也会自动启动。你可以使用VNC客户端(如TightVNC Viewer或RealVNC Viewer)连接到Ubuntu服务器,无需实际登录到图形桌面环境。
上述操作后在Ubuntu系统未登录情况下仍无法启动远程桌面。
Linux 系统上两种常用的图形显示服务器协议,Xorg 和 Wayland。
Xorg 是传统的图形显示服务器,它是 X Window 系统的实现之一,也是最常用的版本。Wayland是一种新的图形显示服务器协议,旨在取代 Xorg,并解决 Xorg 中存在的一些问题。Ubuntu17开始引入Wayland,Ubuntu 默认情况下使用 Wayland 作为其图形显示服务器,但用户仍然可以选择在登录时使用 Xorg。 在 Wayland中,每个应用程序都有自己的窗口管理器,这些窗口管理器直接与硬件交互,而不是通过中间的显示服务器(如Xorg)。这种设计使得在远程桌面环境中难以捕获和传输图形数据。此外,Wayland的安全性模型要求严格的权限控制,远程访问会涉及到跨越这些权限边界的问题。
前Wayland对远程桌面支持不好,VNC和向日葵不支持Wayland协议,我目前也没有找到好用的适配Wayland协议的远程桌面软件,所以想用VNC和向日葵,只有切回Xorg。
$ sudo vim /etc/gdm3/custom.conf
将#WaylandEnable=flase解注释
$ sudo systemctl restart gdm3
在服务器安装了x11vnc服务,无论是使用systemd服务开机自启动还是使用“启动应用程序”功能,都必需得登陆ubuntu桌面环境,这会给服务安全带来隐患,下面是终极解决方案。
使用systemd服务配合lightdm实现不登陆启动
由于ubuntu默认使用gdm3管理用户登陆,只有用户登陆后系统才会启动显示服务(X DISPLAY / X server),而x11vnc必需运行X server服务后才能被运行成功,所以用户没有登陆桌面系统时x11vnc启动都会报以下类似错误“*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.”。所以使用gdm3不登陆执行x11服务比较困难,建议使用lightdm进行登陆管理。
apt install lightdm
##安装lightdm并根据弹出提示选择使用lightdm
nano /lib/systemd/system/x11vnc.service
##创建x11vnc服务配置文件添加以下内容
[Unit]
Description=x11vnc service
After=display-manager.service network.target syslog.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -auth '/run/lightdm/root/:0' -forever -rfbauth /home/<your username>/.vnc/passwd -rfbport 5901 -shared -capslock -repeat -nomodtweak -noxdamage
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
[Install]
WantedBy=multi-user.target
##设置x11vnc开机自启
systemctl enable x11vnc
虽然使用lightdm可能实现不登陆自启动x11vnc,但由于lightdm本身是轻量极的,功能没有gdm3强大,如:gnome shell扩展似乎是不能用的,这给系统使用带来不小影响。
上述操作后在未登录ubuntu情况下,可通过window自带的远程桌面连接(mstsc)远程连接,MobaXterm和RealVNC Viewer仍无法连接;初次登录后MobaXterm和RealVNC Viewer可连接;
切换回gnome3:
sudo dpkg-reconfigure gdm3
参考: