草庐IT

手机搭建服务器教程,本人亲测无需root

鲁Q同志 2024-04-24 原文

注意啦:如果不想在这么麻烦下载可以移步到八.Termux的备份和恢复这一步

Termux安装Linux,运行java代码

一.原因

手机更新换代速度很快,就算很久才换一次手机,家里的旧手机是咋处理的呢?

可是当你突然发现

别换盆,咱用手机弄一个服务器,弄一个家庭网盘都是可以的,绝对是不限速的,当前前提取决于你的网速(家里一般都有无线网络吧,没有的话可以弄张流量卡,要是不多就别弄网盘了再传上几个g没流量就嗝屁了)
这里写的主要是在手机上使用Termux软件安装linux搭建java环境运行jar包
手机搭建java环境,手机运行jar包,无需root,外网也可以访问

建议先大致看一遍,然后在进行操作,让外网访问使用花生壳app内网穿透就可以

二.下载软件

推荐使用官网下载,先下载F-Droid然后再去软件里面搜索Termux下载
或者从或者Google Play下载,Google Play网络有限制,具体可以百度,个人推荐使用F-Droid,当然只是推荐

F-Droid地址:https://f-droid.org/packages/com.termux/
Google Play地址:https://play.google.com/store/apps/details?id=com.termux
Termux官网:https://termux.dev/en/

三.配置

1.更换安装源

termux-change-repo

输入命令,出现下面的界面,点击ok或者回车都可以

刚开始是下面的图片

等变成下面的图片然后点击ok或者回车,有的不是 ChinaAll,可以选择Tsinghua(清华源)
点击可以可以进行切换

更新

pkg update

安装常用软件

pkg install vim curl wget tree -y 

2.授予权限,创建链接

3.1授予termux读取文件的权限
输入命令等一会就会跳出来,允许之后输入ls就发现多了一个storage文件夹,storage里面的各个文件夹分别指向手机的各个文件夹其中shared是指向内部存储的根目录

termux-setup-storage

3.2创建软连接
创建软连接的目的是为了方便之后的使用,如果没有软连接就要多输好多来完成对文件的操作

在这里,我在手机的根目录创建1/file文件,方便寻找嘛

ln -s storage/shared/1/file/ file

输入ls -l就会发现多了一个映射文件file

3.3创建ssh连接
因为使用手机操作确实不是太方便,这里安装openssh电脑连接进行操作,当然只使用手机也可以,只是建议

安装openssh

pkg install openssh -y

设置密码,输入密码的时候是看不见的,需要输入两遍密码

passwd


然后ifconfig获取ip地址,whoami获取用户名
这里推荐电脑给手机开热点,或者电脑手机同时连上一个wifi,或者使用内网穿透或者…然后才能使用电脑进行连接,打开手机的wifi也可以查看ip
然后就可以在电脑进行连接

3.4Xshell连接
手机启动ssh

sshd &

开始连接


有电脑的就可以在电脑看大屏进行之后的操作,没电脑还是继续使用手机弄吧

可以不使用,只是记录一下
设置自启动的
pkg install termux-services
sv-enable sshd
termux的root权限有两种方法
1.手机没有root,利用proot模拟root
pkg install proot
termux-chroot #进入root
exit #退出
2.手机已经root,可以安装tsu
pkg install tsu
tsu #进入root
exit #退出

3.下载jdk

jdk可以自己官网下载需要的版本,也可以是用推荐下载

3.1命令下载

因为我想用jdk1.8然后…

1.查询官方提供的JDK

pkg search jdk

会列出可以下载的jdk,下面就一个openjdk-17

2.安装JDK

pkg install openjdk-17

3.验证是否安装成功

java -version

3.2官网下载

下载自己需要的jdk版本,注意选择linux-aarch64的版本
Oracle官网下载地址:https://www.oracle.com/java/technologies/downloads/

不想去登录账号下载的看这里,我之下载了jdk-8u341-linux-aarch64.tar.gz版本,下载没限速,网速快,几秒就下完了
jdk-8u341-linux-aarch64.tar.gz,点击这里去下载,密码为1234

3.2.1将jdk放到termux

下载完之后将安装包传输到手机里面,放到根目录/1/file文件夹下
cp是复制,mv是移动

cp file/jdk-8u341-linux-aarch64.tar.gz ~
mv file/jdk-8u341-linux-aarch64.tar.gz ~

3.2.2解压jdk

