[原创]Debian 8 jessie 配置 VNC 服务器!(xrdp 有问题)

最大的社区版本,Ubuntu的发源地
回复
zhangjint5
帖子: 304
注册时间: 2011-01-02 12:31

[原创]Debian 8 jessie 配置 VNC 服务器!(xrdp 有问题)

#1

帖子 zhangjint5 » 2016-01-30 14:31

Debian 8 jessie 配置 VNC 服务器!(tightvncserver)

自己折腾了2天,终于完全搞定,国内网站上资料少之又少,所以拿出来分享下。

xrdp 有问题!原因是 xrdp 默认会自动创建 xvnc 会话,然后转换成 rdp 协议供win连接。

如果你在另一台机器登陆,又会运行一个新的 xvnc 会话,老的还不自动退出!多登陆几次,白白浪费内存!

有人会说了,xrdp 配置里面可以设置自动结束会话!

网上教程也提到了!但是,估计写教程的人自己估计都没看 xrdp 说明!
Capture.PNG
如上图!xrdp 这个功能根本就没有嘛!只是预留的自动结束的参数,但是功能就没做!

最后,还是手工配置 vnc 来用比较靠谱,可以让 xrdp 转发到自己配置的 vnc 上比较方便,但是不要让 xrdp 自己创建 xvnc ,就不会有上述问题了!

言归正传

首先我是在 Debian 8 上面弄得,理论上 ubuntu (15.04 以上,使用 systemd 的)也可以使用。

我先前配置好,每次连接到 vnc 上就是一个错误屏幕,按照网上各种坑爹教程编辑 Xsession 配置文件什么的,其实完全没有必要,系统默认的配置就没问题

但是谨记一点

不要用 GNOME 3 桌面(ubuntu默认桌面也好像有这个问题),这个问题折腾了我好久,baidu 完全查不到资料,后来用微软 bing 搜索国外网站才找到原因,是因为这个版本 GNOME 3 有 bug ,在 vnc 里面初始化 session 时候因为检测不到显卡加速直接崩溃。(奇怪的是 CentOS 7 上的 GNOME 3 没有这个问题,猜测也许是 CentOS 7 的 GNOME 3 默认不开桌面特效,不用显卡加速)。

参照 CentOS 7 的配置方法,终于搞定了 Debian 8 的配置!

但是不能完全照搬 CentOS 7 ,先前就是照搬,结果 Debian 8 控制台登录正常,桌面字体看着舒服,中文界面,输入法全部正常

但是一到 vnc 登陆,字体难看,还是英文界面,没有中文输入法!

后来想起来去分析 xrdp 调用 xvnc 的情况,才找到原因修正!

下面提供下我的配置笔记

#Debian 8 配置 VNC 服务器

#安装干净的桌面环境。由于 GNOME 3 有 Bug ,启动 VNC 服务器时 Session 崩溃,建议使用 mate、xfce 或者 lxde 桌面环境。
#中文输入法配置。建议使用 fcitx 输入平台,安装 sogou 拼音可以自动配置输入法。

#视情况修改默认语言
sudo dpkg-reconfigure locales

#视情况设置控制台默认启动图形界面
sudo systemctl set-default graphical.target

#安装 VNC 服务器
sudo apt-get install tightvncserver

#设置 <USER> 用户密码
sudo runuser -l <USER> -c vncpasswd

#配置 :1 桌面服务(如果创建第2个桌面用 :2 ,以此类推)
sudo nano /etc/systemd/system/vncserver@:1.service

#以下范例根据 CentOS 7 提供的修改
#将下面的<USER>替换成你的用户名
#如果要允许远程连接,请在命令行去掉 -localhost 参数
##############################

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/tightvncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser <USER> -c "/usr/bin/tightvncserver %i -geometry 1024x768 -depth 24 -bs -ac -nolisten tcp -localhost -dpi 96"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/tightvncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

##############################

#更新系统服务(每次 /etc/systemd/system/vncserver@:1.service 修改后都需要更新)
sudo systemctl daemon-reload

#立即停止 :1 桌面 VNC 服务
sudo systemctl stop vncserver@:1.service

#立即启动 :1 桌面 VNC 服务
sudo systemctl start vncserver@:1.service

#设置 :1 桌面 VNC 服务开机自动启动
sudo systemctl enable vncserver@:1.service

#取消 :1 桌面 VNC 服务开机自动启动
sudo systemctl disable vncserver@:1.service
回复