ssh into termux

安装 termux

这里下载 termux

adb install ~/Downloads/termux-app_v0.118.0+github-debug_arm64-v8a.apk

安装 ssh 服务

请求权限时,总是选择默认选项,不让修改任何设置

pkg install root-repo
pkg upgrade
pkg install openssh
passwd # 设置好密码
sshd # 启动服务

链接 ssh 服务

ssh <ip of android device> -p 8022
# 使用刚刚设置的密码
# scp 本地文件路径 远程主机用户名@远程主机名或IP:远程文件保存的位置路径
# scp local_file remote_username@remote_ip:remote_folder
# scp -P 8022 .ssh.tar.gz 192.168.1.132:~/
# scp -r 本地文件夹路径 远程主机用户名@远程主机名或IP:远程文件夹保存的位置路径
# scp -r local_folder remote_username@remote_ip:remote_folder

扩展

# 批量安装需要的包
pkg add git wget curl

# 更换国内源
# https://mirrors.tuna.tsinghua.edu.cn/help/termux/  # 换源工具termux-change-repo
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg update

# 发起手机存储的请求权限
termux-setup-storage

# proot可以为手机没有root的设备模拟root环境,不是真正的 root
pkg install proot
termux-chroot

# tsu 是su的 Termux 版本,是一个真正的 root 权限,root设备才能用,操作有风险
pkg install tsu
tsu # 切换 root用户

# 备份
termux-setup-storage
cd /data/data/com.termux/files
tar -zcf /sdcard/termux-backup.tar.gz home usr
# 不要将备份文件存储在 Termux 私有目录中,因为从设置中清除 Termux 数据后,这些目录也将被删除

# 恢复
termux-setup-storage
cd /data/data/com.termux/files
tar -zxf /sdcard/termux-backup.tar.gz --recursive-unlink --preserve-permissions
# 操作完成重启 Termux 即可恢复数据。

开发环境

Termux 可以完美的运行 C、Python、Java、PHP、Ruby等开发环境

编辑器

# 汉字乱码
vim .vimrc
# set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
# set enc=utf8
# set fencs=utf8,gbk,gb2312,gb18030
source .vimrc

PHP

# apache
pkg install apache2
apachectl start
# http://127.0.0.1:8080
# $PREFIX/share/apache2/default-site/htdocs/index.html
apachectl restart
apachectl stop

# 配置 PHP解析
# pkg install php-apache
# $PREFIX/etc/apache2/httpd.conf
# 文件末尾添加以下行
# LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so
# <FilesMatch \.php$>
#   SetHandler application/x-httpd-php
# </FilesMatch>
# 查找修改配置默认首页
# <IfModule dir_module>
#   DirectoryIndex index.php index.html
# </IfModule>
# apachectl restart

# Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
# AH00013: Pre-configuration failed
# 注释行 LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
# 启用行 LoadModule mpm_worker_module libexec/apache2/mod_mpm_prefork.so

# echo '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php
# http://127.0.0.1:8080

# 数据库
pkg install mariadb
cd /data/data/com.termux/files/usr/etc/
mkdir my.cnf.d
mysql_install_db # 初始化 mysql.user 表
nohup mysqld &
ps aux|grep mysql
mysql -u $(whoami) # 登录 Termux 用户
use mysql;
set password for 'root'@'localhost' = password('你设置的密码');# 修改 root 密码的 SQL语句
grant all on *.* to root@'%' identified by 'P@ssw0rd' with grant option; # 允许root远程访问
flush privileges;
quit;
# mysql_secure_installation # 以后可以使用这个命令设置密码

# nginx
pkg install nginx
nginx -t # 测试文件是否正常
nginx # 启动 nginx 服务 http://127.0.0.1:8080
pgrep nginx # 查看 nginx 进程PID号
nginx -s reload # 重启服务
nginx -s stop # 停止服务

# 解析PHP
pkg install php-fpm
vim $PREFIX/etc/php-fpm.d/www.conf
# 搜索 listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock
# 改为 listen = 127.0.0.1:9000
vim $PREFIX/etc/nginx/nginx.conf
# worker_processes  1;
# events {
#     worker_connections  1024;
# }
# http {
#     include       mime.types;
#     default_type  application/octet-stream;
#     sendfile        on;
#     keepalive_timeout  65;
#     server {
#         listen       8080;
#         server_name  localhost;
#         location / {
#             root   /data/data/com.termux/files/usr/share/nginx/html;
#             index  index.html index.htm index.php;
#         }
#         error_page   500 502 503 504  /50x.html;
#         location = /50x.html {
#             root   /data/data/com.termux/files/usr/share/nginx/html;
#         }
#         location ~ \.php$ {
#             root           html;
#             fastcgi_pass   127.0.0.1:9000;
#             fastcgi_index  index.php;
#             fastcgi_param  SCRIPT_FILENAME  /data/data/com.termux/files/usr/share/nginx/html$fastcgi_script_name;
#             include        fastcgi_params;
#         }
#     }
# }
echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php
php-fpm # 启动 php-fpm 服务
nginx # 启动 nginx 服务

# pkg install php
# php -S 0.0.0.0:8888 -t www/

nodejs

pkg install nodejs-lts
npm install -g http-server
http-server # 启动 http-server 服务

# Cannot read property 'length' of undefined
vim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js
# 查找    , maxConcurrentWorkers : require('os').cpus().length
# 改为    , maxConcurrentWorkers : (require('os').cpus() || { length: 1}).length

python3

pkg install python -y
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

其它linux发行版

https://github.com/sqlsec/termux-install-linux

termux-api

这里下载并安装termux-api最新匹配版本的 app。安装后给出需要的所有权限。

pkg install termux-api

更多细节玩法