通过Termux和VNC实现以手机为服务器的桌面办公
引子
最近疫情影响,周末闲暇也出不去,在家折腾手机和电脑玩。笔记本显示屏比较小就外接了一个显示器,办公起来非常方便。这里记录我为什么这么做的一些思路和步骤。
手机上安装Termux
前段时间刚买了红米K40的手机,已经算是大众化的配置了12G+256G和高通870,单纯从数字上看,已经比我的笔记本高出很多了。以前就喜欢在笔记本上用ubuntu系统,也喜欢玩树莓派,看到Termux在Android上已经很成熟了,就在手机上下来来安装了一个Termux试试,感觉做的很不错,顺手安装了一个Python。原来的计划是利用碎片时间在手机上Python编程学习。
用了一段时间,Termux可以看做是一个Headless的Linux服务器+命令行界面,刚好可以用来复习快要忘掉的linux bash和Python知识。众所周知,Android就是一个基于linux内核魔改的图形化操作系统,撇去Android后来发展的高度发达的操作系统不说,其linux内核就是一个很有价值的可利用的东西。Termux并不能算是一个虚拟机,我觉得接近事实的描述是利用Android操作系统本身现成的linux内核桥接出来给人能直接使用的linux终端。这个终端是以一个APP的形式,整个终端的环境和文件被局限在整个APP内,保障了Android系统本身的安全和隔离(从Termux获取Android资源需要Android系统的批准),卸载系统就是直接卸载这个APP这么简单(当然这也就难免会容易发生误删整个Termux系统的风险)。但是,对于只是想玩一下linux终端,随时随地偶尔做些小代码的的需求是可以满足的。
安装Termux终端
去F-Droid网站下载Termux
浏览器登陆网页https://f-droid.org/

在右侧“搜索应用”框内搜索“Termux”
选这个:Termux 带有软件包的终端模拟器
注意:该版本需要 Android 7.0 及以上版本。(快点给你淘汰的旧手机升级系统后安装这个试试吧,先确认Android版本在7.0以上才行哦)
打开的网页中“下载APK”就可以了,APP不是很大,也就不到100M.
想办法把apk安装包拷贝到手机上安装。

打开
一个linux系统终端就安装好了

还可以通过apt install python3来安装Python
ssh和sshd是加密的通道传输协议,安装了以后就可以通过网络和密码登陆服务器的命令行,真正的实现手机黑屏条件下远程连进来干活儿。sshd是服务器用来提供连进来服务的,ssh是客户端用来连出去的。
这里建议在Termux里面安装ssh和sshd服务,因为到ubuntu系统里面安装sshd服务的话我这边没有成功,可能是ubuntu还是把系统当成一个真的机器硬件来安装的,用到的随机数生成的部分没法连接,所以失败了,还好可以在Termux里安装ssh和sshd.
安装:
apt install openssh
启动只需键入
sshd
记得设置密码,不然远端无法登入:
passwd
安装ubuntu和图形界面
现在安装ubuntu,我是通过proot-distro来安装的
apt install proot-distro
然后键入proot-distro list来显示可安装包,这个方法不但可以方便的安装ubuntu可以看到你还可以用它来安装其它linux的发行版。
这里我们安装ubuntu
proot-distro install ubuntu
这时候会从外网下载几十M的大文件(没听错几十兆而已,但很慢),有时候网络不好,多试几次。
显示安装成功后就可以登入了
proot-distro login ubuntu
当然你也可以把这条命令加入到自启动项里面,每次就可以自动登陆了。
连接VNC图形化操作
进入ubuntu后先更新软件源
apt update
然后安装需要用到的图形化服务软件
apt install xfce4 xfce4-goodies
会安装xfc4轻量级图形界面服务,这一步大概会消耗1G的空间,当然也可以试着去安装其他的图形界面服务如gnome
安装xfc4参考:https://blog.youkuaiyun.com/cunchi4221/article/details/107471665
然后安装tigervnc。tigervnc感觉比tightvnc要配置简单一些
apt install tigervnc-standalone-server tigervnc-common
然后做一下简单的配置
运行
vncserver
来设置密码
然后创建启动脚本:
nano .vnc/xstartup
如上命令就是用文本编辑器nano(当然你可以用其他文本编辑器)编辑用户文件夹下的.vnc文件夹下的xstartup文件(如果没有就创建一个)内容如下:
#!/usr/bin/bash
xfce4-session
注意xfce4-session后面不要跟&号,不然会在运行vncserver时提示过早退出,然后记得给它加执行的权限。
chmod +x .vnc/xstartup
首次设置VNC时,它将在端口5901上启动默认服务器实例。
如下是一个启动vnc服务器的例子:
vncserver :1 -localhost no -geometry 1920x1080
然后就可以通过vnc的客户端登陆了,为了能够远端登陆不仅仅是本机登陆,设置-localhost no 是必要的。由于VNC是不加密的,会在登陆时提示如下,当然也可以自行百度实现在此基础上的外加SSH通道的加密。

输入刚才设置的密码就可以登陆了

之后就是熟悉的ubuntu界面了,可以自由安装自己喜欢的程序了


插上外接显示器,桌面办公真的是很爽。

既不影响Android的使用,日常微信呀、刷单车呀、点外卖呀都不影响,也不影响Windows10的使用,对于普罗大众的我们日常搬砖win10还是离不了的。

这个ubuntu算是在现在手机日益富余的硬件资源下开辟的一块净土、一块试验田吧。

基本上在我这个红米K40上12G内存的版本,除了画面受WIFI速度限制略有卡顿,程序运行起来速度感觉完全可以媲美轻薄笔记本的水平了。打开GIMP的速度完虐我固态硬盘的WIN10笔记本上的速度。
关于系统的稳定性
安装了一个火狐浏览器,测试打开5个网页也都还好,但是感觉网页打开速度慢于直接在Android的浏览器里面打开的速度,可能是火狐浏览器或者ubuntu对于网络的模块没有在Aarch64平台上进行深度优化过吧。直到打开一个带视频的网页,看了大概1分钟以后vncserver崩了。
其它情况下,不要狂虐它,正常使用还可以不太会崩。有一次把手机装进口袋人出门了,忘记断开vnc连接,自然wifi也随着离开家断开了,靠局域网vnc的服务当然理应续不上才对,可是人回来以后坐到电脑前,随着wifi的自动连接,vnc的服务居然也续上了,之前的事情接着做没问题。
另外也在淘汰的旧手机,一个4G内存的魅族5pro上,先升级到flyme8使得Android版本大于7然后一样安装了Termux和ubuntu以及vncserver,在用笔记本连的时候,哪怕是分辨率开到1024x768也是vncserver很容易就崩(打开一个文件管理器就崩),猜想可能是魅族5pro这个老机器配置比较低,特别是显卡性能和内存过低所致。
本文介绍了如何通过在Android手机上安装Termux和Ubuntu,并利用VNC实现远程桌面办公。详细步骤包括安装Termux、设置ssh和sshd服务、安装Ubuntu及图形界面、配置VNC服务,最终实现稳定且实用的移动办公解决方案。
2580





