热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js文件不让通过地址访问_Termux入门教程:架设手机Server下载文件

手机文件,比如照片和视频,如何下载到桌面电脑?普通用户可以使用手机线,将手机和电脑连起来。作为开发者,其实有更

手机文件,比如照片和视频,如何下载到桌面电脑?

普通用户可以使用手机线,将手机和电脑连起来。作为开发者,其实有更方便的方法,就是在手机架设一个 HTTP 服务,然后从桌面浏览器访问手机。

本文讲解如何使用 Termux[1] 架设手机的 HTTP 服务器。

e890f99133d5569ee9b0a5964fa18231.png

一、Termux 是什么?

Termux[2] 是一个安卓手机的 Linux 模拟器,可以在手机上模拟 Linux 环境。它提供一个命令行界面,让用户与系统互动。

它就是一个普通的手机 App,可以从应用商店下载安装。不需要 root 权限,也不需要设置,打开就能使用。

87227726476eb8b436088973cc8b461d.png

二、环境准备

打开 Termux 以后,就是一个全屏的命令行界面。虽然可以用手机的触摸键盘输入命令,但还是推荐使用蓝牙键盘。

第一步,更新一下系统,保证使用最新版本。

# 连接远程仓库,获取软件包信息$ apt update# 更新本地已经安装的软件包$ apt upgrade

第二步,测试系统。

# 安装 sl 软件包$ apt install sl# 运行$ sl

上面命令安装测试包sl,然后运行。如果一切正常,会显示一个火车的命令行动画。

aaa7831cfe26030c3ae493c5b575f876.png

第三步,访问本机存储。

手机 App 默认只能访问自己的数据,如果要访问手机的存储,需要请求权限。

$ termux-setup-storage

执行上面的命令以后,会跳出一个对话框,询问是否允许 Termux 访问手机存储,点击“允许”。

63ff4065fb99948c0779bf91a5419526.png

这会在当前目录下生成一个storage子目录,它是手机存储的符号链接,后文下载文件就是到这个目录去下载。

三、软件包管理

除了apt命令,Termux 还提供pkg命令进行软件包管理。

# 安装软件包$ pkg install [package name]# 卸载软件包$ pkg uninstall [package name]# 列出所有软件包$ pkg list-all

其实,pkg的底层[3]就是apt,只是运行前会执行一次apt update,保证安装的是最新版本。所以,apt install sl基本等同于pkg install sl

Termux 支持的软件包清单,可以到这里[4]查看。

四、Node.js

下面,安装 Node.js。

$ apt install nodejs

安装完成后,就可以运行 Javascript 脚本了。比如,新建一个脚本hello.js

// hello.jsconsole.log('hello world');

然后,执行这个脚本。

$ node hello.jshello world

五、架设 Server

现在,通过 Node.js 运行 HTTP Server。

首先,安装 npm 模块http-server[5]

$ npm install -g http-server

然后,运行 Server。

$ http-server

正常情况下,命令行会提示 Server 已经在 8080 端口运行了,并且还会提示外部可以访问的 IP 地址。

69c414370b0688f8f99377bbe87440e5.png

举例来说,手机的局域网 IP 是 192.168.2.6,那么我们通过桌面电脑的浏览器访问http://192.168.2.6:8080,就可以看到 Termux 的根目录了。进入下面的storage子目录,就可以下载手机文件了。

daa4af33cfcd34fca0900face8d0bfea.png

如果手机和电脑不在同一个局域网,那可以打开手机的热点功能,让桌面电脑通过手机热点上网,再访问手机的 HTTP Server。

这里顺便提一下,下面的命令可以从命令行查看手机的 IP 地址。

$ apt install net-tools$ ifconfig

六、Python

不使用 Node.js,而使用其他方法架设 HTTP Server 也是可以的。下面演示 Python 的方法。

$ apt install python$ python -m http.server 8080

然后,桌面电脑就可以访问手机了。

Termux 是非常强大的工具,除了上面的方法,还可以架设 Apache 服务器[6],或者通过其他途径[7](FTP、SSH、Rsync)访问手机,这里就不详细介绍了。

(完)

References

[1] Termux: https://termux.com/[2] Termux: https://termux.com/[3] 底层: https://github.com/termux/termux-packages/issues/2151#issuecomment-486184252[4] 这里: https://github.com/termux/termux-packages/tree/master/packages[5] http-serverhttps://www.npmjs.com/package/http-server[6] Apache 服务器: http://www.termuxtutorials.ga/2018/06/how-to-install-apache2-in-termux-termux.html[7] 其他途径: https://wiki.termux.com/wiki/Remote_Access




推荐阅读
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
author-avatar
yan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有