termux使用

  • 换源

# 执行命令, 或者手动编辑
termux-change-repo
# 用户目录默认就是在/data/data/com.termux/files/home
vim /data/data/com.termux/files/usr/etc/apt/sources.list
# 编辑,注释默认的,换为国内的清华源
# deb https://termux.net stable main
deb http://mirrors.tuna.tsinghua.edu.cn/termux stable main
# 更新源
apt-get update
# 更新包
pkg up

# golang写的wenui文件管理, 推荐dufs
https://github.com/filebrowser/filebrowser

# 提示缺少.so文件直接更新
# library "libicui18n.so.74" not found: needed by main executable
pkg up

安装软件

pkg install vim git zsh wget curl openssh busybox tmux

# 服务的位置
ls /data/data/com.termux/files/usr/var/service
busybox-httpd  ftpd  nginx  sshd  telnetd

安装 oh my zsh

sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"

pc用ssh连接手机Termux

电脑和手机都要安装sshd服务并开启

# 最新版本无需强制id_rsa登录直接使用密码也能登录

#pc
##电脑生成密匙,无脑回车
ssh-keygen -t rsa
##电脑也开启sshd服务,待会使用手机的ssh连接到电脑拷贝id_rsa.pub内容
systemctl start sshd
##或者mac:
/usr/sbin/sshd -h /Users/jcleng/.ssh/id_rsa
#phone
##手机连接拷贝执行
ssh [email protected] "cat ~/.ssh/id_rsa.pub" >> $HOME/.ssh/authorized_keys
##查看手机的用户名
whoami
##开启服务
# CANNOT LINK EXECUTABLE "sshd": library "libcrypto.so.3" not found: needed by main executable
# https://github.com/termux/termux-packages/issues/15155
# 更新包
pkg up

# 需要绝对路径进行执行
busybox which sshd
/data/data/com.termux/files/usr/bin/sshd
# 启动错误修正: sshd: no hostkeys available -- exiting.
ssh-keygen -A
#pc
# 连接到手机
ssh [email protected] -p 8022

运行nginx

#安装
pkg install nginx
#启动
nginx
#停止(以端口进行停止)
fuser -k 8080/tcp
#重启
nginx -s reload
#查看占用端口(默认是8080)
netstat   -anp   |   grep nginx
#查看所有TCP端口
netstat   -anp   |   grep tcp
#得到
$ netstat   -anp   |   grep tcp
netstat: showing only processes with your user ID
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      14253/nginx: master
tcp        0      0 0.0.0.0:8022            0.0.0.0:*               LISTEN      8847/sshd
tcp        0      0 0.0.0.0:40790           0.0.0.0:*               LISTEN      -
tcp        0      0 192.168.1.14:45872      222.211.90.180:5062     ESTABLISHED -
tcp        0      0 192.168.1.14:8080       192.168.1.18:51712      FIN_WAIT2   -
tcp      405      0 192.168.1.14:48054      118.89.204.100:443      CLOSE_WAIT  -
tcp        0     92 192.168.1.14:8022       192.168.1.18:41742      ESTABLISHED 12276/sshd

配置

#/home路径
cd $HOME
#/路径
cd $PREFIX

MariaDB(MySQL) 安装

#安装
pkg install mariadb
#初始化数据
mysql_install_db
#启动(这里需要使用screen来创建新的回话启动,以为启动mysql会启动日志模式)
mysqld
#修改密码(因为是空密码, 这里默认回车在输入密码)
mysql_secure_installation
#其他
	Remove anonymous users? [Y/n] Y                #是否移除匿名用户
	Disallow root login remotely? [Y/n] n          #是否不允许root远程登录
	Remove test database and access to it? [Y/n] n #是否移除test数据库
	Reload privilege tables now? [Y/n] y           #是否重新加载表的权限
#登录
mysql -uroot -p

安装php

#安装3个
pkg install php php-cgi php-fpm

配置nginx使用php-fpm

#编辑
nano $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

#编辑
nano $PREFIX/etc/nginx/nginx.conf
# 取消注释
		# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
		#
		#location ~ \.php$ {
		#    root           html;
		#    fastcgi_pass   127.0.0.1:9000;
		#    fastcgi_index  index.php;
		#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
		#    include        fastcgi_params;
		#}
#默认的网站目录
cd /data/data/com.termux/files/usr/share/nginx/html
#新建index.php文件
<?
phpinfo();
#启动配置
##模拟root
pkg install proot
termux-chroot
#启动服务
php-fpm
nginx
  • 挂载存储

termux-setup-storage
ls /sdcard
  • vnc搭配openbox

pkg install x11-repo
pkg install openbox
pkg install tigervnc
# 修改vnc启动文件,把openbox启动写入,然后启动vnc即可
vi ~/.vnc/xstartup
exec openbox-session
# 启动vnc,端口5901
vncserver :1

