成功的是Xfce4桌面,这款桌面拥有轻量级的安装文件,虽然仍卡顿无比,大概是内存小的问题。
配制最新源:
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
主要安装过程:
1、首先需要获得vps的ROOT权限;
2、执行 sudo apt-get update 命令,升级各类软件包为安装桌面环境做装备;
3、安装登录管理器:sudo apt-get install xdm
4、安装桌面环境或窗口管理器:
sudo apt-get install xubuntu-desktop
sudo apt-get install xfce4
====安装 XFCE 桌面环境====
如果机器内存足够,则安装GNOME、KDE、XFCE 等桌面环境均可以。
5、下面接着来安装XRDP,安装了XRDP之后,我们就可以直接使用windows系统自带的远程桌面工具来连接我们的服务器了。
apt-get install xrdp
apt-get install vnc4server tightvncserver
6、安装完毕以后,执行命令service xrdp restart
sudo /etc/init.d/xrdp restart
sudo /etc/init.d/xrdp start
===============================
若出现以下:
* Stopping RDP Session manager
* Starting Remote Desktop Protocol server
表示xrdp启动成功
===============================
7、在root目录下新建一个文件.xsession文件。(这一步我安装的时候做了没我给忘了……可以先跳过)
内容为: xfce4-session
8、登录吧
用Windows自带的远程登录界面,选择一下Module方式,输入你的登录信息,即可。
- 安装 VNC 服务端:打开终端,输入
sudo apt update更新软件包,然后sudo apt install tightvncserver -y安装 TightVNC 服务器,这是轻量稳定的选择 。如果要用 Ubuntu 内置功能,22.04 版本可直接启用 GNOME 桌面共享,无需额外安装 。 - 设置连接密码:首次运行
vncserver命令会提示设置 6-8 位密码,这个密码后续连接时需要输入,建议记好 。也可以用vncpasswd命令单独设置或修改密码 。 - 配置桌面环境:服务器版 Ubuntu 默认没有图形界面,需要先装轻量桌面如 XFCE,命令是
sudo apt install xfce4 xfce4-goodies -y,然后修改~/.vnc/xstartup文件,把启动命令改成 #!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xfce4-session & 。 - 启动服务:运行vncserver -kill :1
vncserver -geometry 1280x720 -depth 24 :1启动 VNC,:1表示第一个会话,对应端口 5901(端口号=5900+ 显示编号)。如需开机自启,可用 crontab 添加@reboot /usr/bin/vncserver -geometry 1280x720 -depth 24 :1。
vncserver -geometry 1280×720 -depth 24 :1 -nolisten tcp #old ok
Xtightvnc :2 -desktop test -auth /root/.Xauthority -geometry 800×600 -depth 8 -rfbport 5902
停止服务:
vncserver -kill :*
重新启动并指定 IPv6:
vncserver :1 -localhost no -listen ::
apt install tigervnc-standalone-server -y
@reboot /usr/bin/vncserver :1 -localhost no -geometry 1280×720 -depth 24 -listen :::
- –novnc 网页登录 begin
apt install git python3-pip -y
#安装websockify依赖
pip3 install websockify
# 切换到 /opt 目录
cd /opt/novnc
# 从 GitHub 下载最新的稳定版 noVNC
wget https://github.com/novnc/noVNC/archive/refs/tags/v1.4.0.tar.gz
# 解压
tar -xzvf v1.4.0.tar.gz
# 为了方便,将目录重命名为 novnc
mv noVNC-1.4.0 novnc
# 清理安装包
rm v1.4.0.tar.gz
cat > /usr/local/bin/novnc_start.sh <<‘EOF’
#!/bin/bash
pkill -f “websockify.*6080”
nohup websockify –web=/opt/novnc/novnc 6080 127.0.0.1:5901
nohup websockify –web=/opt/novnc/novnc [::]:6080 127.0.0.1:5901 #OK
nohup websockify –web=/opt/novnc/vnc/novnc_new [::]:6080 127.0.0.1:5901
cd /opt/novnc/vnc/novnc_new
nohup ./utils/novnc_proxy –vnc 127.0.0.1:5901 –listen [::]:6080 &
nohup websockify –web=/opt/novnc/novnc 6080 127.0.0.1:5901 –listen ::
/var/log/novnc.log 2>&1 &
这个错误原因是:你系统上安装的 noVNC 版本太旧,而且正在被 Python 2.7 执行,但代码里用了 Python 3.才有的 TemporaryDirectory 功能。
🎯 根本原因
· Ubuntu 20.04 默认不带 Python 2.7,但你的系统里可能有残留的 Python 2.环境
· 你之前可能用 pip 安装时,pip 指向了 Python 2.7,装了个不兼容的旧版 noVNC
✅ 解决方案(两步走)
—
第一步:卸载旧的 noVNC
“`bash
pip2 uninstall novnc -y 2>/dev/null
pip3 uninstall novnc -y
apt remove novnc -y 2>/dev/null
“`
—
第二步:用 Python 3 重新安装
“`bash
# 确保 Python 3 和 pip3 已安装
apt update
apt install python3-pip -y
# 用 pip3 重新安装 noVNC
pip3 install novnc
“`
—
第三步:用 Python 3 启动
“`bash
# 确认 python3 命令可用
python3 –version
# 用 python3 显式启动 noVNC
python3 -m novnc –listen 0.0.0.0:6080 –target 127.0.0.1:5901
“`
或者直接用 novnc 命令(现在应该已指向 Python 3 版本):
“`bash
novnc –listen 0.0.0.0:6080 –target 127.0.0.1:5901
“`
—
🔧 备选方案:源码手动安装(最稳妥)
如果 pip3 安装后仍有问题,直接从 GitHub 拉最新源码:
“`bash
cd /opt
git clone https://github.com/novnc/noVNC.git
cd noVNC
# 直接用 Python 3 运行自带的代理脚本
./utils/novnc_proxy –vnc localhost:5901 –listen 6080
“`
这种方式不依赖 pip 包,永远是最新代码。
—
📌 启动成功后的验证
启动成功后,你应该看到类似输出:
“`
Navigated to: http://localhost:6080/vnc.html
WebSocket server settings:
– Listen on :6080
– Web server root: /usr/local/lib/python3.8/dist-packages/novnc/www
– No SSL/TLS support (no cert file)
– Proxying from :6080 to 127.0.0.1:5901
“`
然后在浏览器访问:http://rd.170a.com:6080/vnc.html
—
❓ 为什么之前会失败
问题 原因 解决
AttributeError: ‘module’ object has no attribute ‘TemporaryDirectory’ 用了 Python 2.7 运行 改用 Python 3
端口显示 ::1:6080 而非 0.0.0.0:6080 启动时没加 –listen 0.0.0.0 加上该参数
浏览器连的是 8080 而非 6080 访问地址错误 改成 6080 端口
执行完上面的步骤后再试一次,应该就能正常连接了。
cd /opt
git clone https://github.com/novnc/noVNC.git
/opt/noVNC/utils/novnc_proxy –vnc localhost:5901 –listen 6080
EOF
chmod +x /usr/local/bin/novnc_start.sh
http://192.168.8.105:6080/vnc.html?autoconnect=true&reconnect=true
–end;
1.下载xrdp源码 www.xrdp.org 2.禁用复制粘贴,然后默认这个是可以的。直接把: sesman/chansrv/clipboard.h 里定义的函数,在 sesman/chansrv/chansrv.c 中全部注释即可。然后再编译... 3.安装 yum intstall autoconf yum install automake yum install libtool ./bootstrap yum install openssl-devel yum install pam-devel yum install libX11-devel yum install libXfixes-devel ./bootstrap ./configure make && make install
我的vps总是掉线,所以如果xrdp正常启动却仍旧无法看到图形桌面的界面,那也要思考是不是机器掉线的问题,不同时段多试几次……我才成功了,然后又掉=。=
(注:KDE桌面环境极其占用内存,而小于512MB内存的用户们建议安装Xfce4桌面。)
QT环境:
apt-get install g++
apt-get install gcc
apt-get install cmake
QT 安装及 补丁
sudo apt-get install qtchooser
sudo apt-get install qt5-default
sudo locale-gen zh_CN.UTF-8
sudo dpkg-reconfigure locales
sudo apt-get install language-pack-zh-hans language-pack-zh-hans-base language-pack-gnome-zh-hans language-pack-gnome-zh-hans-base
sudo apt-get install `check-language-support -l zh-hans`
QT mysql 安装依赖库
sudo apt-get install mysql-client libmysqlclient-dev libqt5sql5-mysql
编译安装mysql驱动
进入qt源码路径下的mysql目录 $QTDIR/Qt5.9.0/5.9/Src/qtbase/src/plugins/sqldrivers/mysql
qmake编译该工程
qmake “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient” mysql.pro
make && make install (有BUG)
文件头BUG处理:
1.首先在/usr/share/qtchooser/目录中添加一个default文件,如果没有qtchooser目录,则先通过apt install qtchooser进行安装,default文件内容如下:
qt4-x86_64-linux-gnu.conf文件加.bak
vim qt5-x86_64-linux-gnu.conf 修改
/opt/Qt5.9.5/5.9.5/gcc_64/bin
/opt/Qt5.9.5/5.9.5/
2.配置PATH环境变量。在~/.bashrc中加入一行,内容如下:
vim ~/.bashrc 修改
PATH=${PATH}:/opt/Qt5.9.5/5.9.5/gcc_64/bin:/opt/Qt5.9.5/5.9.5/Tools/QtCreator/bin
或者把编译好的SO文件拷到 /opt/Qt5.9.5/5.9.5/gcc_64/plugins/sqldrivers/
如果编译时报错:Project ERROR: Library ‘mysql’ is not defined. 把mysql.pro中的 QMAKE_USE += mysql用#注释掉, 即 #QMAKE_USE += mysql
configure.pri 改为 qtsqldrivers-config.pri
安装unixODBC头文件及库文件
官网下载源文件:
ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.5.tar.gz
找到下载的文件所在目录,解压缩
$ cd ~/Downloads
$ tar xvf unixODBC-2.3.5.tar.gz
$ cd unixODBC-2.3.5
编译,指定安装到/usr/local/unixODBC目录中
$ ./configure –prefix /usr/local/unixODBC
$ make
$ sudo make install
提示有ini文件由于目录不存在而无法创建,再执行一次
$ sudo make install
odbc.ini和odbcinst.ini在/usr/local/unixODBC/etc目录中touch成功。
Qt编译odbc动态库源程序
$ cd ~/Qt5.10.0/5.10.0/Src/qtbase/src/plugins/sqldrivers
$ cp configure.pri qtsqldrivers-config.pri
$ cd odbc
如下注释掉 odbc.pro 文件中的指定行:
;QMAKE_USE += odbc
Cd /opt/Qt5.9.5/5.9.5/Src/qtbase/src/plugins/sqldrivers/odbc
$qmake “INCLUDEPATH+=/usr/local/unixODBC/include” “LIBS+=-L/usr/local/unixODBC/lib -lodbc” odbc.pro
$ sudo make
$ sudo make install