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

这是我搭过的第一个博客系统,写贴纪念一下

待博主整理好思路,将今天所用到的全部分享!

好吧,我就是穷。富人靠科技,穷人靠变异。我这种穷人是真的舍不得买服务器。

于是只能想办法了,网上找了很久,发现了这个只靠闲置手机就能作服务器方法。

花了一上午,网上搜寻无数资料,勉勉强强把这个博客给搭建出来了(菜)。

说到底还是菜,花了这么长时间。因此,我觉得这是完全面向小白的教程。

正文开始

要用手机搭建私人博客就要满足以下几点要求:

1.已root正常安卓手机一台(闲置最好,不怕死可以直接用现用机)

2.仔细认真一步一步老老实实做

3.严格按照以上两步执行

第一步 在安卓上搭建Linux环境

用到的app:busybox,es文件浏览器,Linux deploy,juicessh。(传送门,提取码:)

应用按教程顺序安装!

1.安装busybox。

安装成功后启动,会自动初始化,如果没有自动初始化请检查root权限!

等待busybox初始化完成后可以直接关闭。

2.安装es文件浏览器

(其实也可以不用安装,但博主觉得安上挺有用的,后面的一些操作不一定要es文件管理器)

3.安装Linux deploy

安装后打开Linux deploy 点击右下角设置图标进入属性配置:

容器类型:chroot

发行版:Ubuntu

架构:(用默认的就好)

发行版版本:xenial

源地址:官网太慢我们换成:

https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ # 清华大学开源镜像

安装类型:目录(选文件的话是img文件,之后服务器文件修改需要用sftp或ssh操作,选目录的话文件可以直接本地操作)

安装路径:默认路径为${ENV_DIR}/rootfs/linux,即安装在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目录下(选文件的话是储存在/Linux.img中)

用户名:(自己设置,之后作为Linux 的登录账户)

用户密码:(自己设置,之后作为Linux 的登录密码)

特权用户:root

DNS:自动(有特殊需求自己设置)

本地化:POSIX(有特殊需求自己设置)

初始化:不启用(有特殊需求自己设置)

挂载:不启用(有特殊需求自己设置)

SSH:启用

SSH设置:默认(有特殊需求自己设置)

PULSEAUDIO:不启用(有特殊需求自己设置)

图形界面:不启用(有特殊需求自己设置)

到此配置完毕,返回Linux deploy主界面  点击右上角选择安装=>OK。

终端输出 ‘>>>deploy’ 时,表示安装已开始。

等待安装完成(大概十分钟,主要看网速,我的是2m/s的下载速度)

终端输出 ‘<<<deploy’ 时,表示安装已结束。

安装完成后可以按下方启动键启动。

至此,完成系统部署。

4.安装juicessh

新建一个认证。

昵称:随意填写

类型:SSH

地址:127.0.0.1

保存后点击刚刚新建的项目连接我们已部署好的系统。

连接成功界面如下:(图片已丢失)

第二步 利用ngrok实现内网穿透

这里选ngrok的原因是ngrok开源免费,重点是免费!

去ngrok.cc注册,登录后台,如图所示开通隧道。(图片已丢失)

填写详细信息:

要注意的是,本地端口填127.0.0.1:8000,原因是我的80端口无法正常使用,多次检查,疑似运营商给屏蔽了。换8000后没问题。

之后在隧道管理中找到隧道id并记下,如图所示对应下载linux_ram客户端:



图三(图片已丢失)

将下载后解压得到的sunny文件移入Linux 对应home/Desktop/ngrok目录下,这里没有ngrok目录需要新建一个。

可以在juicessh中用命令新建一个:

 cd Desktop

 mkdir ngrok

文件可以通过es文件管理器的sftp直接粘贴到对应目录下

在sunny所在目录输入命令:

sudo ./sunny clientid XXXXX(你的隧道id)

之后会有隧道启动成功提示,并有转发地址(通过外网可以访问在8000端口的web服务):



这时候你通过该地址可以由外网访问访问手机的web服务了!

但是你的浏览器只能打开隧道不可用的提示如图:(图片已丢失)

因为,到此为止我们只是实现了服务器的搭建和内网穿透,并没有创建web服务,接下来,我们创建私人博客这个web服务。

第三步 部署web服务-个人博客

明天在继续分享,今天包括建站,已经忙了一天了,昨晚太热只睡了3个小时,今天就洗个澡舒舒服服的睡他一觉,再熬夜的话我怕是要猝死。。。

————————————欢迎回来————————————

今天我们继续昨天的内容————博客部署

这里我选用的博客系统是GitHub上的开源项目Blog_mini

接下来开始:

1.获取Blog_mini源代码

先创建一个目录project:

mkdir project

进入该目录:

cd project/

如果已经安装git则跳过这一步,未安装则执行下面命令:

sudo apt-get install git

接下来从Blog_mini项目克隆源码:

git clone https://github.com/xpleaf/Blog_mini

克隆完成后目录结构如下(ls命令可直接查看):

app        LICENSE    migrations  README.md     requirements.txt

config.py  manage.py  Procfile    requirements

2.安装pip

执行命令:

sudo apt-get install python-pip

3.安装virtualenv

执行命令:

sudo apt-get install virtualenv

4.创建虚拟环境venv

在Blog_mini目录下执行下面的命令:

virtualenv venv

成功后会生成一个目录venv,目录结果如下:

app        LICENSE    migrations  README.md     requirements.txt

config.py  manage.py  Procfile    requirements  venv

5.激活虚拟环境venv

在Blog_mini目录下执行命令:

source venv/bin/activate

6.安装Blog_mini需求文件

执行命令:

pip install -r requirements/common.txt

7.使用sqlite作为默认数据库来运行Blog_mini

