ubuntu远程桌面的三种实现方式

方式1: ubuntu 自带的vino的版本的vnc

步骤1,需要登录到ubuntu的桌面环境,找到设置, 然后找到Sharing选项

点击Screen Sharing,设置一个密码,注意Network选项是开启的

步骤2,取消加密协议

不用root用户运行,取消加密

1
gsettings set org.gnome.Vino require-encryption false

步骤3,使用苹果的屏幕共享货vnc viewer连接即可, 端口5900

方式2: 使用tigervnc

安装tigervnc, vncserver和vncconfig命令安装成功

1
apt install tigervnc-standalone-server

其它机器可以安装 客户端,如果需要连接vncserver

1
apt install tigervnc-viewer

默认使用当前用户连接VNC,如果需要使用其它用户连接VNC server,那么需要建立新的用户
设置VNC的连接密码

1
2
3
4
vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n #不设置只能查看的vnc密码

编辑用户下的配置文件

.vnc/xstartup
内容如下,这是专为Gnome准备的

1
2
3
4
5
6
#!/bin/sh
# Start Gnome 3 Desktop
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

可执行权限
chmod a+x .vnc/xstartup

启动vncserver

vncserver -localhost no #不是只监听localhost的端口

#查看启动的VNCserver
vncserver -list

#如果不使用VNC,可以选择kill掉, :1代表kill 5901端口
vncserver -kill :1

#vncserver的自启动服务
mkdir -p .local/share/systemd/user/

步骤4: 作为服务启动

#编辑用户的service
#cat .local/share/systemd/user/vncserver@.service

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=TigerVNC Service

[Service]
Type=forking
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -localhost no
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=default.target

#vim ~/.xinitrc #启动VNC的时候使用x11的session
export XDG_SESSION_TYPE=x11

#创建服务的xtartup脚本, 这个是用于服务的
sudo mkdir /etc/vnc
sudo cat /etc/vnc/xstartup

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
test x"$SHELL" = x"" && SHELL=/bin/bash
test x"$1" = x"" && set -- default

vncconfig -iconic &
"$SHELL" -l << EOF
export XDG_SESSION_TYPE=x11
export GNOME_SHELL_SESSION_MODE=ubuntu
dbus-launch --exit-with-session gnome-session --session=ubuntu
EOF
vncserver -kill $DISPLAY

#设置可执行
sudo chmod a+x /etc/vnc/xstartup

#用户的服务reload, 只能这个用户启动
systemctl daemon-reload –user
systemctl restart vncserver@1.service –user
systemctl status vncserver@1.service –user
#加到开机启动
systemctl enable vncserver@1.service –user

方法3:Ubuntu xrdp的安装方法, xrdp等同于vnc server,只是需要用微软的remote desktop工具连接

如果没安装Desktop环境,需要安装

sudo apt install tasksel -y
tasksel #选中Ubuntu desktop,然后开始安装
systemctl set-default graphical.target # 启动图像界面作为默认

安装xrdp

sudo apt install xrdp -y
sudo systemctl status xrdp
sudo systemctl enable xrdp
sudo usermod -a -G ssl-cert xxx #把你的当前用户xxx用户加入到ssl用户组,例如johnson
sudo vim /etc/xrdp/startwm.sh
#在前2行加入如下配置
Unset DBUS_SESSION_ADDRESS
Unset XDG_RUNTIME_DIR

sudo systemctl restart xrdp

如果启用了防火墙,需要配置3389可以访问

sudo ufw allow from 192.168.1.0/24 to any port 3389
sudo ufw reload

完成,可以用微软的远程桌面客户端工具开始连接, 也可以通过NAT映射出去一个端口,那么连接的时候直接用IP:PORT的

方式连接就可以

#日志位置
sudo tail -f /var/log/xrdp.log

#如果连接进行是黑屏,处理方法
echo “gnome-session -–session=gnome-fallback” > ~/.xsession
sudo /etc/init.d/xrdp restart

然后再删掉.xsession, 重启后就恢复了


ubuntu远程桌面的三种实现方式
https://johnson7788.github.io/2022/03/14/ubuntu%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2/
作者
Johnson
发布于
2022年3月14日
许可协议