前言

想做一台可以外网访问局域网的服务器,没有群晖或者软路由,正好有一台闲置的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.自启动应用

总结


一、环境准备

  1. 一部安卓手机,无需root
  2. Termux(目前官网上的最新包仅支持安卓7.0以上,其他版本自测)termux官网下载
  3. frpc内网穿透(因为没有公网ip,如果有的话可以使用路由器映射的方式)
  4. 腾讯云服务器一台(某宝上几十块钱有一年的,本人就是那上面买的,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远程唤醒)相关推荐

  1. 基于安卓手机使用Termux搭建web服务器教程

    基于安卓手机使用Termux搭建web服务器教程 一.软件的准备 Termux Android5.0以上的手机(最好root) Xshell 6(windows软件) 二.前期Termux的设置与安装 ...

  2. termux运行python文件知乎_(萌新、小白看过来!)最详细、完整的基于安卓手机使用Termux搭建web服务器教程!...

    三.Termux搭建WEB服务器所需的软件及配置(分3步,Termux中下载) 1.php a.下载php pkg install php b.开启php自带的web服务器并指定建站系统文件夹(-t ...

  3. CentOS搭建web服务器,并内网穿透实现公网访问

    在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常 ...

  4. 【远程访问】Linux搭建SVN服务器,并内网穿透实现公网远程访问

    文章目录 前言 1. Ubuntu安装SVN服务 2. 修改配置文件 2.1 修改svnserve.conf文件 2.2 修改passwd文件 2.3 修改authz文件 3. 启动svn服务 4. ...

  5. 阿里云服务器实现 frp 内网穿透

    更多精彩内容请访问我的新博客站点 前言 前几天在一台具有公网IP的 vultr 云服务器上实现了 frp 内网穿透(参考链接),可以从寝室 ssh 登录到教研室的服务器,但是由于 vultr 的云服务 ...

  6. 通过阿里云服务器(frp内网穿透工具),实现跨局域网ModbusTcp通信

    写在开头: 本文是基于windows系统,本文实现内网穿透需要下载的工具只有frp,所用云服务器为阿里云服务器. 笔者是某211高校在读研究生.本文是基于CSDN上其他前辈的文章,由我个人总结出的经验 ...

  7. 外网访问本地搭建的web服务器【免费内网穿透】

    教大家一个简单的方法,实现在无公网IP环境下,在本地搭建web服务器,并实现外网远程访问. 使用工具: phpstusy:https://www.xp.cn/download.html cpolar内 ...

  8. Windows搭建web站点:免费内网穿透发布至公网 1-2

    什么是cpolar? cpolar是一个非常强大的内网穿透工具,开发调试的必备利器. 它可以将本地内网服务器的HTTP.HTTPS.TCP协议端口映射为公网地址端口,使得公网用户可以轻松访问您的内网服 ...

  9. 搭建ngrok服务器,实现内网穿透服务,实现外网到内网的在线访问

    一:前言 场景问题: 如果本地的项目在没有服务器的情况下,需要让他人访问: 在自己的电脑上搭建一个web服务器,实现本地的访问和外部的访问.我们就要做内网穿透了,内网穿透就是别人通过外网能够访问到我们 ...

最新文章

  1. Rabbit MQ安装配置及常见问题
  2. ip classless作用
  3. 动态规划入门 洛谷P1108 低价购买
  4. 「原创」马云又嗨啦,云栖音乐节与李健同台飙歌,把健哥都带跑调了
  5. AGG第三十五课 gsv_text 渲染ASCII字符
  6. c语言如果读不到数据就跳过,4,VS常见问题解决(一闪而过、等问题)不断更新...
  7. java 面向对象 — 继承
  8. python循环指令_Python循环
  9. Coursera自动驾驶课程第6讲:Vehicle Longitudinal Control
  10. POJ1163 数字三角形
  11. 学习笔记DL003:神经网络第二、三次浪潮,数据量、模型规模,精度、复杂度,对现实世界冲击...
  12. linux下的软件管理
  13. spring boot+Quartz+数据库存储
  14. netstat 的10个基本用法
  15. 计算机中丢失d3dx9_26.dll,d3dx9_26.dll
  16. vue项目中使用百度离线地图(最新全面爬坑版)
  17. 《我这一辈子》 老舍 著
  18. 计算机中 加减运算 的 实现原理
  19. 微信端视频播放时防止被浏览器劫持的问题
  20. C++学习之路抓紧跑路版(七)-动态申请内存空间

热门文章

  1. 【3.Delphi常用组件】6.滚动条
  2. 采用 MediaRecorder 实现录音功能
  3. 1157 最高分和最低分
  4. element ui实现自定义上传文件-以及解决已上传文件列表消失问题
  5. 一道及易掉坑常见的关于值传递的面试题
  6. openv之实现点绕旋转中心旋转
  7. php如何生成一年的日历表_html - PHP如何生成一个指定年份一整年的日历
  8. 地貌学类毕业论文文献都有哪些?
  9. hashcat 1.3 运行函数
  10. 【掘金小报】第十二期 一起来做个微信群管理机器人