为什么不使用MySQL数据库,我想会有小伙伴有疑问,其实我已经尝试过了,MySQL服务在我的安卓设备无法启动,至于原因,我目前也没有头绪,如果你知道的话欢迎留言告诉我。这里,为了确保教程正确性,我使用python自带的sqlite作为数据库

在Blog_mini目录下执行下面的命令:

python manage.py deploy product

可以看到多了一个data.sqlite文件,这个文件就是sqlite数据库文件,目录结构如下:

app        config.pyc   LICENSE    migrations  README.md     requirements.txt

config.py  data.sqlite  manage.py  Procfile    requirements  venv

8.以8000端口运行Blog_mini:

执行命令:

gunicorn -b 127.0.0.1:8000  manage:app

至此,博客搭建完成,并且已经部署到了8000端口,你可以通过运行第二步的sunny打开隧道,并用隧道提供的域名从外网访问你的博客啦!

提示:

Blog_mini管理后台的默认账号密码:

账号:blog_mini@163.com

密码:blog_mini

闲置安卓设备搭建Linux服务器实现外网访问的更多相关文章

  1. windows server配置ftp服务器以及外网访问

    在Server2012打开 服务器管理器,选择 添加角色与功能,添加Web服务下的FTP服务器 安装后. 我们现在C盘创建一个名字为FTP的文件夹,里面创建一个ftp的文件,做测试用,如图 打开服务器 ...

  2. asp.net core 部署到服务器之后外网访问不了

    部署发现问题 今天在部署.net core的时候,发现访问http://localhost:xxxx可以,但是用外网访问并不行! 开始尝试解决问题 一开始以为是nginx的问题.各种折腾,各种改配置文 ...

  3. Linux配置Redis外网访问

    下载:redis-3.2.5.tar.gz 拷贝到指定目录解压:tar -xzvf redis-3.2.5.tar.gz 进入到解压目录redis-3.2.5下安装: makemake install ...

  4. Linux服务器查看外网IP地址的命令

    可以直接输入如下几个命令:1.curl ifconfig.me2.curl cip.cc3.curl icanhazip.com4.curl ident.me5.curl ipecho.net/pla ...

  5. IIS搭建Web服务器,外网可以访问,但无法加载视频

    错误提示如下: 可能原因: IIS的MIME中未注册MP4.ogg.webm相关类型,导致IIS无法识别 解决方法: 在IIS中注册MP4.ogg.webm类型,以下以MP4为例,ogg和webm以此 ...

  6. Centos7搭建nginx并提供外网访问

    搭建nginx之后,80端口,其他机器无法访问 查询端口是否开启 firewall-cmd --query-port=80/tcp 永久开放80端口 firewall-cmd --permanent ...

  7. 2、asp.net core 部署到服务器之后外网访问不了

    解决问题 把自定义端口的http://localhost:5001改成http://*:5001. 什么都没有改也不行的小伙伴试试在Program的Main方法中的.UseKestrel()后面添加. ...

  8. Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?

    Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?    答:    网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg- ...

  9. 在linux安装redis单机和集群后,如何在windows上使用redis客户端或者java代码访问错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问。需要通过简单配置,完成允许外网访问。

    这几天在学习在linux上搭建服务器的工作,可谓历经艰辛.可喜最后收获也不少. 这次是在linux上搭建redis服务器后从windows上缺无法访问,连接不上. 仔细回忆以前搭建nginx和ftp的 ...

随机推荐

  1. 【WPF学习】第六十二章 构建更复杂的模板

    在控件模板和为其提供支持的代码之间又一个隐含约定.如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要. 在简单控件中,这个过程比较容易,因为对模板几乎没有(或完 ...

  2. wifi无线桥接

    考虑到不同路由器配置上或许有细微差别,我此处路由器是水星(牌子)路由器. 首先需要2台路由器,一台已经能够上网,作为主路由器:另一台啥都没有配置,将来用作副路由器,与主路由器桥接. 步骤: 获取主路由 ...

  3. 1025 PAT Ranking (25 分)

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  4. go 基础安装

    一.安装: 1.下载GO的地址:https://golang.org/dl/ 点击安装包进行安装(linux直接解压) 设置环境变量(linux) 1. export GOROOT=$PATH:/pa ...

  5. Java第二十五天,多线程之等待唤醒机制

    当线程被创建并且被启动之后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,而是具有以下多种状态: 这六种状态之间的转换关系如下: 1.等待唤醒机制 注意: (1)两个线程之间必须用同步代码块 ...

  6. 刨根问底系列(3)——关于socket api的原子操作性和线程安全性的探究和实验测试(多线程同时send,write)

    多个线程对同一socket同时进行send操作的结果 1. 概览 1.1 起因 自己写的项目里,为了保证连接不中断,我起一个线程专门发送心跳包保持连接,那这个线程在send发送数据时,可能会与主线程中 ...

  7. 【python实现卷积神经网络】批量归一化层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  8. 【Java】步入OOP 面向对象

    面向对象编程 OOP Object Oriented Programming 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. 面向对象是相对于面向过程来讲的,面向对 ...

  9. cxGrid增加一栏显示checkBox的设置方法

    鉴于本人首次设定cxGrid的CheckBox的时候费了很大劲,发现很多人都会碰到这个问题,现在总结一下,以供各位互相学习借鉴. 步骤如下(不分先后): 1. cxGrid添加完自己所需的所有字段后, ...

  10. linux下的信号量PV操作进阶之路

    一.同步和互斥机制 信号量 互斥锁 同步:指多个任务按照约定的先后次序相互配合来完成一件事情. 比如读线程等待写线程写完之后再去读. 二.信号量-P/V操作 P(s)含义: if(信号量>0) ...