Debian 8 jessie 配置 VNC 服务器!(tightvncserver)
自己折腾了2天,终于完全搞定,国内网站上资料少之又少,所以拿出来分享下。
xrdp 有问题!原因是 xrdp 默认会自动创建 xvnc 会话,然后转换成 rdp 协议供win连接。
如果你在另一台机器登陆,又会运行一个新的 xvnc 会话,老的还不自动退出!多登陆几次,白白浪费内存!
有人会说了,xrdp 配置里面可以设置自动结束会话!
网上教程也提到了!但是,估计写教程的人自己估计都没看 xrdp 说明!
附件:
Capture.PNG [ 45.73 KiB | 被浏览 1152 次 ]
如上图!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