解压jdk并且删除,如果不想删除就把&&和之后的代码去掉即可

tar -zxvf jdk-8u341-linux-aarch64.tar.gz && rm -rf jdk-8u341-linux-aarch64.tar.gz

进入解压之后的目录

cd jdk1.8.0_341

输入pwd获取路径
路径为:/data/data/com.termux/files/home/jdk1.8.0_341

先进行安装linux,之后把环境放到linux里面

4.下载Linux

4.1使用proot-distro下载

4.1.1下载安装proot-distro

pkg install proot-distro

4.1.2查询支持的版本

proot-distro list

4.1.3安装ubuntu

proot-distro install ubuntu


Now run ‘proot-distro login ubuntu’ to log in.

4.1.4运行linux

proot-distro login ubuntu

编写启动脚本,每次都要使用命令启动,写一个运行脚本,直接运行启动脚本就OK了

vi ~/linux-ubuntu-start.sh

输入i ,进入编辑模式,将脚本复制进去,然按esc使用 :wq 命令保存并退出即可,脚本如下:

#启动linux-ubuntu
echo "linux-ubuntu running..."
proot-distro login ubuntu

给脚本设置可执行的权限

chmod +x ~/linux-ubuntu-start.sh

4.1.5启动Linux

./linux-ubuntu-start.sh

4.2使用脚本下载

先安装需要的git拉取东西用的,proot启动Centos会用

pkg install proot git -y

使用git进行拉取

git clone https://github.com/sqlsec/termux-install-linux

然后就会发现多出来一个termux-install-linux文件夹

cd termux-install-linux

安装python环境,因为执行的脚本需要python

pkg install python -y

查看是否安装成功

python -V

启动脚本,然后进行选择就可以,

python termux-linux-install.py

这里我安装Centos,选择完之后回车就进行下载了,然后进行等待
有的人会报错类似于CANNOT LINK EXECUTABLE "sh": library "/data/data/com.termux/files/usr/lib/libtermux-exec.so" needed or dlopened by "/system/bin/sh" is not accessible for the namespace "(default)"这样的错误,退出并且关闭软件,重新进入,运行dpkg --configure -a进行修复,然后重新启动脚本

完成之后回到主目录,进入Termux-Linux文件夹(脚本下载的都放在这里),然后相对应的系统有相对应的名字

我这里下载的是CentOS就直接进入这个文件夹

cd Termux-Linux/CentOS/

启动系统

./start-centos.sh 

5.配置jdk环境

输入whoami查看是不是root用户

5.1编辑配置

vi /etc/profile

5.2加入jdk配置

输入i进入编辑模式,再末尾加上如下内容
这里的JAVA_HOME写的是之前pwd获取到的路径

#set jdk
JAVA_HOME=/data/data/com.termux/files/home/jdk1.8.0_341
CLASS_PATH=$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASS_PATH PATH

5.3 重新加载配置文件

source /etc/profile

5.4查看是否配置成功

java -version

四.测试

1.传输文件到linux

先把文件放到根目录/1/file文件夹下面
例如我放的是wx.jar
启动linux进行操作,把jar包file文件夹下移动到 /opt目录下

mv /data/data/com.termux/files/home/file/wx.jar /opt

2.启动jar包

java -jar wx.jar 

然后输入手机ip:端口号进行访问

五.实现外网访问

1.NATAPP

好处:使用natapp就在linux里面运行命令,锻炼linux命令
坏处:咱这是手机,咱能安装app,这个有时还会掉线,不想让别人看的时候关闭比较麻烦

1.1.内网穿透

这里使用的是natapp
NATAPP官网:https://natapp.cn/
注册登录后添加隧道

直接免费购买

记录一下刚才配置端口的authtoken用的到

1.2.下载执行文件

点击右上角客户端下载
网址:https://natapp.cn/#download

1.3.运行

下载完之后,将文件放到手机根目录/1/file文件夹下面

natapp移动到linux里面
先创建文件,我一般放到/usr/local里面

mkdir /usr/local/natapp
cd /usr/local/natapp

移动natapp

mv /data/data/com.termux/files/home/file/natapp /usr/local/natapp/

确保之前弄进来的jar包正在启动,可以前台启动,然后在新建一个连接,或者后台启动,如果是手机就使用后台启动把
这样就把wx.jar在后台启动了,其中a.log 是jar启动产生的日志目录和jar包是同级,可以自定义名称和目录

