安卓手机使用Termux搭建web服务器(含frp内网穿透、wake on lan远程唤醒)
前言
想做一台可以外网访问局域网的服务器,没有群晖或者软路由,正好有一台闲置的nova4,查阅了一些资料后就在手机上搭了一个服务器,有闲心的可以试一试。。。
目录
一、环境准备
二、使用步骤
1.安装Termux
2.1.1 用上面提供的链接下载,目前最新的是0.117
2.1.2更换清华源:
2.1.3安装ssh
2.1.4设置用户密码,也是ssh连接密码
2.1.5 使用电脑连接ssh,因为手机上操作感觉还是有点困难(推荐mobaxterm,也可以用xshell)
2.安装proot-distrot及ubuntu
3.本地搭建项目
4.frp内网穿透
4.1 frps服务端
4.2 frpc 客户端
5.自启动应用
总结
一、环境准备
- 一部安卓手机,无需root
- Termux(目前官网上的最新包仅支持安卓7.0以上,其他版本自测)termux官网下载
- frpc内网穿透(因为没有公网ip,如果有的话可以使用路由器映射的方式)
- 腾讯云服务器一台(某宝上几十块钱有一年的,本人就是那上面买的,6m带宽,1000G流量,目前够用,如果有公网ip可省略这步)
二、使用步骤
1.安装Termux
2.1.1 用上面提供的链接下载,目前最新的是0.117
2.1.2更换清华源:
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
apt update
2.1.3安装ssh
pkg install openssh
2.1.4设置用户密码,也是ssh连接密码
---- 输入passwd,之后输入两次你要设置的密码即可
---- 然后开启ssh服务并查看当前内网地址
sshd
ifconfig
2.1.5 使用电脑连接ssh,因为手机上操作感觉还是有点困难(推荐mobaxterm,也可以用xshell)
打开mobaxterm,点击session
remote host 输入刚刚查看到的地址,其他照着下面图片填,虽然填写的是root用户,但是其实是没有root权限的,因为手机本身没root,在实际开发过程中有很多指令是要linux的超级管理员权限的,所以要在里面安装一个ubuntu,然后就可以在ubuntu里面使用任意权限,继续往下走~
2.安装proot-distrot及ubuntu
apt install proot-distro
接下来安装ubuntu,
proot-distro install ubuntu
然后就可以使用命令进入ubuntu了
proot-distro login ubuntu
在里面同样安装之前安装的必要工具
apt update
apt install vim python3 openssh-server -y
如果出现时区选择,则输入 6 回车 70 回车 70 回车
这里需要配置一下ssh的配置,主要是端口,用于区分外部的ssh
vim /etc/ssh/sshd_config
Port 前面的#去掉,然后22改成除了8022、22之外的任意端口 如223
再加入一行 PermitRootLogin yes
改完之后如下:
最后按esc 输入:wq 回车即可
回到bash页面后 输入 service ssh start
TIPS: 这里开启ssh的目的是为了方便使用shell远程,在完成步骤5之后连接ubuntu系统可以直接使用223端口连接,就不需要连接外部的8022端口了
3.本地搭建项目
下面我用一个测试项目来简易搭建一个web服务器,测试远程开机,这里测试与安卓手机在同一局域网下的windows电脑,在win上获取到网卡的mac地址,记下这个地址,后面需要使用到。
1、ubuntu上安装一个远程开机的包
apt install wakeonlan
2、写一个测试项目,vim test.py,这里试用了flask,很轻松就可以搭起一个web服务器,简单调用了一下唤醒指令,觉得麻烦的可以直接啥都不写,return一个hello world,
3、pip安装flask
pip install flask
4、python test.py 就可以启动项目了
这里说一下远程开机,被远程开机的电脑主板bios要开启网卡唤醒,然后同一局域网内发送一个封包到关机电脑的mac地址上,电脑网卡接收到这个封包就会开机,当然这里只是用于测试,具体的可以参考一下网络上的资料,wake on lan 唤醒
现在可以使用局域网访问一下192.168.1.103:8999?mac=f0:xx:xx:xx:xx:xx,页面显示hello world 或者返回上述代码的魔术封包值就算成功了。
至此,基础环境安装完毕,接下来就是frp内网穿透
4.frp内网穿透
上面完成了局域网内环境的搭建,但是外网还不能访问及远程控制开机,我们需要一个公网服务器,运营商有提供公网ip的话可以在路由器设置虚拟服务器(有的是叫端口映射),然后直接跳到第5步,下面是没有公网IP,用手机搭建的的局域网服务器内网穿透到外网的步骤。
工具准备frp github下载
4.1 frps服务端
在云服务器上下载服务器版本后解压,配置frps.ini
[common]
bind_port = 7000
然后运行
nohup "绝对路径"/frps -c "绝对路径"/frps.ini > /dev/null 2>1 &
在防火墙添加一个7000的tcp端口,服务端就配置好了
4.2 frpc 客户端
下载对应的版本然后解压,配置frpc.ini
[common]
server_addr = 公网服务器ip地址
server_port = 7000[wake_on_lan] #用于测试,实际可根据自己情况配置
type = tcp
local_ip = 127.0.0.1
local_port = 8999 #本地项目地址
remote_port = 58999 #映射到公网服务器的地址,用于外网访问,也可以是80,前提是公网服务器的80端口未被占用
然后启动
nohup "绝对路径"/frpc -c "绝对路径"/frpc.ini > /dev/null 2>1 &
现在就可以使用你的公网服务器的ip来访问你的项目了(1xx.xxx.xxx.xxx:5899?mac=f0:xx:...),别忘了公网服务器的防火墙里面要开启对应的端口(7000,8999),当然还可以买个域名做个dns解析,使用xxx.cn:58999?mac=f0:xx:xx...就能访问。
5.自启动应用
如果上述服务不小心被关了或者手机重启了,那么就要重新敲指令去启动,相当麻烦,所以可以加入用户登录自启(这里没用系统自启是因为尝试了几种方案没成功,你们可以自己尝试一下,因为他这个虽然是ubuntu,但是跟装在硬件上的linux系统还是有区别的,有兴趣的可以研究一下)。
--------
在手机的ubuntu系统下创建一个start.sh:
vim start.sh
按一下 i
输入以下内容(要是绝对路径,如 /opt/test.py):
service ssh start
nohup python “绝对路径”/test.py > /dev/null 2>1 &
nohup “绝对路径”/frpc -c “绝对路径”/frpc.ini > /dev/null 2>1 &
按esc 输入:wq 回车
然后 vim ~/.bashrc
在最下面加上一句
bash /etc/init.d/start.sh
然后保存,在按下ctrl + D退出ubuntu系统 返回到temux终端下,vim ~/.bashrc
输入以下内容
sshd
proot-distro login ubuntu
保存就可以了
现在可以关掉termux软件了,然后重新打开,就可以直接访问了。
TIPS:nova4可以设置软件自启和常驻后台,一定要打开这一项,其他手机有些不用设置,有些要,自己可以多尝试几遍
总结
基本上就是这些,可以放一些自动化脚本以及搭建一些小型网站,有空折腾的或者有闲置不用的手机可以试一下
安卓手机使用Termux搭建web服务器(含frp内网穿透、wake on lan远程唤醒)相关推荐
- 基于安卓手机使用Termux搭建web服务器教程
基于安卓手机使用Termux搭建web服务器教程 一.软件的准备 Termux Android5.0以上的手机(最好root) Xshell 6(windows软件) 二.前期Termux的设置与安装 ...
- termux运行python文件知乎_(萌新、小白看过来!)最详细、完整的基于安卓手机使用Termux搭建web服务器教程!...
三.Termux搭建WEB服务器所需的软件及配置(分3步,Termux中下载) 1.php a.下载php pkg install php b.开启php自带的web服务器并指定建站系统文件夹(-t ...
- CentOS搭建web服务器,并内网穿透实现公网访问
在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常 ...
- 【远程访问】Linux搭建SVN服务器,并内网穿透实现公网远程访问
文章目录 前言 1. Ubuntu安装SVN服务 2. 修改配置文件 2.1 修改svnserve.conf文件 2.2 修改passwd文件 2.3 修改authz文件 3. 启动svn服务 4. ...
- 阿里云服务器实现 frp 内网穿透
更多精彩内容请访问我的新博客站点 前言 前几天在一台具有公网IP的 vultr 云服务器上实现了 frp 内网穿透(参考链接),可以从寝室 ssh 登录到教研室的服务器,但是由于 vultr 的云服务 ...
- 通过阿里云服务器(frp内网穿透工具),实现跨局域网ModbusTcp通信
写在开头: 本文是基于windows系统,本文实现内网穿透需要下载的工具只有frp,所用云服务器为阿里云服务器. 笔者是某211高校在读研究生.本文是基于CSDN上其他前辈的文章,由我个人总结出的经验 ...
- 外网访问本地搭建的web服务器【免费内网穿透】
教大家一个简单的方法,实现在无公网IP环境下,在本地搭建web服务器,并实现外网远程访问. 使用工具: phpstusy:https://www.xp.cn/download.html cpolar内 ...
- Windows搭建web站点:免费内网穿透发布至公网 1-2
什么是cpolar? cpolar是一个非常强大的内网穿透工具,开发调试的必备利器. 它可以将本地内网服务器的HTTP.HTTPS.TCP协议端口映射为公网地址端口,使得公网用户可以轻松访问您的内网服 ...
- 搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问
一:前言 场景问题: 如果本地的项目在没有服务器的情况下,需要让他人访问: 在自己的电脑上搭建一个web服务器,实现本地的访问和外部的访问.我们就要做内网穿透了,内网穿透就是别人通过外网能够访问到我们 ...
最新文章
- Rabbit MQ安装配置及常见问题
- ip classless作用
- 动态规划入门 洛谷P1108 低价购买
- 「原创」马云又嗨啦,云栖音乐节与李健同台飙歌,把健哥都带跑调了
- AGG第三十五课 gsv_text 渲染ASCII字符
- c语言如果读不到数据就跳过,4,VS常见问题解决(一闪而过、等问题)不断更新...
- java 面向对象 — 继承
- python循环指令_Python循环
- Coursera自动驾驶课程第6讲:Vehicle Longitudinal Control
- POJ1163 数字三角形
- 学习笔记DL003:神经网络第二、三次浪潮,数据量、模型规模,精度、复杂度,对现实世界冲击...
- linux下的软件管理
- spring boot+Quartz+数据库存储
- netstat 的10个基本用法
- 计算机中丢失d3dx9_26.dll,d3dx9_26.dll
- vue项目中使用百度离线地图(最新全面爬坑版)
- 《我这一辈子》 老舍 著
- 计算机中 加减运算 的 实现原理
- 微信端视频播放时防止被浏览器劫持的问题
- C++学习之路抓紧跑路版(七)-动态申请内存空间