# openbox配置
/usr/etc/xdg/openbox/menu.xml
  • 非root设备查看端口占用

pkg install nmap
# 指定1024以上的端口, 回车可查看扫描进度
nmap -p 1024-65535 127.0.0.1

# PORT      STATE SERVICE
# 1716/tcp  open  xmsg
# 8022/tcp  open  oa-system
# 8080/tcp  open  http-proxy
# 12356/tcp open  unknown
# 25565/tcp open  minecraft
# 54321/tcp open  unknown
  • transmission

pkg install transmission
# 需要先停止, 才能修改
sv down transmission
vi ~/.config/transmission-daemon/settings.json
# "rpc-authentication-required": false,
# "rpc-host-whitelist-enabled": false,
# "rpc-whitelist-enabled": false,

sv up transmission
# web 目录
/data/data/com.termux/files/usr/share/transmission/public_html
  • proot

# 有的软件需要proot才能运行
pkg install proot
termux-chroot
./runweb.sh

# 或者在非proot环境加运行的前缀
proot ls
pkg install termux-services -y
# 重启终端或者运行
source $PREFIX/etc/profile.d/start-services.sh

# 查看已经安装的服务
ls $PREFIX/var/service/

# 查看服务运行状态
sv status sshd
# 服务设为自启动
sv-enable sshd
# 取消自启动
sv-disable sshd

# 停止服务
sv down sshd
# 启动服务
sv up sshd
# apt运行服务
/etc/runit/2
# 实际运行命令
runsvdir -P /etc/service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'


# run文件的命令需要前台运行并输入到2>&1里面

mkdir -p $PREFIX/var/service/alist

vim $PREFIX/var/service/alist/run

#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec /data/data/com.termux/files/home/alist server 2>&1

chmod +x $PREFIX/var/service/alist/run

# log
mkdir -p $PREFIX/var/service/alist/log
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/alist/log/run

# 已经运行了(日志无法查看)

# 这里额外设置alist的密码
sv down alist
cd $PREFIX/var/service/alist/
/data/data/com.termux/files/home/alist admin random
# INFO[2024-07-30 08:46:19] username: admin
# INFO[2024-07-30 08:46:19] password: F9NXfXtL
sv up alist
sv-enable alist
  • proot-distro模拟其他发行版

pkg install wget proot-distro
proot-distro list
proot-distro install ubuntu
proot-distro login ubuntu

# ubuntu-ports源
cat /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu-ports/ noble main universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ noble-updates main universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ noble-security main universe multiverse

# 服务
apt install -y transmission-daemon

service --status-all

service transmission-daemon status
service transmission-daemon restart
  • samba服务器

# 安装smb
pkg install samba libicu -y

# cat /data/data/com.termux/files/usr/share/doc/samba/smb.conf.example
mkdir -p $PREFIX/etc/samba/
vim $PREFIX/etc/samba/smb.conf

[global]
#与主机名相关的设置
workgroup = leng samba server
netbios name = leng samba server
serverstring = this is a test samba server
# 与密码相关的设置
passdb backend = tdbsam
# 非roo设置另外的端口
smb ports = 4445

# 指定网卡,我的zerotier网段
interfaces = 192.168.195.222/24
# 设则全部文件夹匿名访问
map to guest = Bad User

[jcleng]
comment = jcleng
# 文件夹位置
path = /data/data/com.termux/files/home/storage/shared/Download
writable = yes
browseable = yes
guest ok = yes


# 运行
smbd
# smbd -s ./smb.conf -l /tmp/ -d 10

smb://192.168.195.222:4445/jcleng/
  • webdav

pkg install dufs -y
# -A 操作权限
dufs -p 8081 ./ -A
# 设置账号密码,-A会失效, 操作文件
dufs -p 8081 ./ -a jcleng:jclengpass@/
# 只允许登录查看nft文件夹
dufs -p 8081 ./ -a jcleng:jclengpass@/ntf/
  • dropbear

pkg install dropbear -y
dropbear -FB -p 2223
  • httpd

pkg install busybox -y
sv up busybox-httpd
sv-enable busybox-httpd
# www目录
/data/data/com.termux/files/usr/srv/www/
# 端口:8080
http://127.0.0.1:8080
  • minidlnad

# 在chroot-ubuntu里面可以运行
proot-distro login ubuntu
apt install minidlna -y
minidlnad -d -f /etc/minidlna.conf
# minidlnad -d -f /etc/minidlna.conf
# 修改配置文件
media_dir=/storage/emulated/0
friendly_name=my oldphone DLAN

# 物理机运行失败
# minidlnad -d -f /data/data/com.termux/files/usr/etc/minidlna.conf
# [2024/08/12 23:36:08] minidlna.c:579: No MAC address found.  Falling back to generic UUID.
# Bad system call