X2Go介绍
x2go是一个轻量高性能的远程桌面工具,比VNC的带宽需求低很多,并且基于ssh,相较于VNC更加安全,使用x2go可以选择suspend、resume、terminate会话,同一个用户可以同时开启多个会话,对于用过ETX(Exceed TurboX)的ICer来说是比较有吸引力的,性能上与ETX还是有差距的,但是胜在免费。
Server部署
这个软件比较老了,其无法支持GNOME的高版本,很遗憾rocky linux8的GNOME版本无法支持,只能使用xfce。
安装xfce:
sudo dnf groupinstall "Xfce" -y
sudo systemctl set-default graphical.target
重启系统后在登录界面可以选择xfce。
安装x2go:
sudo dnf install epel-release (此前已经安装过并且换了中科大源)
sudo dnf config-manager --set-enabled powertools
sudo dnf install perl-File-BaseDir sshfs xorg-x11-apps
sudo dnf install x2goserver x2goserver-session -y
至此x2go server就完成了,是的,server安装完成后就只需要配置好ssh就可以使用了。
# 查看ssh服务状态
sudo systemctl status sshd
# 查看防火墙
sudo firewall-cmd --list-all
# 更改ssh端口号(安全一些)
sudo vim /etc/ssh/sshd_config # 把Port改一下
# 同时关闭密码登录,选择Pubkey登录(这个看个人选择)
还需要运行如下命令允许ssh使用该port
sudo semessage port -a -t ssh_port_t -p tcp 7822
重启ssh服务
sudo systemctl restart sshd
防火墙开启端口
sudo firewall-cmd --zone=public --add-port=7822/tcp --permanent
sudo firewall-cmd --reload
Client访问
生成pubkey(可以在windows powershell下)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将ssh key位置的内容复制来,追加到server.ssh/中(如果没有则手动创建),注意权限设为700/600
cat id_dsa.pub >> ~/.ssh/authorized_keys #设置权限600
安装x2go client(https://wiki.x2go.org/doku.php) 即可使用
配置session时,需要配置之前生成的ssh key文件
连接成功,发现部分窗口的控件会闪烁、拖动窗口有残像,XFCE 的窗口管理器 xfwm4 默认启用了合成器,但某些情况下可能会导致图形渲染问题,解决方案:
- 禁用 XFCE 合成器:
- 打开 设置管理器 -> 窗口管理器调整 -> 合成器。
- 取消勾选 启用显示合成。
- 或者,切换到其他窗口管理器(如 compton 或 picom)以替代默认合成器(没有尝试):
sudo dnf install -y compton
compton --config ~/.config/compton.conf &
关闭合成器后,问题解决
实测可以支持音频,使用腾讯云4Mbps服务器做frp转发的场景下,比vnc流畅不少,延时和画质都能够接受。
额外事项
- 如果遇到意外情况断联后,无法重新连接,需要ssh进入server,删除session的临时文件:
rm -rf /tmp/.x2go-*/
- windows端x2go client在开启时出现
warning ‘Deprecated option UsePrivilegeSeparation’ causes a failure in sharing folders functionality
解决方案:
打开Windows终端设置:
右键点击“开始”按钮,选择“Windows 终端(管理员)”或“Windows Terminal”。
在终端窗口的顶部,点击下拉箭头(靠近“+”号),然后选择“设置”(齿轮图标)。
进入启动设置:
在设置面板的左侧,点击“启动”选项。
更改默认终端应用程序:
在右侧的“默认终端应用程序”选项中,将默认值从“Windows Terminal”更改为“Windows 控制台主机”(Windows Console Host)。
保存设置:
点击“保存”按钮以应用更改。
重新启动X2Go客户端:
关闭并重新打开X2Go客户端,此时警告弹窗应该不再出现,文件共享功能也应该恢复正常。
- 一段时间不操作后,X2Go窗口冻结:
打开xfce的设置,关闭screensaver