使用内网穿透与Termux完成手机上部署web项目

news/2024/2/25 13:00:11/文章来源:https://blog.csdn.net/m0_56366541/article/details/135358144

1.开发环境:安卓9,termux,python3.11,cpolar

2.步骤:

2.1先实现内网访问,之后再尝试内网穿透

安装Termux: Termux是一个在Android上运行的终端模拟器,它提供了一个Linux-like环境。你可以通过Google Play商店安装Termux。
安装必要的软件: 打开Termux应用,运行以下命令安装一些必要的软件:
pkg update
pkg upgrade
pkg install python
pkg install git
克隆你的Flask项目: 使用git命令克隆你的Flask项目到手机上。例如:
git clone https://github.com/yourusername/yourflaskproject.git
安装虚拟环境: 进入你的Flask项目目录,创建并激活一个虚拟环境:
cd yourflaskproject
python -m venv venv
source venv/bin/activate
安装依赖: 安装你的Flask项目所需的依赖:
pip install -r requirements.txt
运行Flask应用: 运行Flask应用:
python yourflaskapp.py
请确保在Flask应用中设置正确的主机和端口。通常,默认是127.0.0.1:5000,你可能需要更改为0.0.0.0:5000,以便从其他设备访问。
查找手机的IP地址: 在Termux中运行以下命令查找手机的IP地址:
ifconfig
查找类似于inet 192.168.x.x的行,这是你的手机在局域网中的IP地址。
从其他设备访问: 在其他设备上使用浏览器访问手机的IP地址和Flask应用的端口,例如http://192.168.x.x:5000。确保你的手机和其他设备连接到同一个局域网。
请注意,这种方法只在手机处于同一Wi-Fi网络的情况下有效。

操作完成之后,开启手机热点,使用设备连接上,便可以通过IP地址访问数据了,但这其实还不够,我们要在外网也可以访问

2.2内网穿透

 来自于这位大神的指导

https://www.zhihu.com/question/388618269/answer/3030674054

1. 添加仓库

mkdir -p $PREFIX/etc/apt/sources.list.d
echo "deb [trusted=yes] http://termux.cpolar.com termux extras" >> $PREFIX/etc/apt/sources.list.d/cpolar.list

更新仓库

pkg update

2. 安装cpolar内网穿透

pkg install cpolar

验证安装成功,有正常出现cpolar版本号即表示cpolar安装成功

cpolar version

3. 启动后台服务

安装termux-services

pkg install termux-services

重启整个termux应用

注意:termux-services需要 重新启动termux才能生效。

启用cpolar服务,设置cpolar开机自启动

sv-enable cpolar

启动cpolar服务

sv up cpolar

4. 打开web-ui管理界面

浏览器打开本地IP地址:9200,使用cpolar邮箱账号登录cpolar web ui管理界面,可以在此处创建隧道映射本地服务,以及管理隧道。
 

链接上热点,通过pc浏览器-手机ip地址的方式打开便可以啦 记得端口号要与程序里面的对应

补充知识点:

1.操作指令

cd ~ 回到home

vim test.py编辑文件

在vim界面直接输入a便可开始编辑

esc进入vim命令行,:wq保存文件并退出,:w保存不退出

flask项目设置是app.run(host="0.0.0.0") 与现在域名绑定

termux输入 netstat -tuln查看端口状态

termux输入 ifconfig 查看网络状态

文件编辑错误可以通过cd进入文件目录,ls查看有多少文件,rm 文件名///的方式删除

可以使用ev投屏进行电脑编辑,手机上下载ev,电脑上下载ev,然后通过数据线连起来就可以了

EV投屏 - 无线投屏软件,轻松实现手机电脑互投 (ieway.cn)

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_925238.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于DNA的密码学和隐写术综述

摘要 本文全面调研了不同的脱氧核糖核酸(DNA)-基于密码学和隐写术技术。基于DNA的密码学是一个新兴领域,利用DNA分子的大规模并行性和巨大的存储容量来编码和解码信息。近年来,由于其相对传统密码学方法的潜在优势,如高存储容量、低错误率和对环境因素的抗性,该领域引起…

JDK8-JDK17版本升级

局部变量类型推断 switch表达式 文本块 Records 记录Records是添加到 Java 14 的一项新功能。它允许你创建用于存储数据的类。它类似于 POJO 类,但代码少得多;大多数开发人员使用 Lombok 生成 POJO 类,但是有了记录,你就不需要使…

第 2 章 数据结构和算法概述

文章目录 2.1 数据结构和算法的关系2.2 看几个实际编程中遇到的问题2.2.1 问题一-字符串替换问题2.2.2 一个五子棋程序2.2.3 约瑟夫(Josephu)问题(丢手帕问题)2.2.4 其它常见算法问题: 2.3 线性结构和非线性结构2.3.1 线性结构2.3.2 非线性结构 2.1 数据结构和算法的关系 数据 …

使用Qt连接scrcpy-server控制手机

