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
