跳到主要内容

使用内网云穿透安卓的Termux服务

投稿作者:匿名

作者邮箱:无

B站UP主: 无

GitHub: 无

前期准备工作

你需要:

  • 一台安装了Termux的Android手机,无需root权限
  • 一条私人内网云隧道
  • 确保手机和电脑在同一局域网内

通过电脑链接手机的Termux

这一步的目的是方便我们在电脑上进行操作。


更换为国内源

启动后直接输入命令

termux-change-repo

此时进入了换源界面,这里上下键是移动光标,空格键是选中,回车键是确认,选择清华源,然后回车,等待片刻即可。


安装必要软件

运行如下指令

apt update
apt upgrade

你可能会在upgrade途中遇到询问你是否更新文件,全部输入y回车即可。

我们现在需要再执行一次更换国内源的操作。

随后安装软件:

apt install openssh vim termux-services -y

启动SSH

我们只是临时使用,那么就不搞密钥登陆了。首先设置密码,输入如下指令:

passwd

在提示输入新密码时输入你的密码,然后再次确认即可。请牢记您输入的密码。
我们需要获取用户名称,输入:

whoami

这会显示您的用户名,请牢记这个用户名。我们稍后会用到它。
接下来启动SSH服务:

sv-enable sshd
sv up sshd

这样,我们的手机上的Termux就可以通过SSH连接了。同时我们也做到了开机自启动。


获取手机IP

我们没有安装对应的软件包,因此最好的办法是去手机设置中查看。
或者,在安装了对应的软件包的情况下,使用如下指令:

ip addr

找到您的手机的IP地址,这应以192.168开头,后面的数字不一定相同。

连接手机

在电脑上打开终端,输入如下指令:

ssh -p 8022 xxxxxxxxx@192.168.x.x

其中,-p 8022是指定端口,xxxxxxx是您的用户名,192.168.x.x是您的手机IP地址。
这样,您就可以在电脑上访问手机了。接下来的工作就是在电脑上进行了。


启动内网穿透

借助Termux-services,我们会在这里编写一个简单的脚本,用于开机启动内网穿透。

密钥对生成

首先,我们需要生成密钥对。使得可以免密登录。输入如下指令:

ssh-keygen

这时会提示您输入密码,您可以直接回车跳过。接下来会提示确认密码,同样直接回车跳过。这样,密钥对就生成好了。
接下来,我们需要把公钥,也就是末尾带着.pub的文件放到服务器上。文件通常会位于~/.ssh中。输入如下指令:

cat ~/.ssh/xxxxx.pub

这时会显示您的公钥,您需要把这个公钥复制下来,然后放到服务器上。

服务器端配置

服务器端务必记得要转发8022端口

脚本编写

输入如下指令:

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

我们的服务将会叫做cloud。
接下来,我们需要编写启动脚本。输入如下指令:

vim $PREFIX/var/service/cloud/run

在打开的文件中,首先按i,然后把这个内容复制进去:

#!/data/data/com.termux/files/usr/bin/sh

# 在后台启动 SSH 隧道
nohup [临时命令内容] &

在这里,[临时命令内容]是指您的内网穿透命令。例如:

ssh -R 80:127.0.0.1:8022 xxx@xxx.neiwangyun.net

接下来按ESC,然后输入冒号,再输入wq,最后按回车键保存并退出。
接下来,我们需要给这个文件赋予执行权限。输入如下指令:

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

这样,我们的脚本就编写好了。

启动服务

输入如下指令:

sv-enable cloud
sv up cloud

这样,我们的内网穿透服务就可以开机自启动了。可以自行测试一下。接下来就可以做许多的事情了,包括自行安装Linux,安装QEMU模拟Windows等等。

下面是简易的如何安装Debian的QEMU的教程:

直接从官网下载Debian的QEMU,要写x86_64的 termux安装好QEMU,设置好硬盘,然后启动

qemu-system-x86_64 -machine q35 -m 6144 -smp cpus=6 -cpu qemu64 \
-drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
-nographic ./debian/debian-12-nocloud-amd64.qcow2

进入系统之后记得重新生成sshkey

ssh-keygen -A
/etc/init.d/ssh start

然后改DNS

换源的教程