DEV Community

AXUM中文博客
AXUM中文博客

Posted on

让安卓手机不再吃灰:在安卓手机上搭建 Rust 开发环境

如果你还在把旧手机拿去换不锈钢脸盆,那真是暴殄天物。何不将它变成包括 Rust 在内的开发环境呢。

安装 termux

  • 打开 termux 的官网,点击【DOWNLOADF-DROID】下载 APK 文件。
  • 运行下载好的 APK 文件进行安装。

启用 SSH 服务

  • 由于要兼容未进行 root 的手机,所以 termux 的 SSH 服务监听的是 8022 端口,而不是标准的 22 端口。(小端口监听需要 root 权限)。
  • 同样的原因,termux 的用户名并不是 root,而是每次安装 termux 自动生成的、形如 u0_axxx(其中,xxx是数字)的用户。

安装 SSH

# 更新 termux 软件源
pkg update && \
# 安装 openssh 提供的 SSH 服务端和客户端
pkg install openssh
Enter fullscreen mode Exit fullscreen mode

修改当前用户的密码

passwd
Enter fullscreen mode Exit fullscreen mode

输入以上命令后,按提示设置密码

查看当前用户

whoami
Enter fullscreen mode Exit fullscreen mode

将会显示形如 u0_axxx 的用户名,把它记录下来。

举例:u0_a117

查看当前IP

你可以通过手机的 WLAN 查看当前局域网 IP,也可以通过 ifconfig 命令来查看:

ifconfig | greap inte
Enter fullscreen mode Exit fullscreen mode

举例:192.168.0.13

运行 SSH 服务

通过 sshd 命令启动运行 SSH 服务:

sshd
Enter fullscreen mode Exit fullscreen mode

连接该 SSH 服务

现在,局域网内的其它设备,比如电脑等,可以通过 SSH 连接该手机了:

ssh -P 8022 u0_a117@192.168.0.13
Enter fullscreen mode Exit fullscreen mode
  • u0_a117 改为你实际的用户名
  • 192.168.0.13 改为你实际的IP

安装 debian

termux 自带的是一个非完整的 Linux 环境,好在我们可以在不需要对手机进行 root 的情况下,通过 proot-distro 安装完整的 Linux 环境,比如 debian 系统。

# 更新 termux 软件源
pkg update && \
# 安装 proot-distro
pkg install proot-distro && \
# 使用 proot-distro 安装 debian
proot-distro install debian
Enter fullscreen mode Exit fullscreen mode

安装好之后,便可以登录 debian:

proot-distro login debian
Enter fullscreen mode Exit fullscreen mode

proot-distro login 是以 root 身份登录 debian,所以享有完全的权限。首先要做的是给 debian 安装一些必要的工具:

# 更新软件源
apt update -y && \
# 更新软件包
apt upgrade -y && \
# 安装需要的工具
apt install -y wget curl unzip tmux build-essential cmake pkg-config libssl-dev libtool git
Enter fullscreen mode Exit fullscreen mode

安装 Rust 环境

参照官网,我们可以在 debian 里一键安装 Rust 环境:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Enter fullscreen mode Exit fullscreen mode

Code Server

安装

在 Code Server 的release页面,找到最新版本的压缩包下载。

# 版本
CODE_SERVER_VERSION='4.96.2'
# 下载
wget "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server-${CODE_SERVER_VERSION}-linux-arm64.tar.gz" && \
# 确保 ~/.local 存在
mkdir -p ~/.local && \
# 解压到 ~/.local
tar zxvf code-server-${CODE_SERVER_VERSION}-linux-arm64.tar.gz -C ~/.local
# 重命名
mv ~/.local/code-server-${CODE_SERVER_VERSION}-linux-arm64 ~/.local/code-server
Enter fullscreen mode Exit fullscreen mode

注意:

  • 必须选择 arm64 架构,因为手机 CPU 就是这个架构
  • 本例使用的是 .tar.gz 压缩包,你也可以选择 .deb

运行

我们使用 tmux 来保证断开 SSH 之后 Code Server 依然在运行。首先创建 tmux 会话:

# 创建一个 tmux 会话
tmux new -s code-server
Enter fullscreen mode Exit fullscreen mode

运行 Code Server:

~/.local/code-server/bin/code-server
Enter fullscreen mode Exit fullscreen mode

修改配置

配置文件位于 ~/.config/code-server/config.yaml。根据你的需要进行更改

  • bind-addr:监听地址。为了让局域网能访问到,需要将监听的IP改为 0.0.0.0。比如:0.0.0.0:58080
  • auth:鉴权方式。由于我们是部署在局域网,给自己用的,完全没必要使用任何鉴权方式,所以将其改为 none
  • cert:证书路径。我们将在下一篇进行讲解。

修改配置之后,需要重新启动 Code Server。

启用 SSL

由于 Code Server 是以 Web 形式运行,而很多功能需要 HTTPS,比如复制/粘贴、预览 Markdown、执行 REST Client 等。我们将在下一篇博文讨论如何在局域网签发 SSL 证书。

自问自答

为什么不用 VSCODE 的远程 SSH 连接,而用 Code Server?

因为 termux 并不是完整的 Linux 环境,而 VSCODE 远程 SSH 连接需要在服务端安装对应的软件,termux 并不满足它的条件,所以只能退而求之,使用 VSCODE 的 Web 版本──Code Server。

你也可以尝试在 proot-distro 安装的 Linux 里安装 SSH 服务,它应该满足 VSCODE 的要求,但需要配置的地方可能很多,本文不作尝试。

相较于云服务器,使用手机有什么优势?

手机基本上都是 4G RAM 起步,内部存储更是 64G 起步,普通的 VPS 根本没法和它比。试想一下,购买一台相同配置的 VPS 每年需要花费多少钱?

另外,手机都是通过局域网连接,而包括 VPS 在内的云服务器都是公网连接,甚至是跨洲绕全球的连接,网络响应不是一个级别的。

Top comments (0)