残雨斜阳 發表於 2019-8-6 10:55:00

闲置安卓设备搭建Linux服务器实现外网访问

<blockquote>
<p>这是我搭过的第一个博客系统,写贴纪念一下</p>
</blockquote>
<p>待博主整理好思路,将今天所用到的全部分享!</p>
<p>好吧,我就是穷。富人靠科技,穷人靠变异。我这种穷人是真的舍不得买服务器。</p>
<p>于是只能想办法了,网上找了很久,发现了这个只靠闲置手机就能作服务器方法。</p>
<p>花了一上午,网上搜寻无数资料,勉勉强强把这个博客给搭建出来了(菜)。</p>
<p>说到底还是菜,花了这么长时间。因此,我觉得这是完全面向小白的教程。</p>
<p><font color="blue">正文开始</font></p>
<p>要用手机搭建私人博客就要满足以下几点要求:</p>
<p>1.已root正常安卓手机一台(闲置最好,不怕死可以直接用现用机)</p>
<p>2.仔细认真一步一步老老实实做</p>
<p>3.严格按照以上两步执行</p>
<p>第一步 <b>在安卓上搭建Linux环境</b></p>
<p>用到的app:busybox,es文件浏览器,Linux deploy,juicessh。(传送门,提取码:)</p>
<p>应用按教程顺序安装!</p>
<p>1.安装busybox。</p>
<p>安装成功后启动,会自动初始化,如果没有自动初始化请检查root权限!</p>
<p>等待busybox初始化完成后可以直接关闭。</p>
<p>2.安装es文件浏览器</p>
<p>(其实也可以不用安装,但博主觉得安上挺有用的,后面的一些操作不一定要es文件管理器)</p>
<p>3.安装Linux deploy</p>
<p>安装后打开Linux deploy 点击右下角设置图标进入属性配置:</p>
<p>容器类型:chroot</p>
<p>发行版:Ubuntu</p>
<p>架构:(用默认的就好)</p>
<p>发行版版本:xenial</p>
<p>源地址:官网太慢我们换成:</p>
<pre><code class="language-bash">https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ # 清华大学开源镜像
</code></pre>
<p>安装类型:目录(选文件的话是img文件,之后服务器文件修改需要用sftp或ssh操作,选目录的话文件可以直接本地操作)</p>
<p>安装路径:默认路径为${ENV_DIR}/rootfs/linux,即安装在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目录下(选文件的话是储存在/Linux.img中)</p>
<p>用户名:(自己设置,之后作为Linux 的登录账户)</p>
<p>用户密码:(自己设置,之后作为Linux 的登录密码)</p>
<p>特权用户:root</p>
<p>DNS:自动(有特殊需求自己设置)</p>
<p>本地化:POSIX(有特殊需求自己设置)</p>
<p>初始化:不启用(有特殊需求自己设置)</p>
<p>挂载:不启用(有特殊需求自己设置)</p>
<p>SSH:启用</p>
<p>SSH设置:默认(有特殊需求自己设置)</p>
<p>PULSEAUDIO:不启用(有特殊需求自己设置)</p>
<p>图形界面:不启用(有特殊需求自己设置)</p>
<p>到此配置完毕,返回Linux deploy主界面&nbsp; 点击右上角选择安装=&gt;OK。</p>
<p>​</p>
<p>终端输出 ‘&gt;&gt;&gt;deploy’ 时,表示安装已开始。</p>
<p>等待安装完成(大概十分钟,主要看网速,我的是2m/s的下载速度)</p>
<p>终端输出 ‘&lt;&lt;&lt;deploy’ 时,表示安装已结束。</p>
<p>安装完成后可以按下方启动键启动。</p>
<p>​</p>
<p>至此,完成系统部署。</p>
<p>4.安装juicessh</p>
<p>新建一个认证。</p>
<p>昵称:随意填写</p>
<p>类型:SSH</p>
<p>地址:127.0.0.1</p>
<p>保存后点击刚刚新建的项目连接我们已部署好的系统。</p>
<p>连接成功界面如下:(图片已丢失)</p>
<p>​</p>
<p>第二步 <b>利用ngrok实现内网穿透</b></p>
<p>这里选ngrok的原因是ngrok开源免费,重点是免费!</p>
<p>去ngrok.cc注册,登录后台,如图所示开通隧道。(图片已丢失)</p>
<p>​</p>
<p>填写详细信息:</p>
<p>​</p>
<p>要注意的是,本地端口填127.0.0.1:8000,原因是我的80端口无法正常使用,多次检查,疑似运营商给屏蔽了。换8000后没问题。</p>
<p>之后在隧道管理中找到隧道id并记下,如图所示对应下载linux_ram客户端:</p>
<p>​<br>
图三(图片已丢失)</p>
<p>将下载后解压得到的sunny文件移入Linux 对应home/Desktop/ngrok目录下,这里没有ngrok目录需要新建一个。</p>
<p>可以在juicessh中用命令新建一个:</p>
<pre><code class="language-bash">&nbsp;cd Desktop

