Termux+Ubuntu+SSH+SFTP+Swift+Code-Server

Android Termux 运行Linux系统

安装Termux

通过F-Droid或者Github下载安装Termux

更新Termux源

使用清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/termux/
直接输入一下命令更新源:

sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list

更新源:

apt update && apt upgrade

提供访问手机存储权限:

termux-setup-storage

Termux安装Linux

安装基础件proot-distro:

 pkg install proot-distro 

或者

apt install proot-distro

查看proot-distro的使用帮助为:

proot-distro help

可以查看可安装的Linux系统:

proot-distro list

安装以上系统就简单了:

proot-distro install <alias> 

比如,我要安装ubuntu 22.04,指令为:

proot-distro install ubuntu

不同的版本安装名称可能不同,输入proot-distro list显示的可安装alias名称即可。

安装完成后,进入 Linux发行版环境的指令为,比如我安装的ubuntu为:

proot-distro login ubuntu

如果认为每次进入 ubuntu的命令太长,可以在 Termux 环境新建一个sh文件,比如新建start-ubunt22.sh。
vim start-ubunt22.sh 编辑内容并保存:

proot-distro login ubuntu

启动:

./start-ubunt22.sh

就进入了真正的linux环境了。之后,传统操作比如换源,安装软件等等,一条龙走起来吧。
输入exit可以退出登录的linux系统:
自此Termux安装Linux步骤完毕。

Ubuntu 初始化

换源

如果速度不行,可以换成清华镜像源:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/
然后

apt update && apt upgrade

安装中文

  1. 安装中文支持包language-pack-zh-hans:
sudo apt-get install language-pack-zh-hans
  1. 修改: vim /etc/environment (在文件的末尾追加):
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
  1. 再修改: vim /var/lib/locales/supported.d/local (没有这个文件就新建,同样在末尾追加):
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312

最后,执行命令:

sudo locale-gen

对于中文乱码是空格的情况,安装中文字体解决:

sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

安装openssh-server

命令:

apt install openssh-server

修改配置:

vim /etc/ssh/sshd_config

修改端口
查找:#Port 22
修改为: Port 2222
注意: 端口最好是4位数即以上的端口号,否则容易造成ssh启动失败,这儿Termux上Linux存在的问题。

支持root用户
查找:#PermitRootLogin prohibit-password 或者 #PermitRootLogin yes
修改为:PermitRootLogin yes

支持密码认证
查找:#PasswordAuthentication yes
修改为:PasswordAuthentication yes

启动ssh:

service ssh start | stop | restart
或者:
/usr/sbin/sshd

通过命令查看ssh是否启动成功:

ps -e | grep ssh

连接ssh:

ssh -p 2222 root@192.168.1.111
或者
ssh -p 2222 192.168.1.111
免密登录后可以
ssh 192.168.1.111

参考:
https://docs.andronix.app/ssh/ssh-basics/#ssh-via-linux

SSH免密登录

创建密钥, 使用下面命令生成公私密钥

ssh-keygen -t rsa

将公钥添加到远程服务器认证列表

方式1:直接使用命令

ssh-copy-id -i ~/.ssh/android-liunx.pub root@192.168.1.111 -p 2222
-p 2222: 标识ssh使用自定义端口

方式2:直接拷贝android-liunx.pub公钥

  1. 将xxx.pub 上传到远程服务器
  2. 使用下列命令添加远程服务器认证
cat ~/home/android-liunx.pub >> ~/.ssh/authorized_keys

退出主机,即可发现已经能够免认证访问主机。
免密登录:

ssh -p 2222 root@192.168.1.111

添加快捷登录方式

进入客户机,编辑下面文件

vim ~./ssh/config

添加如下示例:

Host 192.168.1.111                                  #自定义别名
    HostName 192.168.1.111                          #主机
    User root                                       #用户
    Port 2222                                       #端口
    IdentityFile /Users/kimi/.ssh/android-liunx     #私钥

接下来就可以使用快捷命令: ssh name

ssh 192.168.1.111

参考:
https://www.jianshu.com/p/974f9e164c6e/
https://zhuanlan.zhihu.com/p/73024008

安装sqlite3

sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev

SFTPGO安装与配置: SFTP, FTP WebDAV

使用SFTPGO的原因:vsftp和openssh-server中的sftp总是配置不成功,而导致无法使用。

安装sftpgo

  1. 首先,通过在终端中运行以下命令,确保所有系统包都是最新的。
sudo apt update & apt upgrade
sudo apt install curl gnupg2 gnupg wget
  1. 在 Ubuntu 22.04 上安装 SFTPGo
    默认情况下,SFTPGo 在 Ubuntu 22.04 基础存储库中不可用。现在运行以下命令将 SFTPGo PPA 存储库添加到您的 Ubuntu 系统:
sudo add-apt-repository ppa:sftpgo/sftpgo

如果出现:sudo: add-apt-repository:找不到命令
需要安装:

sudo apt-get install software-properties-common

