我只是有一个简单的想法,就是把刚买的云服务器装一个图形化的界面,就像在VMWare虚拟机里一样,操作比较方便。然后用本地Windows系统访问。然而只是这个简单的想法,耗费了我人生中最美好时光的整整40个小时……
先说一下在找寻教程时遇到的术语
- xubuntu-desktop
- xfce4
- GNOME2.*
- GNOME3
这些都是ubuntu的桌面环境。不同于Windows自带的唯一桌面,Linux有很多种桌面环境,它们之间有些许差别。
- Xmanager+XDMCP
- Xrdp
- VNC(vnc4server、tightvncserver……)
这些相当于控制远程桌面的解决方法,像是协议一类的东西。
我的选择是xfce4+VNC实现远程控制,两个都是最轻量级的工具
安装xfce4
参考https://itsfoss.com/install-xfce-desktop-xubuntu/ 这篇文章
虽然声称安装xfce,但其实安装的是Xubuntu。而且Xfce desktop (xfce4 package) 和 Xubuntu desktop最好两者择1,两个都安装可能产生冲突,而且涉及到不同桌面的切换。简单来说Xubuntu功能更全面。这俩应该是同一公司的兄弟产品
sudo apt install xubuntu-desktop
我购买的是百度云务器,预装Ubuntu14系统没有自带图形界面。控制台有一个“VNC远程”的选项,本来点进去是黑框,安装Xubuntu后点击就有界面了。(可能需要重启系统)
配置服务器端VNC
之后我想通过本地Windows系统而不是浏览器来访问。因为毕竟上面的操作本质上相当于是另一台服务器访问我的服务器……
参考https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-18-04
注册一个新用户,例如用户名win。给这个用户名赋root的所有权限(具体方法百度),用此用户名登录,然后之后所有的操作都用这个用户进行并且都要加上sudo。如果用root进行下面的操作,经我自行尝试最后打开的界面只能用其他用户登录
安装tightvncserver。同类型的还有vnc4server等
sudo apt install tightvncserver
启动VNCServer
sudo vncserver
第一次启动会让你设置密码,一会儿链接的时候会用到。比如设置为这里设为123456.
You will require a password to access your desktops.
Password:
Verify:
还会提示是否view-only?选择否。
Would you like to enter a view-only password (y/n)? n
xauth: file /usr/win/.Xauthority does not existNew 'X' desktop is your_hostname:1
Creating default startup script /usr/win/.vnc/xstartup
Starting applications specified in /usr/win/.vnc/xstartup
Log file is /usr/win/.vnc/your_hostname:1.log
如果出现以上内容则说明运行正常。现在退出VNCServer服务
sudo vncserver -kill :1
编辑 ~/.vnc/xstartup文件
sudo nano ~/.vnc/xstartup
编辑为以下内容
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
第三行是必需添加的。第二行教程上说是加载一些xubuntu的主题文件,然而我并没有这个.Xresources文件,所以我编辑的时候删掉了第二行。而且也没有用到xrdb……
sudo chmod +x ~/.vnc/xstartup
改变xstartup文件为可执行文件
重启服务器。之后重启VNCServer
sudo vncserver
配置Windows端VNC
ssh -L 5901:127.0.0.1:5901 -C -N -l win xxx.xx.xx.x
现在回到Windows系统,打开CMD,新建一条ssh隧道,把win改成你的用户名(非root),xx改成服务器IP。之后会提示输入win用户的密码,输入即可
win@xxx.xx.xx.x's password:
下载VNC Viewer软件,长这个样子
新建一条链接,配置服务器IP,大功告成。
在配置过程中我遇到的问题有:
- 不能通过Viewer打开命令行终端
- Viewer和浏览器VNC不能同时使用
- 不能通过Viewer打开/usr/win目录,但其他目录可以正常打开
有的是必然情况,比如同一用户不能再本地和远程同时连接图形界面?别的问题可能的解决方法有
- 重启reboot
- 切换用户。启动服务的用户和登录vnc的用户不同
- 等
终于,我实现了预期的目标,才发现这个过程中我已经习惯了使用vi、cd、nano等操作,再也不想用图形界面了……