我们通常都使用 SSH 工具来管理远程服务器,偶尔会遇到出门在外借用他人的电脑,或者只能用移动设备的情况,此时 SSH 就不是很方便了。这里介绍一个安装可视化 Linux 桌面的一键脚本,安装好桌面以后,可以通过电脑或者手机浏览器进行远程访问,无需其它专用工具,方便快捷。将您的 Linux 服务器化身为一台远程可视化服务器。
1、脚本特色
- 从源码编译安装 Guacamole 服务器
- 配置 Guacamole Web APP
- 安装 Tomcat 9, XRDP/TigerVNC, XFCE4 桌面环境,火狐浏览器
- 一键安装配置 Let’s Encrypt 安全证书,开启 OCSP 装订
- 安装 Nginx 反代 Tomcat
- 安装完毕后,您可以使用任意浏览器访问远程桌面,无需再使用 VNC/RDP 客户端
2、安装前准备
本程序支持在 Ubuntu 18.04/20.04 LTS, Debian 10, 以及 CentOS 7/8 64 位操作系统上运行。您的服务器或者 VPS 最好是全新安装的系统。如果您想要和宝塔或者其他面板共存,那么安装时请选择不安装 Nginx 反代,然后用您的面板来对 http://您服务器的 IP 地址:8080/guacamole
这个地址进行反代。
您的服务器需要有外网 IP 地址。在安装之前,您需要解析一个域名(可以用三级域名或者一个免费域名)到您的服务器上。
如果您使用 Debian 或者 Ubuntu 系统,安装桌面环境需要至少 1 GB 的内存,推荐 1.5 GB 内存或以上。如果您使用 CentOS 系统,安装桌面环境需要至少 1.5 GB 内存,推荐 2 GB 内存或以上。
3、安装教程
您可以使用 sudo 权限用户或 root 用户(不建议)登录服务器 SSH,然后执行下面的命令即可。
英文版
- wget https://raw.githubusercontent.com/Har-Kuun/OneClickDesktop/master/OneClickDesktop.sh && sudo bash OneClickDesktop.sh
中文版
- wget https://raw.githubusercontent.com/Har-Kuun/OneClickDesktop/master/OneClickDesktop_zh-CN.sh && sudo bash OneClickDesktop_zh-CN.sh
程序将自动安装需要的各部分组件,并引导您选择 RDP/VNC 方式,设置用户名,密码以及域名。
如果安装过程中有报错,您可以检查同目录下的 OneClickDesktop.log 日志文件。同时建议您留言汇报一下错误信息,或者在 Github 上提交 issue,这样作者可以即时更新脚本,修复问题。
4、安装示例
安装好后,我们可以直接在浏览器里访问 http://服务器 IP 地址:8080/guacamole
,进入服务器上搭建的桌面程序,如下图。
综上,使用 OneClickDesktop 一键脚本,您可以自由方便地在 Linux 服务器上搭建随时随地用浏览器即可访问的桌面环境,让您便捷地管理您的 Linux 服务器,无需再使用繁琐的命令行。
5、可能会遇到的问题
添加中文支持
如果您的机器没有安装中文包,设置中文后可能会出现乱码。按照以下步骤配置中文。
重新配置系统 locales
- sudo dpkg–reconfigure locales
安装亚洲语言包
- sudo apt–get install language–pack–ja language–pack–zh* language–pack–ko
- sudo apt–get install japan* chinese* korean*
安装亚洲语言字体
- sudo apt–get install fonts–arphic–ukai fonts–arphic–uming fonts–ipafont–mincho fonts–ipafont–gothic fonts–unfonts–core
网络要求
远程访问可视化桌面对于网络表现要求更高,线路较差的 VPS 不建议尝试。
鼠标无法使用
安装完成后,可能会遇到电脑端鼠标无法使用的问题,但手机上却可以。这可能因为你使用域名反代了远程 IP 访问地址,但是没有配备 SSL 证书,Chrome 浏览器会将无证书网页判定为不安全网页,屏蔽部分权限。
解决方法是给反代域名添加 SSL 证书,或者在 chrome://flags/#unsafely-treat-insecure-origin-as-secure
里添加该域名强制解禁权限,或者不进行反代直接访问 IP 管理地址。
远程桌面屏幕尺寸
Screen Size 默认为 1280px × 800px,可在 /etc/systemd/system/vncserver@.service
里修改,修改后,执行
- systemctl daemon–reload
- systemctl restart vncserver@1.service
修改默认端口
默认端口是 8080,可在 /etc/tomcat9/server.xml
里修改,然后重启 tomcat9
- systemctl restart tomcat9
6、开启服务器声卡
由于大家通常使用的 VPS 上没有声卡,没有办法听到声音;因此,虽然有了这台远程 Linux 桌面服务器,但是看视频和听音乐的时候也没有声音,限制了这台服务器的应用场景。
作者更新了一款声卡模拟插件脚本,使用这个插件脚本之后,可以在原来安装有 OneClickDesktop 的 Linux 服务器上模拟出声卡,从而在远程桌面上实现音乐和视频播放。插件脚本来自 https://qing.su/article/pulseaudio-audio-redirection-oneclickdesktop.html 。
实现原理
使用 PulseAudio 与 PulseAudio-xrdp, 可以在 Linux 远程桌面服务器上对音频信号进行重定向。配置完毕后,Pulseaudio 可以绕过远程服务器的声卡,直接将声信号转发到访问者的浏览器上。
Pulseaudio 官方网站:https://www.freedesktop.org/wiki/Software/PulseAudio/
因此,首先编译安装 Pulseaudio,然后编译安装 Pulseaudio-xrdp 组件,使得 Pulseaudio 能够识别出访问者的浏览器并作出相应的声信号转发。这样,我们就变相实现了在远程 Linux 桌面服务器上模拟声卡。
一键搭建
这个脚本需要您已经安装好 OneClickDesktop 远程桌面服务器程序。由于 CentOS 系统即将停止官方支持,因此声卡模拟脚本也将不再对 CentOS 系统提供支持,仅支持 Ubuntu 18/20 与 Debian 10 系统。后续等 OneClickDesktop 支持 Debian 11 与 Ubuntu 22 后,此声卡模拟脚本也会相应地添加支持。
请在 SSH 中执行下面的指令:
- wget https://raw.githubusercontent.com/Har-Kuun/OneClickDesktop/master/plugins/Audio/AudioRedirectionSetup.sh && sudo bash AudioRedirectionSetup.sh
执行完毕后,请重启服务器。
设置 Pulseaudio 转发通道
安装完毕后,我们还需要进入远程桌面,设置 Pulseaudio 使其能正确转发声信号。
Ubuntu 系统
如果你使用的是 Ubuntu 18.04 LTS,那么无需任何设置,使用非 root 用户登录远程桌面即可享受音频了。
如果你使用的是 Ubuntu 20.04 LTS,那么第一次用非 root 账户登录远程桌面后,需要先登出一次,然后重新登录:
登录之后,在音量控制中看到”xrdp sink”,说明声卡启用成功。
Debian 系统
如果你使用的是 Debian 10,那么第一次用非 root 账户登录远程桌面后,需要打开一个终端,执行下面的命令:
- pulseaudio –k && pulseaudio
命令会产生如下图的报错,是正常现象,使用 CTRL+C 终止。
此时,再次执行命令:
- pulseaudio &
可以看到,音量控制中出现了”xrdp sink”的显示,声卡启用成功。
这样,我们就完全设置好了模拟声卡,可以在远程 Linux 桌面服务器上看视频啦!当然,如果网不好,那么看视频可能是会很卡的……