启用存储库后,现在使用以下命令安装最新版本的 SFTPGo:

sudo apt update
sudo apt install sftpgo

sftpgo配置

sftpgo配置文件:/etc/sftpgo/sftpgo.json

vim /etc/sftpgo/sftpgo.json

配置:sftp,ftp,webdav
打开/etc/sftpgo/sftpgo.json找到对应的位置分别配置sftp,ftp,webdav服务

sftp: 2022
sftpd.bindings.port = 2022

ftp: 2021
ftpd.bindings.port = 2021

webdav: 2020
webdavd.bindings.port = 2020

#web 管理 默认8080
httpd.bindings.port = 2000   

sftpgo配置完毕,进入http://localhost:2000 的Users下创建账号即可使用S/FTP,WEBDAV等服务了。

sftpgo 启动和停止

为了方便使用写了两个启动和停止sftpgo服务的脚本

启动sftpgo: sftpgo-start.sh

#!/usr/bin/env bash 
start()
{   
    mkdir -p /root/.config/sftpgo
    cd /root/.config/sftpgo
    sftpgo serve
}
echo "开启sftpgo服务"
echo "sftpgo config: /etc/sftpgo/sftpgo.json"
echo "sftpgo sftp port: 2022"
echo "sftpgo ftp port: 2021"
echo "sftpgo webdav port: 2020"
echo "sftpgo manage web: http://localhost:8080"
start 
##
## 如果使用 start 启动可以不需要sftpgo-stop停止服务,直接结束当前终端即可。
## 使用 start & 启动则可以终止当前终端,停止服务需要sftpgo-stop命令。
##

停止sftpgo服务: sftpgo-stop.sh

#!/usr/bin/env bash 

## 关闭sftpgo服务
stop()
{
    #KillPort脚本需要拷贝到/usr/local/bin/
    #在arm Linux上无法跑
    #KillPort 8080
    list=$(ps -a | grep sftpgo)
    for var in ${list[@]};
    do
        echo $var
        kill -9 $var
        break
    done
}
echo "关闭sftpgo服务"
echo "如果无法关闭可以使用下列命令,查找对应的进程号"
echo '进程检测命令: echo $(ps -a | grep sftpgo) '
echo '进程检测命令: echo $(ps -ax | grep sftpgo) '
echo '进程检测命令: echo $(ps -axu | grep sftpgo) '
stop 
echo

创建软连接方便直接调用

sudo ln -s /opt/script/sftpgo-start.sh /usr/local/bin/sftpgo-start
sudo ln -s /opt/script/sftpgo-stop.sh /usr/local/bin/sftpgo-stop

现在可直接使用命令:

sftpgo-start  
sftpgo-stop   

参考连接:
https://www.xtuos.com/6091.html
https://cloud.tencent.com/developer/article/2021019
https://blog.csdn.net/qq_45661358/article/details/126580800

桌面与VNC

可以通过AnLinux应用提供的命令安装桌面与VNC
LXQT这个左面比较好看,可以安装试试。

桌面安装至少需要500MB甚至更多的控件,如果不需要可以不安装,直接使用SSH即可。

备份

到这儿通过Termux安装Ubuntu已经完成,这儿可以进行一个系统的备份,防止误操作。
备份命令:

proot-distro backup ubuntu --output ubuntu22.0.4.backup

恢复:

proot-distro restore ubuntu22.0.4.backup

Swift 安装

Swift安装环境参考:
https://www.swift.org/download/
Arm Swift下载:
https://github.com/futurejones/swift-arm64/releases
Ubuntu-22.0.4:
https://download.swift.org/swift-5.7-release/ubuntu2204-aarch64/swift-5.7-RELEASE/swift-5.7-RELEASE-ubuntu22.04-aarch64.tar.gz

Linux Swift 安装需要环境:

Ubuntu 18.04

apt-get install \
          binutils \
          git \
          libc6-dev \
          libcurl4 \
          libedit2 \
          libgcc-5-dev \
          libpython2.7 \
          libsqlite3-0 \
          libstdc++-5-dev \
          libxml2 \
          pkg-config \
          tzdata \
          zlib1g-dev

Ubuntu 20.04

apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4 \
          libedit2 \
          libgcc-9-dev \
          libpython2.7 \
          libsqlite3-0 \
          libstdc++-9-dev \
          libxml2 \
          libz3-dev \
          pkg-config \
          tzdata \
          uuid-dev \
          zlib1g-dev

Ubuntu 22.04

apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4-openssl-dev \
          libedit2 \
          libgcc-9-dev \
          libpython3.8 \
          libsqlite3-0 \
          libstdc++-9-dev \
          libxml2-dev \
          libz3-dev \
          pkg-config \
          tzdata \
          unzip \
          zlib1g-dev
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,302评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,563评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,433评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,628评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,467评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,354评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,777评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,419评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,725评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,768评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,543评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,387评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,794评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,032评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,305评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,741评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,946评论 2 336

推荐阅读更多精彩内容