【超详细】手机搭建服务器 · 第 五 期

Semmering 2026-05-26 21:56 1

本期主题:解决termux安装ubuntu的各种问题


前四期回顾:


【超详细】手机搭建服务器 · 第 一 期

【超详细】手机搭建服务器 · 第 二 期

【超详细】手机搭建服务器 · 第 三 期

【超详细】手机搭建服务器 · 第 四 期



[!note] 前几期完成了什么

第一期主要说的是必备条件;

第二期讲了如何解决手机供电问题;

第三期讲了如何让wifi用不断连(不过代码在第四期做了重大更新);

第四期实现了如何让ipv6一直处于可用状态和如何自动更新DDNS



这一期主要讲termux如何安装ubuntu。 原本类似的教程网络上很多,感觉没有出的必要。但是在安装的过程中,遇到了很诡异的问题,然后困扰了我很久,而且网上相关的解决方案基本没有,好不容易终于找到了一个解决方案,所以想着记录下来。


一、先准备 Termux 环境



1. 客户端选择: 大家可以安装termuxtermux,也可以安装ZeroTermux。我自己安装的是ZerTermux。

2.更新环境,并且安装常用工具包



pkg update -y
pkg upgrade -y
pkg install -y curl wget unzip nano coreutils openssl openssl-tool termux-api


3.刷入 BusyBox模块

官方仓库:GitHub - Magisk-Modules-Repo/busybox-ndk: busybox-ndk · GitHub

下载链接:Download Busybox for Android NDK-1.36.1-13614.zip (Magisk)


4.刷入chroot-distro 模块

chroot-distro.zip (18.4 KB)



两个模块都刷入以后,记得重启手机



5.给 Termux 创建快捷的chroot-distro 命令:

在 Termux 执行:



cat > $PREFIX/bin/chroot-distro <<'EOF'
#!/data/data/com.termux/files/usr/bin/bash

args=""
for arg in "$@"; do
escaped_arg=$(printf '%s' "$arg" | sed "s/'/'\\\\''/g")
args="$args '$escaped_arg'"
done

su -c "/system/bin/chroot-distro $args"
EOF

chmod +x $PREFIX/bin/chroot-distro

然后测试:


chroot-distro list

如果正常,说明快捷命令创建成功。



6.下载ubuntu:



chroot-distro download ubuntu


看自己要安装什么版本,输入对应的数字回车即可,我选的是ubuntu 24.04。所以输入6回车。此处没有截图,因为忘记截图了。




7.安装ubuntu:



chroot-distro install ubuntu


出现



~ $ chroot-distro install ubuntu
-bash: cannot set terminal process group (25325): Inappropriate ioctl for device
-bash: no job control in this shell
root@localhost:~#

意味着成功了。



[!warning]

到这里其实一切都很正常。也比较简单,几乎不会出什么问题。重点在下面步骤。




8.更新ubuntu内置包

在termux中执行apt update命令,然后会遇到报错问题。


解决apt update 办法是:


8.1 用MT管理器,把/data/local/chroot-distro/ubuntu/etc/pam.d/su-l这个文件中的这句话注销就不会报错了: # session optional pam_keyinit.so force revoke。也就是在这句话前面加上#号,或者删除这句话。


8.2 继续在termux中执行下面这代码:



cat > /etc/resolv.conf <<'EOF'
nameserver 223.5.5.5
nameserver 119.29.29.29
nameserver 8.8.8.8
nameserver 1.1.1.1
EOF

groupadd -g 3003 aid_inet

groupadd -g 3004 aid_net_raw

groupadd -g 1003 aid_graphics

usermod -g 3003 -G 3003,3004 -a _apt

usermod -G 3003 -a root


9.安装几个最基础的工具:



apt install -y curl wget vim nano iproute2 procps ca-certificates


如果输入

ip addr 或者输入ps -ef | head

都有输出,那就表示ubuntu现在基本可用了




10.创建普通用户和禁止root用户登录


为了安全,强烈建议使用拥有 sudo 权限的普通用户进行日常操作,然后禁止 root 用户直接通过 SSH 登录。在termux中的操作如下:



创建新用户:


useradd -m -s /bin/bash 用户名

更改密码:


passwd 用户名

安装 sudo:


apt install -y sudo

加入sudo组:


usermod -aG sudo server

更改密码时,控制台看不见,自己注意输入就行


测试普通用户提权是否ok:



先退出整个temux,重新进入termux,然后输入su回车



接着登录ubuntu:


chroot-distro login ubuntu

然后切换到刚刚创建的普通用户


su - 用户名

进入后测试提权:


sudo -i

如果能进入:


root@localhost:~#

说明普通用户创建成功,并且 sudo 正常。



11.如何禁止root ssh登录:



先安装ssh:


apt install -y openssh-server

直接执行这组命令:


if grep -qE '^[# ]*PermitRootLogin' /etc/ssh/sshd_config; then  sed -i 's/^[# ]*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_configelse  echo 'PermitRootLogin no' >> /etc/ssh/sshd_configfi

然后确认:


grep -n '^PermitRootLogin' /etc/ssh/sshd_config

应该看到:


PermitRootLogin no

如果不放心,也可以用mt管理器,进入/data/local/chroot-distro/ubuntu/etc/ssh/sshd_config 中查看。



[!note]结束语

还是老规矩,有什么问题欢迎大家及时反馈。看到后都会一一回复解答的


最新回复 (19)
  • leioukupo 05-26 21:57
    1

    k40升级到澎湃了,能不能解bl啊

  • Niuma 05-26 22:00
    2

    前排瞻仰大佬的项目的稳定发展~模版。

  • 孙方桐 05-26 22:05
    3

    前排前排,等着大佬更新完,希望大佬有专门一期能推荐一下方便搭建的手机。

  • Semmering 楼主 05-26 22:26
    4

    这个我不清楚诶。你可以去酷安看看。不过这个国产系统都不咋地,原生搞服务器才最适合

  • Semmering 楼主 05-26 22:27
    5

    感谢支持,哈哈哈。有不清楚的随时问

  • Semmering 楼主 05-26 22:28
    6

    满足能root,最好能刷类原生的rom的就行。不必在意太多。不推荐买二手,因为有那个钱,上手小型nas更好

  • 春风得意王大帅 05-26 23:01
    7

    感谢佬的分享,等教程完了跟着操作,正好有部一加6

  • Semmering 楼主 05-26 23:02
    8

    感谢支持,有问题及时反馈。 ^-^ ^-^

  • 沐大 05-26 23:03
    9

    可以看下droidspaces。

  • Semmering 楼主 05-26 23:06
    10

    感谢分享,我现在就去看看这个,如果是更好的方案我去研究一下

  • 南山 05-26 23:13
    11

    不知不觉都第五期了啊,感谢佬友教程 ^-^

  • Semmering 楼主 05-27 18:18
    12

    是啊,我也没想到居然都五期了,还有最后一期,感谢支持

  • 叶一山 05-27 23:16
    13

    看了第一期,佬的乐视是什么型号,我有一个旧的max2,不能旁路的话,就没办法了^-^

  • Semmering 楼主 05-27 23:22
    14

    我也是max2,这个手机不支持ipv6,算了吧。不知道原生rom是否有ipv6

  • Semmering 楼主 05-27 23:23
    15

    你是什么rom?可以刷个类原生看看支不支持ipv6

  • Dawei12138 05-27 23:28
    16

    手机当服务器是不是会受架构限制啊,之前折腾过docker,后来放弃了

  • Semmering 楼主 05-27 23:44
    17

    我目前没试过docker。晚点试试看。

  • weishan 06-30 23:03
    18

    8那个地方注释之后 我需要重新exit退出一下然后chroot-distro login ubuntu才能apt update

  • Semmering 楼主 07-01 00:09
    19

    我记得我当时好像是不需要的。可能是版本问题或者环境问题,导致修改文件后需要重新登陆系统才生效。没事,解决了就好

* 帖子来源Linux.do
返回