&nbsp;mkdir&nbsp;ngrok
</code></pre>
<p>文件可以通过es文件管理器的sftp直接粘贴到对应目录下</p>
<p>在sunny所在目录输入命令:</p>
<pre><code class="language-bash">sudo ./sunny clientid XXXXX(你的隧道id)
</code></pre>
<p>之后会有隧道启动成功提示,并有转发地址(通过外网可以访问在8000端口的web服务):</p>
<p>​<br>
这时候你通过该地址可以由外网访问访问手机的web服务了!</p>
<p>但是你的浏览器只能打开隧道不可用的提示如图:(图片已丢失)</p>
<p>因为,到此为止我们只是实现了服务器的搭建和内网穿透,并没有创建web服务,接下来,我们创建私人博客这个web服务。</p>
<p>第三步 <b>部署web服务-个人博客</b></p>
<p>明天在继续分享,今天包括建站,已经忙了一天了,昨晚太热只睡了3个小时,今天就洗个澡舒舒服服的睡他一觉,再熬夜的话我怕是要猝死。。。</p>
<p><font color="blue">————————————欢迎回来————————————</font></p>
<p>今天我们继续昨天的内容————博客部署</p>
<p>这里我选用的博客系统是GitHub上的开源项目Blog_mini</p>
<p>接下来开始:</p>
<p>1.获取Blog_mini源代码</p>
<p>先创建一个目录project:</p>
<pre><code class="language-bash">mkdir&nbsp;project
</code></pre>
<p>进入该目录:</p>
<pre><code class="language-bash">cd&nbsp;project/
</code></pre>
<p>如果已经安装git则跳过这一步,未安装则执行下面命令:</p>
<pre><code class="language-bash">sudo&nbsp;apt-get&nbsp;install&nbsp;git
</code></pre>
<p>接下来从Blog_mini项目克隆源码:</p>
<pre><code class="language-bash">git&nbsp;clone&nbsp;https://github.com/xpleaf/Blog_mini
</code></pre>
<p>克隆完成后目录结构如下(ls命令可直接查看):</p>
<pre><code class="language-bash">app&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LICENSE&nbsp;&nbsp;&nbsp;&nbsp;migrations&nbsp;&nbsp;README.md&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requirements.txt
</code></pre>
<p>config.py&nbsp;&nbsp;manage.py&nbsp;&nbsp;Procfile&nbsp;&nbsp;&nbsp;&nbsp;requirements</p>
<p>2.安装pip</p>
<p>执行命令:</p>
<pre><code class="language-bash">sudo&nbsp;apt-get&nbsp;install&nbsp;python-pip
</code></pre>
<p>3.安装virtualenv</p>
<p>执行命令:</p>
<pre><code class="language-bash">sudo&nbsp;apt-get&nbsp;install&nbsp;virtualenv
</code></pre>
<p>4.创建虚拟环境venv</p>
<p>在Blog_mini目录下执行下面的命令:</p>
<pre><code class="language-bash">virtualenv&nbsp;venv
</code></pre>
<p>成功后会生成一个目录venv,目录结果如下:</p>
<pre><code class="language-bash">app&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LICENSE&nbsp;&nbsp;&nbsp;&nbsp;migrations&nbsp;&nbsp;README.md&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requirements.txt

config.py&nbsp;&nbsp;manage.py&nbsp;&nbsp;Procfile&nbsp;&nbsp;&nbsp;&nbsp;requirements&nbsp;&nbsp;venv
</code></pre>
<p>5.激活虚拟环境venv</p>
<p>在Blog_mini目录下执行命令:</p>
<pre><code class="language-bash">source&nbsp;venv/bin/activate
</code></pre>
<p>6.安装Blog_mini需求文件</p>
<p>执行命令:</p>
<pre><code class="language-bash">pip install -r requirements/common.txt
</code></pre>
<p>7.使用sqlite作为默认数据库来运行Blog_mini</p>
<p>为什么不使用MySQL数据库,我想会有小伙伴有疑问,其实我已经尝试过了,MySQL服务在我的安卓设备无法启动,至于原因,我目前也没有头绪,如果你知道的话欢迎留言告诉我。这里,为了确保教程正确性,我使用python自带的sqlite作为数据库</p>
<p>在Blog_mini目录下执行下面的命令:</p>
<pre><code class="language-bash">python&nbsp;manage.py&nbsp;deploy&nbsp;product
</code></pre>
<p>可以看到多了一个data.sqlite文件,这个文件就是sqlite数据库文件,目录结构如下:</p>
<pre><code class="language-bash">app&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;config.pyc&nbsp;&nbsp;&nbsp;LICENSE&nbsp;&nbsp;&nbsp;&nbsp;migrations&nbsp;&nbsp;README.md&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requirements.txt

config.py&nbsp;&nbsp;data.sqlite&nbsp;&nbsp;manage.py&nbsp;&nbsp;Procfile&nbsp;&nbsp;&nbsp;&nbsp;requirements&nbsp;&nbsp;venv
</code></pre>
<p>8.以8000端口运行Blog_mini:</p>
<p>执行命令:</p>
<pre><code class="language-bash">gunicorn&nbsp;-b 127.0.0.1:8000&nbsp; manage:app
</code></pre>
<p>至此,博客搭建完成,并且已经部署到了8000端口,你可以通过运行第二步的sunny打开隧道,并用隧道提供的域名从外网访问你的博客啦!</p>
<p><font color="red">提示:</font></p>
<p>Blog_mini管理后台的默认账号密码:</p>
<p>账号:<font color="red">blog_mini@163.com</font></p>
<p>密码:<font color="red">blog_mini</font></p>


</div>
<div id="MySignature" role="contentinfo">
    一只孜孜不倦的bird<br><br>
来源:https://www.cnblogs.com/fofade/p/11307609.html
頁: [1]
查看完整版本: 闲置安卓设备搭建Linux服务器实现外网访问