nohup java -jar wx.jar > a.log &

如果你测试时间发现时间错误,请看这篇文章:https://blog.csdn.net/weixin_45853881/article/details/126890153

这里为了直观的看到被访问了就使用前台运行,不然还要麻烦看日志

1. 3.1启动内网穿透

授予natapp运行权限

chmod +x natapp 
1.3.1.1直接启动
 ./natapp  -authtoken=xxx

然后就会在前台显示映射的外网地址


1.3.1.2后台启动

可是有些人说,直接在前台运行,我想弄点别的代码怎么办,我又不是电脑,不方便

去natapp官网看:https://natapp.cn/article/config_ini

添加配置文件

vi config.ini

把下面的内容弄上去,别忘了写authtoken

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

后台启动

 nohup ./natapp &

这个时候又有问题了,确实是在后台启动了,可是我找不到映射的网址咋办

快说怎么弄不然我胖虎揍你

修改config.ini 文件

vi config.ini

修改后的内容如下:
将log日志文件修改为stdout
日志等级修改为INFO
authtoken写上官网给自己的

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken= 					   #自己的隧道的authtoken ==>对应一条隧道的authtoken
clienttoken=                   #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=stdout                     #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=INFO                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                    #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

启动

nohup ./natapp &

查询映射地址

cat nohup.out 

这个就是映射地址

查看正在运行的natapp

 ps -ef |grep natapp 

杀死natapp进程kill -9 xxx,xxx为查找对应的端口号

kill -9 18433

如果觉得麻烦也可以写一个启动脚本

vi natapp-start.sh 

i进入编辑模式,输入下面的代码,然后按exc,在输入:wq

#启动natapp
echo "natapp running..."
nohup ./natapp &

添加权限

chmod +x natapp-start.sh 

启动

./natapp-start.sh 

查询映射网址和之前的一样

cat nohup.out 


想要远程使用ssh配置和这个一样,最近没时间了,过几天再写,可以直接用下面的app弄

2.花生壳

2.1配置项目端口

现在咱不用linux命令了,咱开始下载app

花生壳下载网址:https://hsk.oray.com/download/
手机游览器和电脑显示的不大一样,不过问题不大
总共两个软件,最好都下载下来

花生壳管理App:用于添加,编辑,管理接口

花生壳内网版App:也叫花生壳内网版,主要用于启动花生壳管理App添加开启的端口。
外网地址和管理版的访问地址是一个,内网主机就是要自己要映射的ip:端口号,手机的ip就找wifi然后连接的wifi在找详情就可以找到ip或者找->设->关于手机->状态信息->IP地址,手机每次连接wifi都会有一个随机ip,可以给他弄成固定的,方法自行百度

然后机会出现映射诊断,这样就是失败的

因为每次重连wifi手机都会换一个ip所以才会连接失败,从花生壳管理app进行修改之后,把花生壳内网版软件退出后台重新进入然后再进行一便检查就可以了(退出软件在重新进入是为了更新加载刚才配置的数据

2.2配置ssh端口

再手机上配置项也是一样的,就是界面不一样

这里的访问地址给的是tcp://xxx:xxx==>tcp://地址:端口号
这个tcp://就是高速我们这里用的是tcp连接和http://https://差不多意思(应该是这样的)

电脑或者使用别的平台进行远程连接的时候,内网穿透的只需要用到地址端口号

花生壳管理app必须要添加端口,然后必须要开启,也就是那个绿色的开关,电脑配置也可以,之后这个管理app就可以关了,然后打开花生壳内网app查看是否连接,这个内网app必须一直打开(后台运行),才能保证一直连接

六.设置开机自启

看这里===>>https://blog.csdn.net/weixin_45853881/article/details/126930875

七.搭建数据库

看这里====>> https://blog.csdn.net/weixin_45853881/article/details/126940611

八.Termux的备份和恢复

看这里====>> https://blog.csdn.net/weixin_45853881/article/details/127427339

超过限制,我穷,买不起套餐。

我这里有配置好的cetos系统,直接俄恢复就可以进行使用
已经上传到csdn,免费的,需要的话直接下载就行,如果下载不了可以私聊获取https://download.csdn.net/download/weixin_45853881/86795325

有关手机搭建服务器教程,本人亲测无需root的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  5. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  6. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  7. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  8. 怎样用一台手机做自媒体? - 2

    其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时

  9. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  10. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

随机推荐