Qt连接scrcpy-server 测试环境如何启动scrcpy-server1. 连接设备2. 推送scrcpy-server到手机上3. 建立Adb隧道连接4. 启动服务5. 关闭服务 使用QTcpServer与scrcpy-server建立连接建立连接并视频推流完整流程1. 开启视频推流过程2. 关闭视频推流过程 视频流的解码1. 数据包协议…

【STM32】HAL库的STOP低功耗模式UART串口唤醒,第一个接收字节出错的问题(已解决)

【STM32】HAL库的STOP低功耗模式UART串口唤醒,第一个接收字节出错的问题(已解决) 文章目录 BUG复现调试代码推测原因及改进方案尝试中断时钟供电外设唤醒方式校验码硬件问题 切换到STOP0模式尝试结论和猜想解决方案附录:Cortex-M…

js动态设置关键侦@keyframes

js动态设置关键侦keyframes 1.前置知识 关键侦keyframes规则通过在动画序列中定义关键侦的样式来控制CSS动画序列的中间步骤 keyframes slidein {from {transform: translateX(0%);}to {transform: translateX(100%);} } // from 等价于 0%;to 等价与 100% // 或…

【已解决】C语言进行多线程数据切割查找数据

第一次听到多线程切割,笔者也没听的太懂,但发现多线程数据切割其实就是分出多个线程,进行处理查找数据的事情。而为什么切割呢,就是因为数据不够线程数分的,假如1k个数据,7个线程,这里不能够整除…

RabbitMQ的安装使用

RabbitMQ是什么? MQ全称为Message Queue,消息队列,在程序之间发送消息来通信,而不是通过彼此调用通信。 RabbitMQ 主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,…

蓝桥杯备赛 | 洛谷做题打卡day5

蓝桥杯备赛 | 洛谷做题打卡day5 图论起航,一起来看看深(广)度优先吧 ~ 文章目录 蓝桥杯备赛 | 洛谷做题打卡day5图论起航,一起来看看深(广)度优先吧 ~【深基18.例3】查找文献题目描述 输入格式输出格式样例…

vue知识-04

计算属性computed 注意: 1、计算属性是基于它们的依赖进行缓存的 2、计算属性只有在它的相关依赖发生改变时才会重新求值 3、计算属性就像Python中的property,可以把方法/函数伪装成属性 4、computed: { ... } 5、计算属性必须要有…

MySQl Mybatis

一、MySQL 1.1 概述 1.1.1 MySQL安装 1.1.2 数据模型 1.1.3 SQL简介 1.2 DDL 1.2.1 数据库操作 1.2.2 图形化工具 1.2.3 表结构操作 (一)创建 (二)数据类型 (1)数值类型 age tinyint unsigned——加上…

Kubernetes 集群管理—日志架构

日志架构 应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志记录。 针对容器化应用,最简单且最广泛采用的日志记录方式就是写入标准输出和标…

书生·浦语大模型--第三节课笔记--基于 InternLM 和 LangChain 搭建你的知识库

文章目录 大模型开发范式RAGLangChain框架:构建向量数据库构建检索问答链优化建议web 部署 实践部分环境配置 大模型开发范式 LLM的局限性:时效性(最新知识)、专业能力有限(垂直领域)、定制化成本高&#…

测试平台出问题?看我20分钟快速定位!

今天遇到一个问题,感觉挺有意思,处理过程也非常有意义,希望能给大家一个借鉴吧。今天一位小姐姐找到了我们大组长,说测试平台添加自动化测试用例失败,之后我们组长把我拉到了一个群里让我去看一下,硬着头皮…

C++面试宝典第19题:最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串""。说明:所有输入只包含小写字母a-z。 示例1: 输入: ["flower", "flow", "flight"]输出: "fl" 示例2: 输入: ["dog",…

如何在Windows 10/11的防火墙中禁止和允许某个应用程序,这里提供详细步骤

想阻止应用程序访问互联网吗?以下是如何通过简单的步骤阻止和允许Windows防火墙中的程序。​ 一般来说,大多数用户永远不需要担心应用程序访问互联网。然而,在某些情况下,你需要限制应用程序访问互联网。 例如,有问题…

vue知识-03

购物车案例 要实现的功能&#xff1a; 1、计算商品总价格 2、全选框和取消全选框 3、商品数量的增加和减少 <body> <div id"app"><div class"row"><div class"col-md-6 col-md-offset-3"><h1 class"text-center…

TinyLog iOS v3.0接入文档

1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下&#xff1a; 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机&#xff1a; 每15分钟定时触发…

【Spring 篇】走进SpringMVC的世界:舞动Web的激情

嗨&#xff0c;亲爱的小白们&#xff01;欢迎来到这篇关于SpringMVC的博客&#xff0c;让我们一起探索这个舞动Web的框架&#xff0c;感受它带来的激情和便利。在这个世界里&#xff0c;我们将学到SpringMVC的概述、开发步骤以及如何快速入门&#xff0c;一切都是如此的令人兴奋…

C# Winform翻牌子记忆小游戏

效果 源码 新建一个winform项目命名为Matching Game&#xff0c;选用.net core 6框架 并把Form1.cs代码修改为 using Timer System.Windows.Forms.Timer;namespace Matching_Game {public partial class Form1 : Form{private const int row 4;private const int col 4;p…