1.旧手机安装Termux软件
因为我用的是旧手机,Android版本为6.0且没有被root,所以我选用Termux来模拟Linux环境
termux官方的github-actions里给了适合Android5.0和6.0版本的应用压缩包
我是用的是0.118.0通用版的termux,解压缩后就可以得到相应版本的termux安装包
2.查看termux官方源给的可以安装的包
pkg list-all
在某个包后面如果出现了installed,则说明这个包已经被安装了;第一步先查看官方源给的包的原因是当我们使用命令pkg install 某个package
来安装某个包时,如果出现了Unable to locate package 某个package
,是因为你想安装的这个包不在官方给的源里,需要另外去添加别人的源
3.添加源或更换源
pkg install vim
首先得安装vim这个文字编辑器,我这里用的是vim,不会vim语法的可以自行搜索
pkg install nano
或者安装nano这个文字编辑器,看自己哪个可以安装或者哪个熟悉就用哪个
vim $PREFIX/etc/apt/sources.list
进入官方的源文件,在手机输入法键盘按i
即可进入编辑模式,你可以在官方源前面加上#
来注释保留,也可以删掉换成其他的源比如换成清华源deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main
,当然也可以换成其他的源,这个可以自行搜索;
更改完成后,先在termux的虚拟键盘上按ESC
进入命令模式,再在手机输入法键盘上依次输入:wq
即可保存并退出vim
vim $PREFIX/etc/apt/sources.list.d/science.list
science.list
也和上面的sources.list
差不多,可以换成清华源deb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable
,再保存并退出
vim $PREFIX/etc/apt/sources.list.d/game.list
game.list
也可以换成清华源deb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable
,再保存并退出
因为我在清华源和中科大的源里找不到一些termux官方源有的包,所以我没有更换源,就用的官方源,如果官方源安装不了包可能是网络问题,需要科学上网
4.给termux更换配色
termux-setup-storage #先得让termux获取手机存储权限
pkg install curl
首先安装curl
以执行下面命令
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
然后这个命令会打开一个脚本,这个脚本先会弹出Enter a number, leave blank to not to change:
,可以输入数字0-43
来选择你想要的色彩
,你也可以在全部选择完成后,重新在termux中输入chcolor
,它会列出具体的0-43
这44种色彩
;
接着又会出现一个Enter a number, leave blank to not to change:
,也可以输入数字0-26
来选择你想要的字体
,你也可以在全部选择完成后,重新在termux中输入chfont
,它会列出具体的0-26
这27种字体
5.给termux更改启动问候语
vim $PREFIX/etc/motd
依旧输入i
进行编辑,例如你可以复制粘贴国光大佬的
_____
|_ _|__ _ __ _ __ ___ _ ___ __
| |/ _ \ '__| '_ ` _ \| | | \ \/ /
| | __/ | | | | | | | |_| |> <
|_|\___|_| |_| |_| |_|\__,_/_/\_\
也可以试试我的,然后保存退出后重进termux就可以了
/\ __ ~~ ____ ____
//\\ || || || / __ \
//——\\ ||____ || || | \__\ \
// \\ |_____| || || \____/\\
6.安装编译环境
6.1安装Clang
pkg install clang
安装完clang后就能在termux写C和C++语言,例如
vim hello.c
#include<stdio.h>
int main(){
printf("Hello friends!");
return 0;
}
先创建一个C语言的文件,再写入上面内容并保存退出
clang hello.c -o hello
ls
然后编译这个C语言文件并列出当前目录的文件有哪些,输入ls
后你就可以看到有一个hello
的文件
./hello
这样就能运行编译后的hello文件,然后你会看见Hello friends!
输出在屏幕上了
6.2安装python
pkg install python -y
python -V #查看python的版本
这里默认安装的是python3而不是python2,如果需要安装python2,则输入下面即可
pkg install python2 -y
6.3安装nodejs
pkg install nodejs-lts #lts为长期支持版本
注意别用
pkg install nodejs
,不然你会发现你用npm
的时候下不了一些node_modules
;如果安装了就pkg uninstall nodejs
,再重新安装nodejs-lts
6.4安装http-server
npm install -g http-server
然后运行http-server
http-server
你可以看到它给出了一个http:127.0.0.1:8080
的url,然后你用手机的浏览器访问这个url就能看到你termux的文件夹的内容了;接着在termux中按一下虚拟键盘上的CTRL
和你手机输入法键盘上的c
即可退出
6.5安装MariaDB(MySQL)
pkg install mariadb
mysql --version #查看mysql版本
nohup mysqld & #用Linux自带的nohup启动
mysql安装好就能启动,不需要初始化!能启动成功说明mysql已经安装好了
kill -9 `pgrep mysql` #关掉mysql的进程
7.安装Aria2来下载东西
7.1安装aria2
pkg install aria2
aria2c -v #查看aria2的版本
要注意的是aria2的命令是
aria2c
而不是aria2
7.2创建aria2的配置文件、数据文件和日志文件
touch aria2.conf #配置文件
touch aria2.session #数据文件
touch aria2.log #日志文件
7.2.1自定义aria2的配置文件
readlink -f aria2.session #获取aria2.session文件的完整路径,并记下来
readlink -f aria2.log #获取aria2.log文件的完整路径,并记下来
readlink -f aria2.conf #获取aria2.conf文件的完整路径,并记下来
上面两个文件aria2.session
和aria2.log
的路径要记住,因为后面配置aria2.conf
的时候需要用到
vim aria2.conf
进入我们之前新建的aria2.conf
文件,复制粘贴下面的内容
##===================================##
## 文件保存相关 ##
##===================================##
# 文件保存目录
dir=[下载文件夹位置]
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=16M
# 断点续传
continue=true
#日志保存
log=[日志文件位置/aria2.log]
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=prealloc
##===================================##
## 下载连接相关 ##
##===================================##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=10
# 同一服务器连接数, 添加时可指定, 默认:1
# 官方的aria2最高设置为16, 如果需要设置任意数值请重新编译aria2
max-connection-per-server=16
# 整体下载速度限制, 运行时可修改, 默认:0(不限制)
max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0(不限制)
max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0(不限制)
max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0(不限制)
max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=false
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
# 建议同max-connection-per-server设置为相同值
split=16
##===================================##
## 进度保存相关 ##
##===================================##
# 从会话文件中读取下载任务
input-file=[数据文件保存位置/aria2.session]
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=[数据文件保存位置/aria2.session]
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
##===================================##
## RPC相关设置 ##
##此部分必须启用,否则无法使用WebUI
##===================================##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=
# 启动SSL
# rpc-secure=true
# 证书文件, 如果启用SSL则需要配置证书文件, 例如用https连接aria2
# rpc-certificate=
# rpc-private-key=
##===================================##
## BT/PT下载相关 ##
##===================================##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
enable-dht6=true
# DHT网络监听端口, 默认:6881-6999
dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# 每个种子限速, 对少种的PT很有用, 默认:50K
bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
force-save=true
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
# 单个种子最大连接数, 默认:55 0表示不限制
bt-max-peers=0
# 最小做种时间, 单位:分
# seed-time = 60
# 分离做种任务
bt-detach-seed-only=true
#BT Tracker List ;下载地址:https://cdn.jsdelivr.net/gh/XIU2/TrackersListCollection/best_aria2.txt
#页面地址:https://github.com/XIU2/TrackersListCollection/blob/master/README-ZH.md
bt-tracker=http://all4nothin.net:80/announce.php,http://kinorun.com:80/announce.php,http://masters-tb.com:80/announce.php,http://mediaclub.tv:80/announce.php,http://milanesitracker.tekcities.com:80/announce,http://nyaa.tracker.wf:7777/announce,http://open.acgnxtracker.com:80/announce,http://openbittorrent.com:80/announce,http://opentracker.xyz:80/announce,http://share.camoe.cn:8080/announce,http://t.nyaatracker.com:80/announce,http://torrent-team.net:80/announce.php,http://torrentzilla.org:80/announce,http://torrentzilla.org:80/announce.php,http://tr.cili001.com:8070/announce,http://tracker.files.fm:6969/announce,http://tracker.gbitt.info:80/announce,http://tracker.ipv6tracker.ru:80/announce,http://tracker.tfile.me:80/announce,http://tracker.torrentyorg.pl:80/announce,http://vps02.net.orel.ru:80/announce,http://www.all4nothin.net:80/announce.php,https://1337.abcvg.info:443/announce,https://carbon-bonsai-621.appspot.com:443/announce,https://tr.ready4.icu:443/announce,https://tr.torland.ga:443/announce,https://tracker.imgoingto.icu:443/announce,https://tracker.kuroy.me:443/announce,https://tracker.lilithraws.cf:443/announce,https://tracker.nitrix.me:443/announce,https://tracker.parrotsec.org:443/announce,https://tracker.tamersunion.org:443/announce,https://trackme.theom.nz:443/announce,udp://9.rarbg.com:2810/announce,udp://abufinzio.monocul.us:6969/announce,udp://bt1.archive.org:6969/announce,udp://bt2.archive.org:6969/announce,udp://code2chicken.nl:6969/announce,udp://discord.heihachi.pw:6969/announce,udp://engplus.ru:6969/announce,udp://escorts.subventas.com:53/announce,udp://exodus.desync.com:6969/announce,udp://fe.dealclub.de:6969/announce,udp://ipv6.tracker.monitorit4.me:6969/announce,udp://ipv6.tracker.zerobytes.xyz:16661/announce,udp://jeremylee.sh:6969/announce,udp://mail.realliferpg.de:6969/announce,udp://movies.zsw.ca:6969/announce,udp://open.demonii.com:1337/announce,udp://open.tracker.cl:1337/announce,udp://opentor.org:2710/announce,udp://p4p.arenabg.com:1337/announce,udp://retracker.hotplug.ru:2710/announce,udp://thetracker.org:80/announce,udp://tracker-de.ololosh.space:6969/announce,udp://tracker.0x.tf:6969/announce,udp://tracker.altrosky.nl:6969/announce,udp://tracker.auctor.tv:6969/announce,udp://tracker.beeimg.com:6969/announce,udp://tracker.birkenwald.de:6969/announce,udp://tracker.bitsearch.to:1337/announce,udp://tracker.blacksparrowmedia.net:6969/announce,udp://tracker.dler.com:6969/announce,udp://tracker.haynet.io:6969/announce,udp://tracker.jordan.im:6969/announce,udp://tracker.leech.ie:1337/announce,udp://tracker.moeking.me:6969/announce,udp://tracker.monitorit4.me:6969/announce,udp://tracker.ololosh.space:6969/announce,udp://tracker.openbittorrent.com:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.pomf.se:80/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.zerobytes.xyz:1337/announce,udp://tracker0.ufibox.com:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker2.dler.com:80/announce,udp://tracker2.dler.org:80/announce,udp://u.wwwww.wtf:1/announce,udp://udp-tracker.shittyurl.org:6969/announce,udp://vibe.sleepyinternetfun.xyz:1738/announce,udp://www.torrent.eu.org:451/announce,wss://tracker.openwebtorrent.com:443/announce
修改上面的[下载文件夹位置]
,去掉[]
把它换成由/
组成的你想放在安卓内存中的位置如/storage/emulated/0/Dowmload
;修改[日志文件位置/aria2.log]
,去掉[]
把它换成由/
组成的刚刚获取的touch aria2.log
文件的完整路径;修改[数据文件保存位置/aria2.session]
,去掉[]
把它换成由/
组成的刚刚获取的aria2.session
文件的完整路径;然后保存并退出
7.3启动aria2的rpc服务
aria2c --conf-path=[aria2.conf文件路径/aria2.conf] #注意要删除[],aria2.conf文件路径为我们刚刚获取的路径
启动aria2的rpc服务后termux可能输入不了命令了,这时可以选择从左边向右滑动屏幕新建一个termux会话窗口或直接退出termux
7.3.1把aria2的rpc服务放入后台启动
aria2c --conf-path=[aria2.conf文件路径/aria2.conf] -D #在启动aria2的基础上加一个-D即可
7.3.2实现打开termux后其后台自动启动aria2的rpc服务
readlink -f .zshrc #获取.zshrc文件的完整路径
vim /data/data/com.termux/files/home/.zshrc #打开.zshrc文件,/data/data/com.termux/files/home路径用你刚刚获取的,我的路径是这样的:/data/data/com.termux/files/home
用vim打开.zshrc
文件后,添加下面内容到最后一行,然后保存并退出
aria2c --conf-path=[aria2.conf文件路径/aria2.conf] -D
7.3.3自定义短命令后台启动aria2的rpc服务
和上面一样打开.zshrc
文件,把下面内容添加到刚刚添加的那行的上一行即倒数第二行
alias aria2c-s='aria2c --conf-path=[aria2.conf文件路径/aria2.conf] -D'
上面的aria2c-s
可以自定义要后台启动aria2的rpc服务的短命令,我改成的是aria2c-s
7.4安装并启动webui-aria2本地管理服务器
7.4.1安装git
pkg install git
7.4.2克隆webui-aria2项目
git clone https://github.com/ziahamza/webui-aria2.git
7.4.3启动webui-aria2本地管理服务器
cd webui-aria2 #进入webui-aria2文件夹
node node-server.js #启动webui-aria2
启动webui-aria2
完成后会看到termux已提示有localhost:8888
了,然后我们打开浏览器输入127.0.0.1:8888
即可看到webui-aria2的本地管理服务器GUI
7.5把aria2作为服务器来下载内容
因为本人没有申请
公网IP
,所以只能借助内网穿透
试试看了,我目前只试了cpolar
这个内网穿透的服务,因为可以直接在termux上操作(比较方便);但还是可以去试试其他延迟比较低的内网穿透服务,我个人就不在这里推荐了,因为免费的服务它的延迟可能都那样(确信
7.5.1创建sources.list.d文件夹
mkdir -p $PREFIX/etc/apt/sources.list.d
7.5.2添加cpolar源
echo "deb [trusted=yes] http://termux.cpolar.com termux extras" >> $PREFIX/etc/apt/sources.list.d/cpolar.list
7.5.3更新库
pkg update
7.5.4安装cpolar
pkg install cpolar
7.5.5安装termux服务
pkg install termux-services
安装完termux服务后记得退出termux重新进一次才能生效
7.5.6启动和关闭cpolar服务
sv up cpolar #启动
sv down cpolar #关闭
7.5.7设置开机自启cpolar服务
sv-enable cpolar
7.5.8进入cpolar的GUI界面
在浏览器中输入127.0.0.1:9200
即可打开该页面,打开后会有一个登录界面,用邮箱去注册一个新的账户,然后选择免费的套餐就可以用cpolar的内网穿透服务了
7.5.9创建8888端口的隧道
①点击cpolar的GUI界面左边导航栏的隧道管理
,然后选择创建隧道
;
②隧道名字
任意取即可;
③协议
选择http
;
④本地地址
填入8888
(也就是我们webui-aria2的本地管理服务器GUI
的端口号);
⑤然后域名类型
选择随机域名
(如果自己有多的域名也好像可以选择自定义域名,不过我没试过;选这个随机域名
有个缺点,就是说你创建的这个公网隧道链接
可能过了一段时间就用不了,得重新刷新这个界面才会显示新的公网隧道链接
);
⑥地区
选择China Top
就好了,因为选其他的的话,如果没有开会员,可能用不了或延时比较高
⑦点击创建
即可
7.5.10查找公网隧道链接
点击cpolar的GUI界面左边导航栏的状态
,然后选择在线隧道列表
,在右边列表的公网地址
那一列即可看到以http
和https
开头的就是我们webui-aria2的本地管理服务器GUI
的公网隧道链接
了
7.5.11通过其他设备访问公网隧道链接
打开其他设备的浏览器,输入刚刚创建的公网隧道链接
即可(虽然但是,内网穿透服务的延迟太高效果可能也不好;还有值得注意的一点是,安装termux本机
的8888
端口只是aria2
的GUI界面
,还要确保aria2
的rpc
服务能够连上才能通过其他设备远程使用安装termux本机
上的aria2
来下载东西)
8.安装kali-nethunter系统
8.1安装wget
pkg install wget
8.2安装kali官网的脚本
wget -O install-nethunter-termux https://offs.ec/2MceZWr
8.3给kali脚本执行权限并运行
chmod +x install-nethunter-termux
./install-nethunter-termux
安装完成后会有kali的图标
和命令行提示
出现,输入nh
即可打开kali-nethunter的终端
,输入exit
即可退出
安装过程有点漫长,毕竟超过1GB了,如果像我一样安装
原版kali
且手机没有被root
可能会遇到它一直在extracting rootfs
即提取root文件
,那得继续等,直到它提取失败后,问是否要重试,我直接选的否,因为我实在不想折腾刷机这块了;如果手机已经被root了,那应该畅通无阻,除非不会科学上网
8.4开启kex(VNC)服务进行远程连接kali桌面
8.4.1创建连接密码
nh kex passwd
然后会弹出提示输入一次,再验证输入一次即可
8.4.2下载远程连接软件–VNC Viewer或NetHunter KeX
8.4.3启动kex服务
nh kex &
启动后会开启5901端口
可能会有警告
no matching vnc server running for this user
,但好像可以正常使用,因为我安装了nmap
,用nmap 127.0.0.1
扫描主机号后发现确实有5901端口
8.4.4用远程连接软件连接5901端口
打开VNC Viewer
或NetHunter KeX
,在主机地址那填上127.0.0.1
,端口号填5901
,VNC Viewer
连接后还需要输入刚刚在termux创建连接时的密码,而NetHunter KeX
则是主机地址和端口号以及密码都要填才能连接
如果你和我一样在这出现了连接上了但只有报错提示的话,可以参考下这篇文章,虽然我没成功,因为termux的官方源里没有
rinetd
这个包
9.安装Ubuntu或其他Linux发行版
直接用上国光大佬写的脚本
9.1安装proot来模拟root
pkg install proot
9.2克隆Linux发行版安装脚本项目
git clone https://github.com/sqlsec/termux-install-linux
9.3运行Linux发行版安装脚本
cd termux-install-linux
python termux-linux-install.py
直接选择数字安装或卸载想要安装的Linux发行版即可,这点毫无压力
9.4启动Ubuntu终端
cd ~/Termux-Linux/Ubuntu
./start-ubuntu.sh
输入exit
即可退出Ubuntu终端
10.通过SSH用电脑连接手机的termux
10.1查看自己的IP地址
ifconfig
在wlan0
下面,以192.168
开头的就是自己的IP地址,然后记下来
10.2查看自己的用户名
whoami
u0_
开头的这个就是,也记下来
10.3安装openSSH
pkg install openssh
passwd
安装完成后输入passwd
,填写两次连接时的密码
10.4安装nmap
pkg install nmap
10.5电脑上安装xshell
10.6手机上termux开启ssh
sshd
10.7电脑xshell连接手机termux
在xshell左上角点击新建会话的图标,主机号输入之前查询的自己的IP地址,端口号填8022
,之后会弹出验证用户名,输入之前查询的用户名即可,完成后就能在电脑上敲命令执行termux的任务了!
参考资料1:Termux 高级终端安装使用配置教程
参考资料2:优雅地使用完美版Termux-Aria2服务器(带本地GUI管理)以及ipv6的公网访问
参考资料3:Termux的安装、换源、基本库安装、基本操作讲解以及Termux的使用心得
参考资料4:Android Termux安装MySQL,内网穿透实现公网远程访问