基于 Termux 和 ipv6 把手机打造成公网服务器
Termux 安装与配置
安装
从这下载: https://f-droid.org/en/packages/com.termux/
初始化
授权读写手机储存
termux-setup-storage
换源
参考 https://mirrors.tuna.tsinghua.edu.cn/help/termux/
安装基础软件
pkg update && pkg upgrade
pkg install tsu wget git python3 openssh termux-auth -y
- tsu:Termux版的su(sudo)
- wget:下载工具
- git:版本控制器
- python3:不多说了
- openssh:用于 ssh 和 sftp
- termux-auth:Termux的一个认证模块,用于在Android设备上提供安全的身份验证机制
- -y:自动确认安装以上软件
设置用户
获取用户名,比如 u0_a258
whoami
设置密码
passwd
获取 ipv6 地址
首先确保连入的网络支持 ipv6。最简单的方法是访问 http://www.test-ipv6.com/ 查看 ipv6 连接情况。
方法1
查看手机状态信息,然后 ping 一下试试能不能通
方法2
运行以下指令,获取 ipv6 地址
curl https://ipv6.ddnspod.com
注意:由于安卓权限问题,不能用
ip a、ifconfig等命令直接获取 ipv6 地址。
开启 ssh
termux 输入
sshd -p 8022
电脑上输入以下命令以连接
ssh <用户名>@<ipv6 地址> -p 8022
登录 dynv6 获取域名
参考这篇文章
Termux解析公网ipv6——从全世界各地连接你的Termux, https://blog.csdn.net/YiBYiH/article/details/127550607
向 dnyv6 传递 ipv6 地址命令如下
curl 'http://dynv6.com/api/update?hostname=<域名>&token=<令牌>&ipv6='$(curl --silent https://ipv6.ddnspod.com)
之后可以直接用域名而不是 ipv6 地址访问服务器了
启动后自动完成配置
首先编辑 .bashrc 文件 nano ~/.bashrc
在文件最后添加以下代码
user_name=$(whoami)
echo "User name: $user_name"
ip_address=$(curl --silent https://ipv6.ddnspod.com)
echo "IP address: $ip_address"
hostname=xxxxx.dynv6.net
echo "hostname: $hostname"
token=xxxxxxxxxx
curl --silent "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv6=$ip_address"
echo ""
sshd -p 8022
echo "Please run the following command to establish an ssh connection with Termux:"
echo "ssh $user_name@$ip_address -p 8022"
echo "ssh $user_name@$hostname -p 8022"
按 ctrl+x 保存。
sftp 服务器
在安装 openssh 后,也自动安装了 sftp 服务,因此可以直接在电脑上打开 sftp 客户端进行连接。
图中用的是 WinSCP 软件

qemu 运行虚拟机
在 Termux 中使用 proot-distro 安装的 linux 系统,是以 chroot(更改根目录)的形式运行的,而不是作为一个独立的虚拟机或容器,因此功能非常受限。
想要使用真正的 linux 虚拟机,需要使用 qemu。
性能基准测试
采用如下 python 脚本进行跑分
import time
def doubleFact(x):
ans = 1
for i in range(1, x + 1):
if i % 2 == x % 2:
ans *= i
return ans
def asin(x, t):
answer = 0
for k in range(0, t + 1):
a = (doubleFact(2 * k - 1) / doubleFact(2 * k)) * (
pow(x, 2 * k + 1) / (2 * k + 1)
)
# print("k=%d,a=%s" % (k, a))
answer += a
return answer
start_time = time.time()
print(asin(1, 1666) * 2)
print("--- %s seconds ---" % (time.time() - start_time))
参考资料
- Termux-Ubuntu22.0.4项目部署(手机服务器实操!!), https://blog.csdn.net/m0_56349886/article/details/129758123
- Termux 公网ipv6 域名 ssh访问, https://blog.csdn.net/YiBYiH/article/details/127697310
- 基于ipv6实现几乎零成本的内网穿透方案, https://zhuanlan.zhihu.com/p/638004070
- 在Termux(非root的安卓Linux模拟器)中安装和使用ftp服务器, https://www.cnblogs.com/-fresh/p/10328331.html
- Termux解析公网ipv6——从全世界各地连接你的Termux, https://blog.csdn.net/YiBYiH/article/details/127550607
- Termux和Linux Deploy的性能测试, https://zhuanlan.zhihu.com/p/162121013
基于 Termux 和 ipv6 把手机打造成公网服务器的更多相关文章
- 基于EasyDarwin EasyPusher实现Android手机直播推送功能
EasyPusher直播推送在之前就已经稳定支持了Windows.Linux.ARM上的RTSP直播推送功能,配合EasyDarwin开源流媒体服务器,延时基本在1s以内,这个技术方案经过一年多时间, ...
- 旧手机改造成web服务器并实现内网穿透
前几天由于gitee的审核引擎一通乱杀,使得gitee pages停止提供服务,心生更换服务器或者其他pages托管的想法,看了看价格感人的云服务器以及空空的钱包,这时,脑子有个奇怪的想法飘过,自己搞 ...
- 解决IE下载 apk/ipa 变成zip:Android 手机应用程序文件下载服务器 配置解决方法
解决IE apk/ipa变成zip:Android 手机应用程序文件下载服务器 配置解决方法 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Da ...
- 【转】 Android 基于google Zxing实现对手机中的二维码进行扫描--不错
原文网址:http://blog.csdn.net/xiaanming/article/details/14450809 转载请注明出处:http://blog.csdn.net/xiaanming/ ...
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
Android手机和电脑间基于wifi进行数据传输,从技术上讲,主要有两种方案: 一种是通过ftp协议实现,Android手机作为数据传输过程中的ftp服务器: 一种是通过http协议实现.Andro ...
- 基于h5+ajax实现的手机定位
因朋友需要,之前看了下关于h5的手机定位,目前写了个demo在这里贴出来,感兴趣的朋友可以看一下. 目前的版本只是demo,仍有几个问题需要完善一下,问题如下: 1,如何将经纬度等数据发送到被定位人看 ...
- vue-miniQQ——基于Vue2实现的仿手机QQ单页面应用(接入了聊天机器人,能够进行正常对话)
使用Vue2进行的仿手机QQ的webapp的制作,作品由个人独立开发,源码中进行了详细的注释. 由于自己也是初学Vue2,所以注释写的不够精简,请见谅. 项目地址 https://github.com ...
- 基于PT的ipv6 ripng配置
在Cisco路由器上配置RIPng 如图规划(本人学号后三位056) 路由器配置(以R1为例) R1(配置接口地址) Router(config)#int fastEthernet 0/0 Route ...
- Android 基于google Zxing实现对手机中的二维码进行扫描
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的 ...
- 基于HTML5和SVG的手机菜单动画
在线演示 本地下载
随机推荐
- uiautomator2环境搭建+元素定位(安卓)
一.环境搭建 1.安装uiautomator2 在终端使用pip安装即可 pip install uiautomator2 2.安装adb 可参考:https://www.cnblogs.com/li ...
- 《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇
1.简介 前边文章中已经讲解过鼠标的拖拽操作,今天宏哥在这里对其的其他操作进行一个详细地介绍和讲解,然后对其中的一些比较常见的.重要的操作单独拿出来进行详细的介绍和讲解. 2.鼠标操作语法 鼠标操作介 ...
- ansible(13)--ansible的lineinfile模块
1. lineinfile模块 功能:修改或删除文件内容,与系统中的 sed 命令类似: 主要参数如下: 参数 说明 path 指定要操作的文件 regexp 使用正则表达式匹配对应的行 line 修 ...
- GPS坐标、火星坐标、百度坐标之间的转换--提供java版本转换代码
参考文章:https://www.jianshu.com/p/c39a2c72dc65?from=singlemessage 1.国内几种常用坐标系说明 (1)名词解释 坐标系统:用于定位的系统,就跟 ...
- css样式相关的惊艳的属性
CSS gap 简写属性用于设置行与列之间的间隙(网格间距). 规范的早期版本将该属性命名为 grid-gap,且为了保持与旧网站的兼容性,浏览器仍然会接受 grid-gap 作为 gap 的别名. ...
- Pageoffice6 实现后台批量转PDF文档
在实际项目开发中如果遇到批量动态生成PDF文档的需求,只需参考后台批量生成PDF文档,目前网上也有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的"方案 ...
- vmware迁移虚拟机
迁移 1.打开"VMware",点击"虚拟机详细信息"可以看到虚拟机的储存路径. 2. 按照储存路径找到虚拟机文件位置,将整个虚拟机文件复制,粘贴到需要转移的路 ...
- 全球厂商之最,华为17篇论文入选国际数据库顶会ICDE
本文分享自华为云社区<全球厂商之最,华为GaussDB&GeminiDB,17篇论文入选国际数据库顶会ICDE> ,作者:GaussDB 数据库. 5月13-17日,国际数据库顶级 ...
- Android 12(S) Binder(二)
前面一节学习了ServiceManager这个特殊service的工作过程,这一节来看看普通service的工作过程. 就用media.extractor这个service来当例子! 1.服务的注册及 ...
- 春松客服入驻Rainbond开源应用商店
"做好开源客服系统" 春松客服是拥有坐席管理.渠道管理.机器人客服.数据分析.CRM 等功能于一身的新一代客服系统.将智能机器人与人工客服完美融合,同时整合了多种渠道,结合 CRM ...